ドキュメントクラスオプションを設定する(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パッケージを参照してください。