Skip to content

Commit

Permalink
docs: Activate exCJK only in CJK chapters
Browse files Browse the repository at this point in the history
Activating xeCJK in English and Italian-translation documents
results in sub-optimal typesetting with wide-looking apostrophes
and quotation marks.

The xeCJK package provides macros for enabling and disabling its
effect in the middle of a document, namely \makexeCJKactive and
\makexeCJKinactive.

So the goal of this change is to activate xeCJK in the relevant
chapters in translations.

To do this:

    o Define custom macros in the preamble depending on the
      availability of the "Noto Sans CJK" font so that those
      macros can be used regardless of the use of xeCJK package.

    o Patch \sphinxtableofcontents so that xeCJK is inactivated
      after table of contents.

    o Embed those custom macros in each language's index.rst file
      as a ".. raw:: latex" construct.

Note: A CJK chapter needs \kerneldocCJKon in front of its chapter
heading, while a non-CJK chapter should have \kerneldocCJKoff
below its chapter heading.

This is to make sure the CJK font is available to CJK chapter's
heading and ending page's footer.

Tested against Sphinx versions 2.4.4 and 4.0.2.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Tested-by: Wu XiangCheng <bobwxc@email.cn>
Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/lkml/2061da0a-6ab1-35f3-99c1-dbc415444f37@gmail.com
Link: https://lore.kernel.org/r/83208ddc-5de9-b283-3fd6-92c635348ca0@gmail.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
  • Loading branch information
Akira Yokosawa authored and Jonathan Corbet committed May 27, 2021
1 parent 0e7c52d commit f7ebe6b
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 4 deletions.
13 changes: 13 additions & 0 deletions Documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,19 @@
% This is needed for translations
\\usepackage{xeCJK}
\\setCJKmainfont{Noto Sans CJK SC}
% Define custom macros to on/off CJK
\\newcommand{\\kerneldocCJKon}{\\makexeCJKactive}
\\newcommand{\\kerneldocCJKoff}{\\makexeCJKinactive}
% To customize \sphinxtableofcontents
\\usepackage{etoolbox}
% Inactivate CJK after tableofcontents
\\apptocmd{\\sphinxtableofcontents}{\\kerneldocCJKoff}{}{}
'''
else:
latex_elements['preamble'] += '''
% Custom macros to on/off CJK (Dummy)
\\newcommand{\\kerneldocCJKon}{}
\\newcommand{\\kerneldocCJKoff}{}
'''

# Fix reference escape troubles with Sphinx 1.4.x
Expand Down
4 changes: 4 additions & 0 deletions Documentation/translations/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ Translations
Disclaimer
----------

.. raw:: latex

\kerneldocCJKoff

Translation's purpose is to ease reading and understanding in languages other
than English. Its aim is to help people who do not understand English or have
doubts about its interpretation. Additionally, some people prefer to read
Expand Down
4 changes: 4 additions & 0 deletions Documentation/translations/it_IT/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
Traduzione italiana
===================

.. raw:: latex

\kerneldocCJKoff

:manutentore: Federico Vaga <federico.vaga@vaga.pv.it>

.. _it_disclaimer:
Expand Down
5 changes: 3 additions & 2 deletions Documentation/translations/ja_JP/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.. raw:: latex

\renewcommand\thesection*
\renewcommand\thesubsection*
\renewcommand\thesection*
\renewcommand\thesubsection*
\kerneldocCJKon

Japanese translations
=====================
Expand Down
5 changes: 3 additions & 2 deletions Documentation/translations/ko_KR/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.. raw:: latex

\renewcommand\thesection*
\renewcommand\thesubsection*
\renewcommand\thesection*
\renewcommand\thesubsection*
\kerneldocCJKon

한국어 번역
===========
Expand Down
1 change: 1 addition & 0 deletions Documentation/translations/zh_CN/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

\renewcommand\thesection*
\renewcommand\thesubsection*
\kerneldocCJKon

.. _linux_doc_zh:

Expand Down

0 comments on commit f7ebe6b

Please sign in to comment.