Messages in this thread Patch in this message | | | Subject | [RFC PATCH 1/3] docs: pdfdocs: Refactor config for CJK document | From | Akira Yokosawa <> | Date | Thu, 24 Jun 2021 21:08:49 +0900 |
| |
To make generated LaTeX code portable across systems with different sets of available fonts, convert font-availability check in python code to LaTeX code by using a conditional command provided by the "fontspec" package.
This will help those who want to run Sphinx on one machine/container and run latexmk on other machines/containers with different font configurations.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> --- Documentation/conf.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/Documentation/conf.py b/Documentation/conf.py index 7d92ec3e5b6e..22f083bafaae 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -358,26 +358,23 @@ latex_elements = { # At least one book (translations) may have Asian characters # with are only displayed if xeCJK is used -cjk_cmd = check_output(['fc-list', '--format="%{family[0]}\n"']).decode('utf-8', 'ignore') -if cjk_cmd.find("Noto Sans CJK SC") >= 0: - latex_elements['preamble'] += ''' +latex_elements['preamble'] += ''' + \\IfFontExistsTF{Noto Sans CJK SC}{ % This is needed for translations - \\usepackage{xeCJK} - \\setCJKmainfont{Noto Sans CJK SC} + \\usepackage{xeCJK} + \\setCJKmainfont{Noto Sans CJK SC} % Define custom macros to on/off CJK \\newcommand{\\kerneldocCJKon}{\\makexeCJKactive} \\newcommand{\\kerneldocCJKoff}{\\makexeCJKinactive} - % To customize \sphinxtableofcontents + % Inactivate CJK after tableofcontents (using etoolbox) \\usepackage{etoolbox} - % Inactivate CJK after tableofcontents \\apptocmd{\\sphinxtableofcontents}{\\kerneldocCJKoff}{}{} - ''' -else: - latex_elements['preamble'] += ''' + }{ % No CJK font % Custom macros to on/off CJK (Dummy) \\newcommand{\\kerneldocCJKon}{} \\newcommand{\\kerneldocCJKoff}{} - ''' + } +''' # Fix reference escape troubles with Sphinx 1.4.x if major == 1: -- 2.17.1
| |