ドキュメントクラスオプションを設定する(latex_elements

ドキュメントクラス(\documentclass)のオプションを設定する部分です。 プリアンブルの設定は、ここで書くと長くなって読みにくくなるため、 ここでは変数の定義だけして、中身はあとで書くことにします。

1latex_elements = {
2    "papersize" = "a4paper",
3    "pointsize" = "12pt",
4    "preamble": "",    # あとで追加するので定義だけしておく
5    "figure_align": "htbp",
6#   "fontpkg": "\\usepackage{times}",
7    "polyglossia": "",
8    "fncychap": r"\usepackage[Bjornstrup]{fncychap}",
9}

LaTeX 文書の出力は以下のようになります。

\documentclass[a4paper, 12pt, dvipdfmx]{sphinxmanual}

パッケージを追加したい

LaTeXのパッケージはプリアンブルに追加しますが、その順序が重要なときがあります。 とくにhyperrefパッケージは最後に読み込むのがよいとされています。 Sphinxはこれに対応していて、hyperrefパッケージの前に読み込む場合はlatex_elements["extrapackages"]、後に読み込む場合はlatex_elements["preamble"]を使います。

latex_elementsextrapackagespreambleに複数のパッケージを追加すると読みにくくなります。 なので、僕は次のようにlatex_elementsの中でキーだけ確保しておき、後からパッケージを追加するように書いています。 LaTeXの変数には\を使うものが多いため、raw文字列を使っています。

 1latex_elements = {
 2    ...,
 3    "extrapackages": "",
 4    "preamble": "",
 5}
 6
 7latex_elements["extrapackages"] = r"""
 8\usepackage{physics}
 9"""
10
11latex_elements["preamble"] = r"""
12\hypersetup{bookmarksnumbered=true}
13"""

LaTeX 文書の出力は以下のようになります。

\usepackage{physics}

% Include hyperref last.
\usepackage{hyperref}
% Fix anchor placement for figures with captions.
\usepackage{hypcap}% it must be loaded after hyperref.
% Set up styles of URL: it should be placed after hyperref.
\urlstyle{same}
\usepackage{sphinxmessages}
\setcounter{tocdepth}{0}

\hypersetup{bookmarksnumbered=true}

Polyglossiaパッケージを無効にしたい

1latex_elements = {
2    ...,
3    "polyglossia": "",
4    ...,
5}

LaTeXエンジンにlualatexを指定すると、自動でPolyglossiaパッケージが読み込まれるようになっています。 このままビルドすると、多数のPackage polyglossia Warning: Asking to add empty feature to latin font(Script="CJK" to scripttag "")が表示されます。 多言語対応したドキュメントであれば、無効にしてしまいましょう。

fncychapパッケージのテーマを変更したい

1latex_elements = {
2    ...,
3    "fncychap": r"\usepackage[Bjornstrup]{fncychap}",
4    ...,
5}

SphinxのデフォルトはBjarneですが、Bjornstrupに変更するとよいと思います。 選択できるテーマはfncychapパッケージを参照してください。