docs: pdfdocs: Add CJK-language-specific font settings
authorAkira Yokosawa <akiyks@gmail.com>
Mon, 9 Aug 2021 01:14:53 +0000 (10:14 +0900)
committerJonathan Corbet <corbet@lwn.net>
Thu, 12 Aug 2021 15:13:32 +0000 (09:13 -0600)
zh_TW, ko_KR, and ja_JP translations have their preferred glyph sets
different from that of zh_CN.

To switch CJK font in the middle of the translations, introduce custom
LaTeX macros listed below:

    \kerneldocBeginSC
    \kerneldocEndSC
    \kerneldocBeginTC
    \kerneldocEndTC
    \kerneldocBeginKR
    \kerneldocEndKR
    \kerneldocBeginJP
    \kerneldocEndJP

, and embed a pair of macros in each language's index.rst.

NOTE 1: Update of zh_TW/index.rst is deferred to a follow-up change.

NOTE 2: Custom macros added here do not imply \kerneldocCJK(on|off).
This is intentional.  For example, \kerneldocCJKoff needs to be
at the top of Italian translations' index.rst for the footer of
final zh_TW page to be properly typeset.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Link: https://lore.kernel.org/r/31906baf-7490-68cd-7153-4e4d320fb9b0@gmail.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Documentation/conf.py
Documentation/translations/ja_JP/index.rst
Documentation/translations/ko_KR/index.rst
Documentation/translations/zh_CN/index.rst

index b440cb6..24e5427 100644 (file)
@@ -361,10 +361,51 @@ latex_elements['preamble']  += '''
        % This is needed for translations
        \\usepackage{xeCJK}
        \\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}
+       \\newCJKfontfamily[SCsans]\\scsans{Noto Sans CJK SC}
+       \\newCJKfontfamily[SCmono]\\scmono{Noto Sans Mono CJK SC}
+       \\newCJKfontfamily[TCmain]\\tcmain{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}
+       \\newCJKfontfamily[KRsans]\\krsans{Noto Sans CJK KR}
+       \\newCJKfontfamily[KRmono]\\krmono{Noto Sans Mono CJK KR}
+       \\newCJKfontfamily[JPmain]\\jpmain{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
        \\newcommand{\\kerneldocCJKon}{\\makexeCJKactive}
        \\newcommand{\\kerneldocCJKoff}{\\makexeCJKinactive}
-       % To customize \sphinxtableofcontents
+       \\newcommand{\\kerneldocBeginSC}{%
+           \\begingroup%
+           \\scmain%
+       }
+       \\newcommand{\\kerneldocEndSC}{\\endgroup}
+       \\newcommand{\\kerneldocBeginTC}{%
+           \\begingroup%
+           \\tcmain%
+           \\renewcommand{\\CJKsfdefault}{TCsans}%
+           \\renewcommand{\\CJKttdefault}{TCmono}%
+       }
+       \\newcommand{\\kerneldocEndTC}{\\endgroup}
+       \\newcommand{\\kerneldocBeginKR}{%
+           \\begingroup%
+           \\krmain%
+           \\renewcommand{\\CJKsfdefault}{KRsans}%
+           \\renewcommand{\\CJKttdefault}{KRmono}%
+       }
+       \\newcommand{\\kerneldocEndKR}{\\endgroup}
+       \\newcommand{\\kerneldocBeginJP}{%
+           \\begingroup%
+           \\jpmain%
+           \\renewcommand{\\CJKsfdefault}{JPsans}%
+           \\renewcommand{\\CJKttdefault}{JPmono}%
+       }
+       \\newcommand{\\kerneldocEndJP}{\\endgroup}
+       % To customize \\sphinxtableofcontents
        \\usepackage{etoolbox}
        % Inactivate CJK after tableofcontents
        \\apptocmd{\\sphinxtableofcontents}{\\kerneldocCJKoff}{}{}
@@ -372,6 +413,14 @@ latex_elements['preamble']  += '''
        % Custom macros to on/off CJK (Dummy)
        \\newcommand{\\kerneldocCJKon}{}
        \\newcommand{\\kerneldocCJKoff}{}
+       \\newcommand{\\kerneldocBeginSC}{}
+       \\newcommand{\\kerneldocEndSC}{}
+       \\newcommand{\\kerneldocBeginTC}{}
+       \\newcommand{\\kerneldocEndTC}{}
+       \\newcommand{\\kerneldocBeginKR}{}
+       \\newcommand{\\kerneldocEndKR}{}
+       \\newcommand{\\kerneldocBeginSC}{}
+       \\newcommand{\\kerneldocEndKR}{}
     }
 '''
 
index f94ba62..88d4d98 100644 (file)
@@ -3,6 +3,7 @@
        \renewcommand\thesection*
        \renewcommand\thesubsection*
        \kerneldocCJKon
+       \kerneldocBeginJP
 
 Japanese translations
 =====================
@@ -11,3 +12,7 @@ Japanese translations
    :maxdepth: 1
 
    howto
+
+.. raw:: latex
+
+       \kerneldocEndJP
index 6ae2581..f636b48 100644 (file)
@@ -3,6 +3,7 @@
        \renewcommand\thesection*
        \renewcommand\thesubsection*
        \kerneldocCJKon
+       \kerneldocBeginKR
 
 한국어 번역
 ===========
@@ -26,3 +27,4 @@
 .. raw:: latex
 
     \normalsize
+    \kerneldocEndKR
index 8d68c98..a34e587 100644 (file)
@@ -5,6 +5,7 @@
        \renewcommand\thesection*
        \renewcommand\thesubsection*
        \kerneldocCJKon
+       \kerneldocBeginSC
 
 .. _linux_doc_zh:
 
@@ -189,3 +190,7 @@ TODOList:
 ----------
 
 * :ref:`genindex`
+
+.. raw:: latex
+
+       \kerneldocEndSC