[opensuse-m17n] noto-sans-cjk-fonts' config replaces "serif" with "Noto Sans CJK *" (sans)
Hello, Please subscribe -m17n list since you are a maintainer of M17N:fonts Thank you for your explanation. My suggestion on this thread is just removing the following lines (at least for Japanese) in order to provide a serif font such as IPA P Mincho according to precedence defined by fonts-config (and YaST). Adding Noto *Sans* CJK into the head of "Serif" alias list is wrong, as far as I can understand. <match target="pattern"> <test qual="any" name="family" compare="eq"> <string>serif</string> </test> <test name="lang" compare="eq"> <string>ja</string> </test> <edit name="family" mode="prepend"> <string>Noto Sans CJK JP</string> </edit> </match> If there's no objection, I will remove assignments of Noto Sans CJK * to serif. # not sans-serif
Where is the fontconfig rule that adds ipa mincho to serif? If the prepend in 59-noto-sans-cjk.conf comes before the ipa mincho one (<prefer> is doing the prepend, too), then the family preference list looks like for ja:
'Noto Sans CJK JP' ... 'IPA Mincho' ... serif
fonts-config.rpm 60-family-prefer.conf: provides <alias> and <prefer> fontconfig.rpm 65-nonlatin.conf: provides <alias> and <prefer>
When both noto and ipa are installed, then the prefernce is given to noto.
So this problem happens.
So, as long as Noto CJK has not serif shape, it should be ok, I think. Font for e. g. latin text should be taken from the another (serif) fonts, in our case 'BlaBla Serif' if it is installed on the system.
How does fontconfig understand a font provides serif glyphs?
I sill cannot understand why it should be Ok. Now Noto Sans CJK is selected for Japanese text when we request "Serif" because Noto Sans CJK is on the top of the list. My understanding is that fontconfig knows Noto Sans CJK provides both latin and CJK glyphs but it cannot determine whether those glyphs are serif or not. Do you mean if "Not Sans CJK" is included in "Sans" <prefer> lists, fontconfig can understand it should provide sans shape? For now, "Noto Sans CJK" is not included in any <prefer> lists.
What exactly you want to see? Which fonts should be prefered for CJK? Maybe the best thing would be to drop custom fontconfig snippets in packages and move the solution to fonts-config package level.
Even if we have the wrong 59-noto-sans-cjk.conf, I still be able to find IPA Mincho, which should be just after Noto Sans CJK JP" $ fc-match -s "Serif" NotoSansCJK.ttc: "Noto Sans CJK JP" "Regular" <<< ipamp.ttf should be here >>> RobotoSlab-Regular.ttf: "Roboto Slab" "Regular" LiberationSerif-Regular.ttf: "Liberation Serif" "Regular" DejaVuSerif.ttf: "DejaVu Serif" "Book" DejaVuSerif-Bold.ttf: "DejaVu Serif" "Bold" DejaVuSerif-Italic.ttf: "DejaVu Serif" "Italic" DejaVuSerif-BoldItalic.ttf: "DejaVu Serif" "Bold Italic" luxirr.ttf: "Luxi Serif" "Regular" FreeSerif.ttf: "FreeSerif" "Regular" bsmiuee.pfb: "AR PL Mingti2L Big5" "ee" bsmiuf6.pfb: "AR PL Mingti2L Big5" "f6" bsmiuf7.pfb: "AR PL Mingti2L Big5" "f7" bsmiuf8.pfb: "AR PL Mingti2L Big5" "f8" (snip)
So what you intend to achieve? Tell me. I could look at it when time permits.
JP is the same as 42.1 with Noto Sans | JP | KO | CN | ... -------------------------------------------------------- sans |IPA PGothic| | | -------------------------------------------------------- serif |IPA PMincho| | | -------------------------------------------------------- monospace |IPA Gothic | | | Not that I wanted to ask about CN. Is it really OK that serif is Noto *Sans* CJK SC/TC? There are no Noto Serif CJK for now. This is off topic but the 58-noto-sans also overrides family preferences generated by the YaST font module. On 2016/09/05 16:49, Petr Gajdos wrote:
Hello,
I have sent following mail to opensuse-m17n, but the list seem to be moderated for not-subscribers but none had accepted my mail until now. So sending again (slightly modified).
On Thu, Sep 01, 2016 at 11:51:53PM +0900, Fuminobu TAKEYAMA wrote:
Hi,
The problem is that even though we have serif Japanese fonts (maybe Chinese too), Noto Sans CJK * is selected as an alias of "Serif".
Where is the fontconfig rule that adds ipa mincho to serif? If the prepend in 59-noto-sans-cjk.conf comes before the ipa mincho one (<prefer> is doing the prepend, too), then the family preference list looks like for ja:
'Noto Sans CJK JP' ... 'IPA Mincho' ... serif
When both noto and ipa are installed, then the prefernce is given to noto.
So, as long as Noto CJK has not serif shape, it should be ok, I think. Font for e. g. latin text should be taken from the another (serif) fonts, in our case 'BlaBla Serif' if it is installed on the system.
How does fontconfig understand a font provides serif glyphs?
I am under impression that
<alias> <family>sans-serif</family> <prefer> <family>Roboto</family> [...] </prefer> </alias>
says that families inside <prefer> </prefer> should be used (in that order) whenever sans-serif alias is requested. You can even define another aliases, for example (or see 'fantasy' or 'cursive' aliases in 45-latin.conf)
<alias> <family>myalias</family> <prefer> <family>AnotherFamily</family> [...] </prefer> </alias>
Then $(fc-match myalias) will return font from AnotherFamily, when installed.
Maybe offtopic, but there is also an <default> alias (see 49-family-default.conf). That rule adds an alias (such as 'serif' for example) at the end of the preference family list in the pattern. So when 'Georgia' is requested, then, first, 'serif' is added at the end of the family list in the just-created-pattern:
... Georgia ... serif
Later on, serif is prepended with the bunch of families in, for example, from 60-family-prefer.conf:
... Georiga ... 'Times New Roman' 'Thorndale AMT' ... serif
Hence, when Georgia is NOT installed, then its installed fellow in 'serif' group is returned.
What is strange, I cannot find IPA P Mincho (IPA P明朝), which has been the default alias of "Serif" for Japanese, if 59-noto-sans-cjk.conf exists.
That is weird on the first sight indeed.
$ fc-match -s "Serif" NotoSansCJK.ttc: "Noto Sans CJK JP" "Regular" RobotoSlab-Regular.ttf: "Roboto Slab" "Regular" LiberationSerif-Regular.ttf: "Liberation Serif" "Regular" DejaVuSerif.ttf: "DejaVu Serif" "Book" DejaVuSerif-Bold.ttf: "DejaVu Serif" "Bold" DejaVuSerif-Italic.ttf: "DejaVu Serif" "Italic" DejaVuSerif-BoldItalic.ttf: "DejaVu Serif" "Bold Italic" luxirr.ttf: "Luxi Serif" "Regular" FreeSerif.ttf: "FreeSerif" "Regular" bsmiuee.pfb: "AR PL Mingti2L Big5" "ee" bsmiuf6.pfb: "AR PL Mingti2L Big5" "f6" bsmiuf7.pfb: "AR PL Mingti2L Big5" "f7" bsmiuf8.pfb: "AR PL Mingti2L Big5" "f8" (snip)
$ sudo rm 59-noto-sans-cjk.conf $ fc-match -s "Serif" ipamp.ttf: "IPA P明朝" "Regular" RobotoSlab-Regular.ttf: "Roboto Slab" "Regular" LiberationSerif-Regular.ttf: "Liberation Serif" "Regular" DejaVuSerif.ttf: "DejaVu Serif" "Book" DejaVuSerif-Bold.ttf: "DejaVu Serif" "Bold" DejaVuSerif-Italic.ttf: "DejaVu Serif" "Italic" DejaVuSerif-BoldItalic.ttf: "DejaVu Serif" "Bold Italic" luxirr.ttf: "Luxi Serif" "Regular" FreeSerif.ttf: "FreeSerif" "Regular" ipaexm.ttf: "IPAex明朝" "Regular" sazanami-mincho.ttf: "さざなみ明朝" "Mincho-Regular" gbsnu24.pfb: "AR PL SungtiL GB" "24" gbsnu31.pfb: "AR PL SungtiL GB" "31" gbsnu4e.pfb: "AR PL SungtiL GB" "4e" gbsnu4f.pfb: "AR PL SungtiL GB" "4f" gbsnu50.pfb: "AR PL SungtiL GB" "50" (snip)
What exactly you want to see? Which fonts should be prefered for CJK? Maybe the best thing would be to drop custom fontconfig snippets in packages and move the solution to fonts-config package level.
So what you intend to achieve? Tell me. I could look at it when time permits.
| JP | KO | CN | ... -------------------------------------------------------- sans | | | | -------------------------------------------------------- serif | | | | -------------------------------------------------------- monospace | | | |
Petr
-- To unsubscribe, e-mail: opensuse-m17n+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-m17n+owner@opensuse.org
participants (1)
-
Fuminobu TAKEYAMA