ドキュメントクラスオプションを設定する(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_elementsのextrapackagesやpreambleに複数のパッケージを追加すると読みにくくなります。
なので、僕は次のように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パッケージを参照してください。