Commit e291ff6f authored by Akira Yokosawa's avatar Akira Yokosawa Committed by Jonathan Corbet
Browse files

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: default avatarAkira Yokosawa <akiyks@gmail.com>
Link: https://lore.kernel.org/r/31906baf-7490-68cd-7153-4e4d320fb9b0@gmail.com


Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 659653c9
Loading
Loading
Loading
Loading
+50 −1
Original line number Diff line number Diff line
@@ -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}{}
    }
'''

+5 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
	\renewcommand\thesection*
	\renewcommand\thesubsection*
	\kerneldocCJKon
	\kerneldocBeginJP

Japanese translations
=====================
@@ -11,3 +12,7 @@ Japanese translations
   :maxdepth: 1

   howto

.. raw:: latex

	\kerneldocEndJP
+2 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
	\renewcommand\thesection*
	\renewcommand\thesubsection*
	\kerneldocCJKon
	\kerneldocBeginKR

한국어 번역
===========
@@ -26,3 +27,4 @@
.. raw:: latex

    \normalsize
    \kerneldocEndKR
+5 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
	\renewcommand\thesection*
	\renewcommand\thesubsection*
	\kerneldocCJKon
	\kerneldocBeginSC

.. _linux_doc_zh:

@@ -189,3 +190,7 @@ TODOList:
----------

* :ref:`genindex`

.. raw:: latex

	\kerneldocEndSC