Skip to content

Commit

Permalink
docs: pdfdocs: Add CJK-language-specific font settings
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Akira Yokosawa authored and Jonathan Corbet committed Aug 12, 2021
1 parent 659653c commit e291ff6
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 1 deletion.
51 changes: 50 additions & 1 deletion Documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,17 +361,66 @@
% 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}{}{}
}{ % No CJK font found
% 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}{}
}
'''

Expand Down
5 changes: 5 additions & 0 deletions Documentation/translations/ja_JP/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
\renewcommand\thesection*
\renewcommand\thesubsection*
\kerneldocCJKon
\kerneldocBeginJP

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

howto

.. raw:: latex

\kerneldocEndJP
2 changes: 2 additions & 0 deletions Documentation/translations/ko_KR/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
\renewcommand\thesection*
\renewcommand\thesubsection*
\kerneldocCJKon
\kerneldocBeginKR

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

\normalsize
\kerneldocEndKR
5 changes: 5 additions & 0 deletions Documentation/translations/zh_CN/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
\renewcommand\thesection*
\renewcommand\thesubsection*
\kerneldocCJKon
\kerneldocBeginSC

.. _linux_doc_zh:

Expand Down Expand Up @@ -189,3 +190,7 @@ TODOList:
----------

* :ref:`genindex`

.. raw:: latex

\kerneldocEndSC

0 comments on commit e291ff6

Please sign in to comment.