Sphinx - MyST - 日本語 - pdf

日本語のドキュメントをsphinxで難なく作れる時代のようです。 Markdownで書きたいので、MySTを使っています。

extensions = [
    "sphinx.ext.mathjax",
    "sphinx.ext.viewcode",
    "myst_parser",
]

myst_enalbe_extensions = [
    "amsmath",
    "dollarmath",
    "html_admonition",
    "html_image",
    "linkify",
    "replacements",
    "smartquotes",
    "tasklist",
]
myst_dmath_double_inline = True
source_suffix = ".md"
latex_docclass = {}
master_doc = "index"
latex_documents = [
    (
        master_doc,
        "my_filename.tex",
        "タイトル",
        "私の名前",
        "howto",
    ),
]
language = "ja"

language="ja"がuplatexを使うなど上手くやってくれる。

LuaLatexを使う場合はlanguage="ja"は不要だがpreambleに日本語環境を設定する必要がある。

latex_engine = "lualatex"
latex_elements = {
    "preamble": r"""
\usepackage{luatexja}
\usepackage[hiragino-pron,deluxe]{luatexja-preset}
\renewcommand{\kanjifamilydefault}{\gtdefault}
"""
}

howtoでコンパクトなpdfを作りたい場合、よさそうなdocclassが見当たらなかった。一方デフォルトだとhowtoのセクションの番号付けがおかしくなる。空のlatex_docclassを置き、index.mdの最初に次のものを入れることで妥当なものができた。

# dummy

'''{toctree}
---
caption: 目次
maxdepth: 1
---
'''

backtickが書けないので'で代用した。