Skip to content

Commit 36ed646

Browse files
committed
Append default Sphinx configurations for Chinese and Japanaese
Automatically select `xelatex` for Chinese and `platex` for Japanese. These defaults can be overridden by the user. Force `latex_use_xindy=False` for now until we support it in our Docker image.
1 parent c2d68e5 commit 36ed646

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

readthedocs/doc_builder/backends/sphinx.py

+3
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ def get_config_params(self):
153153
'dont_overwrite_sphinx_context': self.project.has_feature(
154154
Feature.DONT_OVERWRITE_SPHINX_CONTEXT,
155155
),
156+
'use_pdf_latexmk': self.project.has_feature(
157+
Feature.USE_PDF_LATEXMK,
158+
),
156159
}
157160

158161
finalize_sphinx_context_data.send(

readthedocs/doc_builder/templates/doc_builder/conf.py.tmpl

+35
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,38 @@ if 'extensions' in globals():
140140
extensions.insert(0, "readthedocs_ext.readthedocs")
141141
else:
142142
extensions = ["readthedocs_ext.readthedocs"]
143+
144+
{% if use_pdf_latexmk %}
145+
project_language = '{{ project.language }}'
146+
147+
# User's Sphinx configurations
148+
language_user = globals().get('language', None)
149+
latex_engine_user = globals().get('latex_engine', None)
150+
latex_elements_user = globals().get('latex_elements', None)
151+
152+
chinese = any([
153+
language_user in ('zh_CN', 'zh_TW'),
154+
project_language in ('zh_CN', 'zh_TW'),
155+
])
156+
157+
japanase = any([
158+
language_user == 'ja',
159+
project_language == 'ja',
160+
])
161+
162+
if chinese:
163+
latex_engine = latex_engine_user or 'xelatex'
164+
165+
# Remove this once xindy gets installed in Docker image and XINDYOPS
166+
# env variable is supported
167+
# https://github.com/rtfd/readthedocs-docker-images/pull/98
168+
latex_use_xindy = False
169+
170+
latex_elements_rtd = {
171+
'preamble': '\\usepackage[UTF8]{ctex}\n',
172+
}
173+
latex_elements = latex_elements_user or latex_elements_rtd
174+
elif japanase:
175+
latex_engine = latex_engine_user or 'platex'
176+
latex_use_xindy = False
177+
{% endif %}

0 commit comments

Comments
 (0)