summaryrefslogtreecommitdiffstats
path: root/Documentation/conf.py
diff options
context:
space:
mode:
authorAkira Yokosawa <akiyks@gmail.com>2021-08-09 03:14:53 +0200
committerJonathan Corbet <corbet@lwn.net>2021-08-12 17:13:32 +0200
commite291ff6f5a034adb9b6ceaeb504ef196cde0ea9e (patch)
treedea1bd9aef6c26e806d24f3f95c8d6835aefefa4 /Documentation/conf.py
parentdocs: pdfdocs: Refactor config for CJK document (diff)
downloadlinux-e291ff6f5a034adb9b6ceaeb504ef196cde0ea9e.tar.xz
linux-e291ff6f5a034adb9b6ceaeb504ef196cde0ea9e.zip
docs: pdfdocs: Add CJK-language-specific font settings
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>
Diffstat (limited to 'Documentation/conf.py')
-rw-r--r--Documentation/conf.py51
1 files changed, 50 insertions, 1 deletions
diff --git a/Documentation/conf.py b/Documentation/conf.py
index b440cb606d22..24e5427588e7 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -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}{}
}
'''