docs: pdfdocs: Choose Serif font as CJK mainfont if possible
authorAkira Yokosawa <akiyks@gmail.com>
Mon, 9 Aug 2021 01:17:00 +0000 (10:17 +0900)
committerJonathan Corbet <corbet@lwn.net>
Thu, 12 Aug 2021 15:13:32 +0000 (09:13 -0600)
"Noto Serif CJK SC" and its variants suit better with the roman font
of Latin letters.

On some distros such as Fedora, it is possible to partially install
"Noto Sans CJK" fonts.
So, if the Serif fonts are not found on the system, fall back to the
Sans fonts.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Link: https://lore.kernel.org/r/5e454140-5d0c-35d4-8c31-3ffb2420793a@gmail.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Documentation/conf.py

index 24e5427..980be06 100644 (file)
@@ -360,20 +360,48 @@ latex_elements['preamble']  += '''
     \\IfFontExistsTF{Noto Sans CJK SC}{
        % This is needed for translations
        \\usepackage{xeCJK}
-       \\setCJKmainfont{Noto Sans CJK SC}
+       \\IfFontExistsTF{Noto Serif CJK SC}{
+           \\setCJKmainfont{Noto Serif CJK SC}
+       }{
+           \\setCJKmainfont{Noto Sans CJK SC}
+       }
        \\setCJKsansfont{Noto Sans CJK SC}
        \\setCJKmonofont{Noto Sans Mono CJK SC}
        % CJK Language-specific font choices
-       \\newCJKfontfamily[SCmain]\\scmain{Noto Sans CJK SC}
+       \\IfFontExistsTF{Noto Serif CJK SC}{
+           \\newCJKfontfamily[SCmain]\\scmain{Noto Serif CJK SC}
+           \\newCJKfontfamily[SCserif]\\scserif{Noto Serif CJK SC}
+       }{
+           \\newCJKfontfamily[SCmain]\\scmain{Noto Sans CJK SC}
+           \\newCJKfontfamily[SCserif]\\scserif{Noto Sans CJK SC}
+       }
        \\newCJKfontfamily[SCsans]\\scsans{Noto Sans CJK SC}
        \\newCJKfontfamily[SCmono]\\scmono{Noto Sans Mono CJK SC}
-       \\newCJKfontfamily[TCmain]\\tcmain{Noto Sans CJK TC}
+       \\IfFontExistsTF{Noto Serif CJK TC}{
+           \\newCJKfontfamily[TCmain]\\tcmain{Noto Serif CJK TC}
+           \\newCJKfontfamily[TCserif]\\tcserif{Noto Serif CJK TC}
+       }{
+           \\newCJKfontfamily[TCmain]\\tcmain{Noto Sans CJK TC}
+           \\newCJKfontfamily[TCserif]\\tcserif{Noto Sans CJK TC}
+       }
        \\newCJKfontfamily[TCsans]\\tcsans{Noto Sans CJK TC}
        \\newCJKfontfamily[TCmono]\\tcmono{Noto Sans Mono CJK TC}
-       \\newCJKfontfamily[KRmain]\\krmain{Noto Sans CJK KR}
+       \\IfFontExistsTF{Noto Serif CJK KR}{
+           \\newCJKfontfamily[KRmain]\\krmain{Noto Serif CJK KR}
+           \\newCJKfontfamily[KRserif]\\krserif{Noto Serif CJK KR}
+       }{
+           \\newCJKfontfamily[KRmain]\\krmain{Noto Sans CJK KR}
+           \\newCJKfontfamily[KRserif]\\krserif{Noto Sans CJK KR}
+       }
        \\newCJKfontfamily[KRsans]\\krsans{Noto Sans CJK KR}
        \\newCJKfontfamily[KRmono]\\krmono{Noto Sans Mono CJK KR}
-       \\newCJKfontfamily[JPmain]\\jpmain{Noto Sans CJK JP}
+       \\IfFontExistsTF{Noto Serif CJK JP}{
+           \\newCJKfontfamily[JPmain]\\jpmain{Noto Serif CJK JP}
+           \\newCJKfontfamily[JPserif]\\jpserif{Noto Serif CJK JP}
+       }{
+           \\newCJKfontfamily[JPmain]\\jpmain{Noto Sans CJK JP}
+           \\newCJKfontfamily[JPserif]\\jpserif{Noto Sans CJK JP}
+       }
        \\newCJKfontfamily[JPsans]\\jpsans{Noto Sans CJK JP}
        \\newCJKfontfamily[JPmono]\\jpmono{Noto Sans Mono CJK JP}
        % Define custom macros to on/off CJK
@@ -387,6 +415,7 @@ latex_elements['preamble']  += '''
        \\newcommand{\\kerneldocBeginTC}{%
            \\begingroup%
            \\tcmain%
+           \\renewcommand{\\CJKrmdefault}{TCserif}%
            \\renewcommand{\\CJKsfdefault}{TCsans}%
            \\renewcommand{\\CJKttdefault}{TCmono}%
        }
@@ -394,6 +423,7 @@ latex_elements['preamble']  += '''
        \\newcommand{\\kerneldocBeginKR}{%
            \\begingroup%
            \\krmain%
+           \\renewcommand{\\CJKrmdefault}{KRserif}%
            \\renewcommand{\\CJKsfdefault}{KRsans}%
            \\renewcommand{\\CJKttdefault}{KRmono}%
        }
@@ -401,6 +431,7 @@ latex_elements['preamble']  += '''
        \\newcommand{\\kerneldocBeginJP}{%
            \\begingroup%
            \\jpmain%
+           \\renewcommand{\\CJKrmdefault}{JPserif}%
            \\renewcommand{\\CJKsfdefault}{JPsans}%
            \\renewcommand{\\CJKttdefault}{JPmono}%
        }