2018-04-14 09:15:31 -05:00
|
|
|
|
.. highlight:: python
|
2016-06-18 13:25:48 -05:00
|
|
|
|
|
|
|
|
|
.. _latex:
|
|
|
|
|
|
|
|
|
|
LaTeX customization
|
|
|
|
|
===================
|
|
|
|
|
|
|
|
|
|
.. module:: latex
|
|
|
|
|
:synopsis: LaTeX specifics.
|
|
|
|
|
|
2016-10-29 09:30:33 -05:00
|
|
|
|
.. raw:: latex
|
|
|
|
|
|
|
|
|
|
\begingroup
|
2017-02-05 13:02:19 -06:00
|
|
|
|
\sphinxsetup{%
|
|
|
|
|
verbatimwithframe=false,
|
|
|
|
|
VerbatimColor={named}{OldLace},
|
|
|
|
|
TitleColor={named}{DarkGoldenrod},
|
|
|
|
|
hintBorderColor={named}{LightCoral},
|
|
|
|
|
attentionborder=3pt,
|
|
|
|
|
attentionBorderColor={named}{Crimson},
|
|
|
|
|
attentionBgColor={named}{FloralWhite},
|
|
|
|
|
noteborder=2pt,
|
|
|
|
|
noteBorderColor={named}{Olive},
|
|
|
|
|
cautionborder=3pt,
|
|
|
|
|
cautionBorderColor={named}{Cyan},
|
|
|
|
|
cautionBgColor={named}{LightCyan}}
|
2016-10-29 09:30:33 -05:00
|
|
|
|
\relax
|
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
The *latex* target does not benefit from prepared themes.
|
|
|
|
|
|
|
|
|
|
The :ref:`latex-options`, and particularly among them the
|
|
|
|
|
:ref:`latex_elements <latex_elements_confval>` variable
|
|
|
|
|
provides much of the interface for customization.
|
|
|
|
|
|
|
|
|
|
For some details of the LaTeX/PDF builder command line
|
|
|
|
|
invocation, refer to :py:class:`~sphinx.builders.latex.LaTeXBuilder`.
|
|
|
|
|
|
2017-10-22 04:45:28 -05:00
|
|
|
|
.. _latex-basic:
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
Example
|
|
|
|
|
-------
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
Keep in mind that backslashes must be doubled in Python string literals to
|
|
|
|
|
avoid interpretation as escape sequences, or use raw strings (as is done here).
|
2018-04-02 12:46:40 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
::
|
2017-06-05 05:11:41 -05:00
|
|
|
|
|
|
|
|
|
# inside conf.py
|
|
|
|
|
latex_engine = 'xelatex'
|
|
|
|
|
latex_elements = {
|
|
|
|
|
'fontpkg': r'''
|
|
|
|
|
\setmainfont{DejaVu Serif}
|
|
|
|
|
\setsansfont{DejaVu Sans}
|
|
|
|
|
\setmonofont{DejaVu Sans Mono}
|
|
|
|
|
''',
|
|
|
|
|
'preamble': r'''
|
|
|
|
|
\usepackage[titles]{tocloft}
|
|
|
|
|
\cftsetpnumwidth {1.25cm}\cftsetrmarg{1.5cm}
|
|
|
|
|
\setlength{\cftchapnumwidth}{0.75cm}
|
|
|
|
|
\setlength{\cftsecindent}{\cftchapnumwidth}
|
|
|
|
|
\setlength{\cftsecnumwidth}{1.25cm}
|
|
|
|
|
''',
|
|
|
|
|
'fncychap': r'\usepackage[Bjornstrup]{fncychap}',
|
|
|
|
|
'printindex': r'\footnotesize\raggedright\printindex',
|
|
|
|
|
}
|
|
|
|
|
latex_show_urls = 'footnote'
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2016-10-29 09:30:33 -05:00
|
|
|
|
.. highlight:: latex
|
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
.. _latex_elements_confval:
|
|
|
|
|
|
|
|
|
|
The latex_elements configuration setting
|
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
|
|
A dictionary that contains LaTeX snippets overriding those Sphinx usually puts
|
|
|
|
|
into the generated ``.tex`` files. Its ``'sphinxsetup'`` key is described
|
2019-01-13 03:49:16 -06:00
|
|
|
|
:ref:`separately <latexsphinxsetup>`.
|
2019-01-10 09:43:54 -06:00
|
|
|
|
|
|
|
|
|
* Keys that you may want to override include:
|
|
|
|
|
|
|
|
|
|
``'papersize'``
|
|
|
|
|
Paper size option of the document class (``'a4paper'`` or
|
|
|
|
|
``'letterpaper'``), default ``'letterpaper'``.
|
|
|
|
|
|
|
|
|
|
``'pointsize'``
|
|
|
|
|
Point size option of the document class (``'10pt'``, ``'11pt'`` or
|
|
|
|
|
``'12pt'``), default ``'10pt'``.
|
|
|
|
|
|
|
|
|
|
``'pxunit'``
|
|
|
|
|
the value of the ``px`` when used in image attributes ``width`` and
|
|
|
|
|
``height``. The default value is ``'0.75bp'`` which achieves
|
|
|
|
|
``96px=1in`` (in TeX ``1in = 72bp = 72.27pt``.) To obtain for
|
|
|
|
|
example ``100px=1in`` use ``'0.01in'`` or ``'0.7227pt'`` (the latter
|
|
|
|
|
leads to TeX computing a more precise value, due to the smaller unit
|
|
|
|
|
used in the specification); for ``72px=1in``, simply use ``'1bp'``; for
|
|
|
|
|
``90px=1in``, use ``'0.8bp'`` or ``'0.803pt'``.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
``'passoptionstopackages'``
|
|
|
|
|
A string which will be positioned early in the preamble, designed to
|
|
|
|
|
contain ``\\PassOptionsToPackage{options}{foo}`` commands. Default empty.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.4
|
|
|
|
|
|
|
|
|
|
``'babel'``
|
|
|
|
|
"babel" package inclusion, default ``'\\usepackage{babel}'`` (the
|
|
|
|
|
suitable document language string is passed as class option, and
|
|
|
|
|
``english`` is used if no language.) For Japanese documents, the
|
|
|
|
|
default is the empty string.
|
|
|
|
|
|
|
|
|
|
With XeLaTeX and LuaLaTeX, Sphinx configures the LaTeX document to use
|
|
|
|
|
`polyglossia`_, but one should be aware that current `babel`_ has
|
|
|
|
|
improved its support for Unicode engines in recent years and for some
|
|
|
|
|
languages it may make sense to prefer ``babel`` over ``polyglossia``.
|
|
|
|
|
|
|
|
|
|
.. hint::
|
|
|
|
|
|
|
|
|
|
After modifiying a core LaTeX key like this one, clean up the LaTeX
|
|
|
|
|
build repertory before next PDF build, else left-over auxiliary
|
|
|
|
|
files are likely to break the build.
|
|
|
|
|
|
|
|
|
|
.. _`polyglossia`: https://ctan.org/pkg/polyglossia
|
|
|
|
|
.. _`babel`: https://ctan.org/pkg/babel
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
|
|
|
|
For :confval:`latex_engine` set to ``'xelatex'``, the default
|
|
|
|
|
is ``'\\usepackage{polyglossia}\n\\setmainlanguage{<language>}'``.
|
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
``'lualatex'`` uses same default setting as ``'xelatex'``
|
|
|
|
|
.. versionchanged:: 1.7.6
|
|
|
|
|
For French, ``xelatex`` and ``lualatex`` default to using
|
|
|
|
|
``babel``, not ``polyglossia``.
|
|
|
|
|
|
|
|
|
|
``'fontpkg'``
|
|
|
|
|
Font package inclusion, the default is ``'\\usepackage{times}'`` which
|
|
|
|
|
uses Times for text, Helvetica for sans serif and Courier for monospace.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.2
|
|
|
|
|
Defaults to ``''`` when the :confval:`language` uses the Cyrillic
|
|
|
|
|
script.
|
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
|
Support for individual Greek and Cyrillic letters:
|
|
|
|
|
|
|
|
|
|
- In order to support occasional Cyrillic (физика частиц)
|
|
|
|
|
or Greek letters (Σωματιδιακή φυσική) in
|
|
|
|
|
a document whose language is English or a Latin European
|
|
|
|
|
one, the default set-up is enhanced (only for ``'pdflatex'``
|
|
|
|
|
engine) to do:
|
|
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
|
|
\substitutefont{LGR}{\rmdefault}{cmr}
|
|
|
|
|
\substitutefont{LGR}{\sfdefault}{cmss}
|
|
|
|
|
\substitutefont{LGR}{\ttdefault}{cmtt}
|
|
|
|
|
\substitutefont{X2}{\rmdefault}{cmr}
|
|
|
|
|
\substitutefont{X2}{\sfdefault}{cmss}
|
|
|
|
|
\substitutefont{X2}{\ttdefault}{cmtt}
|
|
|
|
|
|
|
|
|
|
but this is activated only under the condition that the
|
|
|
|
|
``'fontenc'`` key is configured to load the ``LGR`` (Greek)
|
|
|
|
|
and/or ``X2`` (Cyrillic) pdflatex-font encodings (if the
|
|
|
|
|
:confval:`language` is set to a Cyrillic language, this
|
|
|
|
|
``'fontpkg'`` key must be used as "times" package has no direct
|
|
|
|
|
support for it; then keep only ``LGR`` lines from the above,
|
|
|
|
|
if support is needed for Greek in the text).
|
|
|
|
|
|
|
|
|
|
The ``\substitutefont`` command is from the eponymous LaTeX
|
|
|
|
|
package, which is loaded by Sphinx if needed (on Ubuntu xenial it
|
|
|
|
|
is part of ``texlive-latex-extra`` which is a Sphinx
|
|
|
|
|
requirement).
|
|
|
|
|
|
|
|
|
|
Only if the document actually does contain Unicode Greek letters
|
|
|
|
|
(in text) or Cyrillic letters, will the above default set-up
|
|
|
|
|
cause additional requirements for the PDF build. On Ubuntu
|
|
|
|
|
xenial, ``texlive-lang-greek``, ``texlive-lang-cyrillic``, and
|
|
|
|
|
(with the above choice of fonts) the ``cm-super`` (or
|
|
|
|
|
``cm-super-minimal``) package.
|
|
|
|
|
|
|
|
|
|
- For ``'xelatex'`` and ``'lualatex'``, the default is to
|
|
|
|
|
use the FreeFont family: this OpenType font family
|
|
|
|
|
supports both Cyrillic and Greek scripts and is available as
|
|
|
|
|
separate Ubuntu xenial package ``fonts-freefont-otf``, it is not
|
|
|
|
|
needed to install the big package ``texlive-fonts-extra``.
|
|
|
|
|
|
|
|
|
|
- ``'platex'`` (Japanese documents) engine supports individual
|
|
|
|
|
Cyrillic and Greek letters with no need of extra user set-up.
|
|
|
|
|
|
|
|
|
|
``'fncychap'``
|
|
|
|
|
Inclusion of the "fncychap" package (which makes fancy chapter titles),
|
|
|
|
|
default ``'\\usepackage[Bjarne]{fncychap}'`` for English documentation
|
|
|
|
|
(this option is slightly customized by Sphinx),
|
|
|
|
|
``'\\usepackage[Sonny]{fncychap}'`` for internationalized docs (because
|
|
|
|
|
the "Bjarne" style uses numbers spelled out in English). Other
|
|
|
|
|
"fncychap" styles you can try are "Lenny", "Glenn", "Conny", "Rejne" and
|
|
|
|
|
"Bjornstrup". You can also set this to ``''`` to disable fncychap.
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
The default is ``''`` for Japanese documents.
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
``'preamble'``
|
|
|
|
|
Additional preamble content, default empty. One may move all needed
|
|
|
|
|
macros into some file :file:`mystyle.tex.txt` of the project source
|
|
|
|
|
repertory, and get LaTeX to import it at run time::
|
|
|
|
|
|
|
|
|
|
'preamble': r'\input{mystyle.tex.txt}',
|
|
|
|
|
# or, if the \ProvidesPackage LaTeX macro is used in a file mystyle.sty
|
|
|
|
|
'preamble': r'\usepackage{mystyle}',
|
|
|
|
|
|
|
|
|
|
It is then needed to set appropriately
|
|
|
|
|
:confval:`latex_additional_files`, for example::
|
|
|
|
|
|
|
|
|
|
latex_additional_files = ["mystyle.sty"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``'figure_align'``
|
|
|
|
|
Latex figure float alignment, default 'htbp' (here, top, bottom, page).
|
|
|
|
|
Whenever an image doesn't fit into the current page, it will be
|
|
|
|
|
'floated' into the next page but may be preceded by any other text.
|
|
|
|
|
If you don't like this behavior, use 'H' which will disable floating
|
|
|
|
|
and position figures strictly in the order they appear in the source.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.3
|
|
|
|
|
|
|
|
|
|
``'atendofbody'``
|
|
|
|
|
Additional document content (right before the indices), default empty.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
2019-10-26 04:33:59 -05:00
|
|
|
|
``'extrapackages'``
|
|
|
|
|
Additional LaTeX packages. For example:
|
|
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
|
|
latex_elements = {
|
|
|
|
|
'packages': r'\usepackage{isodate}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It defaults to empty.
|
|
|
|
|
|
|
|
|
|
The specified LaTeX packages will be loaded before
|
|
|
|
|
hyperref package and packages loaded from Sphinx extensions.
|
|
|
|
|
|
|
|
|
|
.. hint:: If you'd like to load additional LaTeX packages after hyperref, use
|
|
|
|
|
``'preamble'`` key instead.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
``'footer'``
|
|
|
|
|
Additional footer content (before the indices), default empty.
|
|
|
|
|
|
|
|
|
|
.. deprecated:: 1.5
|
|
|
|
|
Use ``'atendofbody'`` key instead.
|
|
|
|
|
|
|
|
|
|
* Keys that don't need to be overridden unless in special cases are:
|
|
|
|
|
|
|
|
|
|
``'extraclassoptions'``
|
|
|
|
|
The default is the empty string. Example: ``'extraclassoptions':
|
|
|
|
|
'openany'`` will allow chapters (for documents of the ``'manual'``
|
|
|
|
|
type) to start on any page.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.2
|
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
Added this documentation.
|
|
|
|
|
|
|
|
|
|
``'maxlistdepth'``
|
|
|
|
|
LaTeX allows by default at most 6 levels for nesting list and
|
|
|
|
|
quote-like environments, with at most 4 enumerated lists, and 4 bullet
|
|
|
|
|
lists. Setting this key for example to ``'10'`` (as a string) will
|
|
|
|
|
allow up to 10 nested levels (of all sorts). Leaving it to the empty
|
|
|
|
|
string means to obey the LaTeX default.
|
|
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
- Using this key may prove incompatible with some LaTeX packages
|
|
|
|
|
or special document classes which do their own list customization.
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
- The key setting is silently *ignored* if ``\usepackage{enumitem}``
|
|
|
|
|
is executed inside the document preamble. Use then rather the
|
|
|
|
|
dedicated commands of this LaTeX package.
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
``'inputenc'``
|
|
|
|
|
"inputenc" package inclusion, defaults to
|
|
|
|
|
``'\\usepackage[utf8]{inputenc}'`` when using pdflatex.
|
|
|
|
|
Otherwise empty.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.4.3
|
|
|
|
|
Previously ``'\\usepackage[utf8]{inputenc}'`` was used for all
|
|
|
|
|
compilers.
|
|
|
|
|
|
|
|
|
|
``'cmappkg'``
|
|
|
|
|
"cmap" package inclusion, default ``'\\usepackage{cmap}'``.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.2
|
|
|
|
|
|
|
|
|
|
``'fontenc'``
|
|
|
|
|
"fontenc" package inclusion, defaults to
|
|
|
|
|
``'\\usepackage[T1]{fontenc}'``.
|
2017-02-06 07:20:25 -06:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
If ``'pdflatex'`` is the :confval:`latex_engine`, one can add ``LGR``
|
|
|
|
|
for support of Greek letters in the document, and also ``X2`` (or
|
|
|
|
|
``T2A``) for Cyrillic letters, like this:
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
.. code-block:: latex
|
2018-04-02 12:46:40 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
r'\usepackage[LGR,X2,T1]{fontenc}'
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
.. attention::
|
|
|
|
|
|
2019-09-30 04:52:34 -05:00
|
|
|
|
If Greek is main language, do not use this key. Since Sphinx 2.2.1,
|
|
|
|
|
``xelatex`` will be used automatically as :confval:`latex_engine`.
|
|
|
|
|
Formerly, Sphinx did not support producing PDF via LaTeX with Greek as
|
|
|
|
|
main language.
|
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
Prior to 2.0, Unicode Greek letters were escaped to use LaTeX math
|
|
|
|
|
mark-up. This is not the case anymore, and the above must be used
|
|
|
|
|
(only in case of ``'pdflatex'`` engine) if the source contains such
|
|
|
|
|
Unicode Greek.
|
|
|
|
|
|
|
|
|
|
On Ubuntu xenial, packages ``texlive-lang-greek`` and ``cm-super``
|
|
|
|
|
(for the latter, only if the ``'fontpkg'`` setting is left to its
|
|
|
|
|
default) are needed for ``LGR`` to work. In place of ``cm-super``
|
|
|
|
|
one can install smaller ``cm-super-minimal``, but it requires the
|
|
|
|
|
LaTeX document to execute ``\usepackage[10pt]{type1ec}`` before
|
|
|
|
|
loading ``fontenc``. Thus, use this key with this extra at its
|
|
|
|
|
start if needed.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
|
|
|
|
Defaults to ``'\\usepackage{fontspec}'`` when
|
|
|
|
|
:confval:`latex_engine` is ``'xelatex'``.
|
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
``'lualatex'`` uses ``fontspec`` per default like ``'xelatex'``.
|
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
|
``'lualatex'`` executes
|
|
|
|
|
``\defaultfontfeatures[\rmfamily,\sffamily]{}`` to disable TeX
|
2019-12-07 05:27:21 -06:00
|
|
|
|
ligatures transforming `<<` and `>>` as escaping working with
|
|
|
|
|
``pdflatex/xelatex`` failed with ``lualatex``.
|
2019-01-10 09:43:54 -06:00
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
|
Detection of ``LGR``, ``T2A``, ``X2`` to trigger support of
|
|
|
|
|
occasional Greek or Cyrillic (``'pdflatex'`` only, as this support
|
|
|
|
|
is provided natively by ``'platex'`` and only requires suitable
|
|
|
|
|
font with ``'xelatex'/'lualatex'``).
|
2019-12-07 05:27:21 -06:00
|
|
|
|
.. versionchanged:: 2.3.0
|
|
|
|
|
``'xelatex'`` also executes
|
|
|
|
|
``\defaultfontfeatures[\rmfamily,\sffamily]{}`` in order to avoid
|
|
|
|
|
contractions of ``--`` into en-dash or transforms of straight quotes
|
|
|
|
|
into curly ones in PDF (in non-literal text paragraphs) despite
|
|
|
|
|
:confval:`smartquotes` being set to ``False``.
|
2019-01-10 09:43:54 -06:00
|
|
|
|
|
|
|
|
|
``'textgreek'``
|
|
|
|
|
The default (``'pdflatex'`` only) is
|
|
|
|
|
``'\\usepackage{textalpha}'``, but only if ``'fontenc'`` was
|
|
|
|
|
modified by user to include ``LGR`` option. If not, the key
|
|
|
|
|
value will be forced to be the empty string.
|
|
|
|
|
|
|
|
|
|
This is needed for ``pdfLaTeX`` to support Unicode input of Greek
|
|
|
|
|
letters such as φύσις. Expert users may want to load the ``textalpha``
|
|
|
|
|
package with its option ``normalize-symbols``.
|
|
|
|
|
|
|
|
|
|
.. hint::
|
|
|
|
|
|
|
|
|
|
Unicode Greek (but no further Unicode symbols) in :rst:dir:`math`
|
|
|
|
|
can be supported by ``'pdflatex'`` from setting this key to
|
|
|
|
|
``r'\usepackage{textalpha,alphabeta}'``. Then ``:math:`α``` (U+03B1)
|
|
|
|
|
will render as :math:`\alpha`. For wider Unicode support in math
|
|
|
|
|
input, see the discussion of :confval:`latex_engine`.
|
|
|
|
|
|
|
|
|
|
With ``'platex'`` (Japanese), ``'xelatex'`` or ``'lualatex'``, this
|
|
|
|
|
key is ignored.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
``'geometry'``
|
|
|
|
|
"geometry" package inclusion, the default definition is:
|
|
|
|
|
|
|
|
|
|
``'\\usepackage{geometry}'``
|
|
|
|
|
|
|
|
|
|
with an additional ``[dvipdfm]`` for Japanese documents.
|
|
|
|
|
The Sphinx LaTeX style file executes:
|
|
|
|
|
|
|
|
|
|
``\PassOptionsToPackage{hmargin=1in,vmargin=1in,marginpar=0.5in}{geometry}``
|
|
|
|
|
|
|
|
|
|
which can be customized via corresponding :ref:`'sphinxsetup' options
|
|
|
|
|
<latexsphinxsetup>`.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5.2
|
|
|
|
|
``dvipdfm`` option if :confval:`latex_engine` is ``'platex'``.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.3
|
|
|
|
|
The :ref:`'sphinxsetup' keys for the margins
|
|
|
|
|
<latexsphinxsetuphmargin>`.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5.3
|
|
|
|
|
The location in the LaTeX file has been moved to after
|
|
|
|
|
``\usepackage{sphinx}`` and ``\sphinxsetup{..}``, hence also after
|
|
|
|
|
insertion of ``'fontpkg'`` key. This is in order to handle the paper
|
|
|
|
|
layout options in a special way for Japanese documents: the text
|
|
|
|
|
width will be set to an integer multiple of the *zenkaku* width, and
|
|
|
|
|
the text height to an integer multiple of the baseline. See the
|
|
|
|
|
:ref:`hmargin <latexsphinxsetuphmargin>` documentation for more.
|
|
|
|
|
|
|
|
|
|
``'hyperref'``
|
|
|
|
|
"hyperref" package inclusion; also loads package "hypcap" and issues
|
|
|
|
|
``\urlstyle{same}``. This is done after :file:`sphinx.sty` file is
|
|
|
|
|
loaded and before executing the contents of ``'preamble'`` key.
|
|
|
|
|
|
|
|
|
|
.. attention::
|
|
|
|
|
|
|
|
|
|
Loading of packages "hyperref" and "hypcap" is mandatory.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
Previously this was done from inside :file:`sphinx.sty`.
|
|
|
|
|
|
|
|
|
|
``'maketitle'``
|
|
|
|
|
"maketitle" call, default ``'\\sphinxmaketitle'``. Override
|
|
|
|
|
if you want to generate a differently styled title page.
|
|
|
|
|
|
|
|
|
|
.. hint::
|
|
|
|
|
|
|
|
|
|
If the key value is set to
|
|
|
|
|
``r'\newcommand\sphinxbackoftitlepage{<Extra
|
|
|
|
|
material>}\sphinxmaketitle'``, then ``<Extra material>`` will be
|
|
|
|
|
typeset on back of title page (``'manual'`` docclass only).
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.8.3
|
|
|
|
|
Original ``\maketitle`` from document class is not overwritten,
|
|
|
|
|
hence is re-usable as part of some custom setting for this key.
|
|
|
|
|
.. versionadded:: 1.8.3
|
|
|
|
|
``\sphinxbackoftitlepage`` optional macro. It can also be defined
|
|
|
|
|
inside ``'preamble'`` key rather than this one.
|
|
|
|
|
|
|
|
|
|
``'releasename'``
|
|
|
|
|
value that prefixes ``'release'`` element on title page, default
|
|
|
|
|
``'Release'``. As for *title* and *author* used in the tuples of
|
|
|
|
|
:confval:`latex_documents`, it is inserted as LaTeX markup.
|
|
|
|
|
|
|
|
|
|
``'tableofcontents'``
|
|
|
|
|
"tableofcontents" call, default ``'\\sphinxtableofcontents'`` (it is a
|
|
|
|
|
wrapper of unmodified ``\tableofcontents``, which may itself be
|
|
|
|
|
customized by user loaded packages.)
|
|
|
|
|
Override if
|
|
|
|
|
you want to generate a different table of contents or put content
|
|
|
|
|
between the title page and the TOC.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
|
|
|
|
Previously the meaning of ``\tableofcontents`` itself was modified
|
|
|
|
|
by Sphinx. This created an incompatibility with dedicated packages
|
|
|
|
|
modifying it also such as "tocloft" or "etoc".
|
|
|
|
|
|
|
|
|
|
``'transition'``
|
|
|
|
|
Commands used to display transitions, default
|
|
|
|
|
``'\n\n\\bigskip\\hrule\\bigskip\n\n'``. Override if you want to
|
|
|
|
|
display transitions differently.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.2
|
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
Remove unneeded ``{}`` after ``\\hrule``.
|
|
|
|
|
|
|
|
|
|
``'printindex'``
|
|
|
|
|
"printindex" call, the last thing in the file, default
|
|
|
|
|
``'\\printindex'``. Override if you want to generate the index
|
|
|
|
|
differently or append some content after the index. For example
|
|
|
|
|
``'\\footnotesize\\raggedright\\printindex'`` is advisable when the
|
|
|
|
|
index is full of long entries.
|
|
|
|
|
|
|
|
|
|
``'fvset'``
|
|
|
|
|
Customization of ``fancyvrb`` LaTeX package. Sphinx does by default
|
|
|
|
|
``'fvset': '\\fvset{fontsize=\\small}'``, to adjust for the large
|
|
|
|
|
character width of the monospace font, used in code-blocks.
|
|
|
|
|
You may need to modify this if you use custom fonts.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.8
|
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
|
Due to new default font choice for ``'xelatex'`` and ``'lualatex'``
|
|
|
|
|
(FreeFont), Sphinx does ``\\fvset{fontsize=\\small}`` also with these
|
|
|
|
|
engines (and not ``\\fvset{fontsize=auto}``).
|
|
|
|
|
|
|
|
|
|
* Keys that are set by other options and therefore should not be overridden
|
|
|
|
|
are:
|
|
|
|
|
|
|
|
|
|
``'docclass'``
|
|
|
|
|
``'classoptions'``
|
|
|
|
|
``'title'``
|
|
|
|
|
``'release'``
|
|
|
|
|
``'author'``
|
|
|
|
|
``'makeindex'``
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. _latexsphinxsetup:
|
|
|
|
|
|
|
|
|
|
\\'sphinxsetup\\' key
|
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
|
|
The ``'sphinxsetup'`` key of :ref:`latex_elements <latex_elements_confval>`
|
|
|
|
|
provides a LaTeX-type customization interface::
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
latex_elements = {
|
|
|
|
|
'sphinxsetup': 'key1=value1, key2=value2, ...',
|
|
|
|
|
}
|
2016-10-29 07:03:12 -05:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
It defaults to empty. If non-empty, it will be passed as argument to the
|
|
|
|
|
``\sphinxsetup`` macro inside the document preamble, like this::
|
2017-06-05 05:11:41 -05:00
|
|
|
|
|
|
|
|
|
\usepackage{sphinx}
|
|
|
|
|
\sphinxsetup{key1=value1, key2=value2,...}
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
.. hint::
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
It is possible to insert further uses of the ``\sphinxsetup`` LaTeX macro
|
|
|
|
|
directly into the body of the document, via the help of the :rst:dir:`raw`
|
2019-01-10 09:43:54 -06:00
|
|
|
|
directive. Here is how this present chapter is styled in the PDF output::
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
.. raw:: latex
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
\begingroup
|
|
|
|
|
\sphinxsetup{%
|
|
|
|
|
verbatimwithframe=false,
|
|
|
|
|
VerbatimColor={named}{OldLace},
|
|
|
|
|
TitleColor={named}{DarkGoldenrod},
|
|
|
|
|
hintBorderColor={named}{LightCoral},
|
|
|
|
|
attentionborder=3pt,
|
|
|
|
|
attentionBorderColor={named}{Crimson},
|
|
|
|
|
attentionBgColor={named}{FloralWhite},
|
|
|
|
|
noteborder=2pt,
|
|
|
|
|
noteBorderColor={named}{Olive},
|
|
|
|
|
cautionborder=3pt,
|
|
|
|
|
cautionBorderColor={named}{Cyan},
|
|
|
|
|
cautionBgColor={named}{LightCyan}}
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
at the start of the chapter and::
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
.. raw:: latex
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
\endgroup
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
at its end.
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2018-04-02 12:46:40 -05:00
|
|
|
|
The colors used in the above are provided by the ``svgnames`` option of the
|
|
|
|
|
"xcolor" package::
|
2016-10-29 17:08:17 -05:00
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
latex_elements = {
|
|
|
|
|
'passoptionstopackages': r'\PassOptionsToPackage{svgnames}{xcolor}',
|
|
|
|
|
}
|
2016-10-29 17:08:17 -05:00
|
|
|
|
|
2017-01-16 08:15:07 -06:00
|
|
|
|
|
2019-01-10 09:43:54 -06:00
|
|
|
|
LaTeX boolean keys require *lowercase* ``true`` or ``false`` values.
|
|
|
|
|
Spaces around the commas and equal signs are ignored, spaces inside LaTeX
|
|
|
|
|
macros may be significant.
|
2017-01-16 08:15:07 -06:00
|
|
|
|
|
2017-02-06 07:20:25 -06:00
|
|
|
|
.. _latexsphinxsetuphmargin:
|
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
``hmargin, vmargin``
|
|
|
|
|
The dimensions of the horizontal (resp. vertical) margins, passed as
|
|
|
|
|
``hmargin`` (resp. ``vmargin``) option to
|
|
|
|
|
the ``geometry`` package. The default is ``1in``, which is equivalent to
|
|
|
|
|
``{1in,1in}``. Example::
|
2017-02-03 17:00:05 -06:00
|
|
|
|
|
|
|
|
|
'sphinxsetup': 'hmargin={2in,1.5in}, vmargin={1.5in,2in}, marginpar=1in',
|
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
Japanese documents currently accept only the one-dimension format for
|
|
|
|
|
these parameters. The ``geometry`` package is then passed suitable options
|
|
|
|
|
to get the text width set to an exact multiple of the *zenkaku* width, and
|
|
|
|
|
the text height set to an integer multiple of the baselineskip, with the
|
|
|
|
|
closest fit for the margins.
|
2017-02-03 17:00:05 -06:00
|
|
|
|
|
2017-02-06 06:55:25 -06:00
|
|
|
|
.. hint::
|
2017-02-03 17:00:05 -06:00
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
For Japanese ``'manual'`` docclass with pointsize ``11pt`` or ``12pt``,
|
|
|
|
|
use the ``nomag`` extra document class option (cf.
|
|
|
|
|
``'extraclassoptions'`` key of :confval:`latex_elements`) or so-called
|
2017-06-05 12:42:47 -05:00
|
|
|
|
TeX "true" units::
|
2017-02-03 17:00:05 -06:00
|
|
|
|
|
2017-02-05 13:02:19 -06:00
|
|
|
|
'sphinxsetup': 'hmargin=1.5truein, vmargin=1.5truein, marginpar=5zw',
|
2017-02-03 17:00:05 -06:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.3
|
|
|
|
|
|
|
|
|
|
``marginpar``
|
|
|
|
|
The ``\marginparwidth`` LaTeX dimension, defaults to ``0.5in``. For Japanese
|
|
|
|
|
documents, the value is modified to be the closest integer multiple of the
|
|
|
|
|
*zenkaku* width.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.3
|
|
|
|
|
|
2016-10-27 13:24:33 -05:00
|
|
|
|
``verbatimwithframe``
|
2016-10-28 14:45:44 -05:00
|
|
|
|
default ``true``. Boolean to specify if :rst:dir:`code-block`\ s and literal
|
|
|
|
|
includes are framed. Setting it to ``false`` does not deactivate use of
|
|
|
|
|
package "framed", because it is still in use for the optional background
|
2017-06-05 05:11:41 -05:00
|
|
|
|
colour.
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
|
|
|
|
``verbatimwrapslines``
|
2017-01-14 05:32:20 -06:00
|
|
|
|
default ``true``. Tells whether long lines in :rst:dir:`code-block`\ 's
|
|
|
|
|
contents should wrap.
|
2016-10-29 07:03:12 -05:00
|
|
|
|
|
2017-06-16 07:24:40 -05:00
|
|
|
|
``literalblockcappos``
|
|
|
|
|
default ``t`` for "top". Decides the caption position. Alternative is
|
|
|
|
|
``b`` ("bottom").
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.7
|
|
|
|
|
|
2017-05-23 08:58:03 -05:00
|
|
|
|
``verbatimhintsturnover``
|
2017-06-16 07:24:40 -05:00
|
|
|
|
default ``true``. If ``true``, code-blocks display "continued on next
|
2017-05-23 08:58:03 -05:00
|
|
|
|
page", "continued from previous page" hints in case of pagebreaks.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.6.3
|
2017-06-16 07:24:40 -05:00
|
|
|
|
.. versionchanged:: 1.7
|
|
|
|
|
the default changed from ``false`` to ``true``.
|
|
|
|
|
|
|
|
|
|
``verbatimcontinuedalign``, ``verbatimcontinuesalign``
|
2018-12-11 07:06:48 -06:00
|
|
|
|
default ``r``. Horizontal position relative to the framed contents:
|
2017-06-16 07:24:40 -05:00
|
|
|
|
either ``l`` (left aligned), ``r`` (right aligned) or ``c`` (centered).
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.7
|
2017-05-23 08:58:03 -05:00
|
|
|
|
|
2017-01-14 05:32:20 -06:00
|
|
|
|
``parsedliteralwraps``
|
|
|
|
|
default ``true``. Tells whether long lines in :dudir:`parsed-literal`\ 's
|
|
|
|
|
contents should wrap.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
set this option value to ``false`` to recover former behaviour.
|
|
|
|
|
|
2016-11-05 10:43:13 -05:00
|
|
|
|
``inlineliteralwraps``
|
|
|
|
|
default ``true``. Allows linebreaks inside inline literals: but extra
|
|
|
|
|
potential break-points (additionally to those allowed by LaTeX at spaces
|
2016-11-06 04:30:30 -06:00
|
|
|
|
or for hyphenation) are currently inserted only after the characters
|
2019-11-06 11:42:52 -06:00
|
|
|
|
``. , ; ? ! /`` and ``\``. Due to TeX internals, white space in the line
|
|
|
|
|
will be stretched (or shrunk) in order to accomodate the linebreak.
|
2016-11-05 10:43:13 -05:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
2017-01-14 05:32:20 -06:00
|
|
|
|
set this option value to ``false`` to recover former behaviour.
|
2016-11-05 10:43:13 -05:00
|
|
|
|
|
2019-11-06 11:42:52 -06:00
|
|
|
|
.. versionchanged:: 2.3.0
|
|
|
|
|
added potential breakpoint at ``\`` characters.
|
|
|
|
|
|
2016-10-28 14:45:44 -05:00
|
|
|
|
``verbatimvisiblespace``
|
2016-10-29 09:30:33 -05:00
|
|
|
|
default ``\textcolor{red}{\textvisiblespace}``. When a long code line is
|
2017-06-05 05:11:41 -05:00
|
|
|
|
split, the last space character from the source code line right before the
|
|
|
|
|
linebreak location is typeset using this.
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
|
|
|
|
``verbatimcontinued``
|
2017-06-05 05:11:41 -05:00
|
|
|
|
A LaTeX macro inserted at start of continuation code lines. Its
|
|
|
|
|
(complicated...) default typesets a small red hook pointing to the right::
|
2016-10-29 07:03:12 -05:00
|
|
|
|
|
2016-10-29 09:30:33 -05:00
|
|
|
|
\makebox[2\fontcharwd\font`\x][r]{\textcolor{red}{\tiny$\hookrightarrow$}}
|
2016-10-29 07:03:12 -05:00
|
|
|
|
|
2016-10-28 14:45:44 -05:00
|
|
|
|
.. versionchanged:: 1.5
|
2017-06-05 05:11:41 -05:00
|
|
|
|
The breaking of long code lines was added at 1.4.2. The default
|
|
|
|
|
definition of the continuation symbol was changed at 1.5 to accomodate
|
|
|
|
|
various font sizes (e.g. code-blocks can be in footnotes).
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
2016-10-27 13:24:33 -05:00
|
|
|
|
``TitleColor``
|
|
|
|
|
default ``{rgb}{0.126,0.263,0.361}``. The colour for titles (as configured
|
2017-06-05 09:30:14 -05:00
|
|
|
|
via use of package "titlesec".)
|
|
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
Colours set via ``'sphinxsetup'`` must obey the syntax of the
|
|
|
|
|
argument of the ``color/xcolor`` packages ``\definecolor`` command.
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
|
|
|
|
``InnerLinkColor``
|
|
|
|
|
default ``{rgb}{0.208,0.374,0.486}``. A colour passed to ``hyperref`` as
|
|
|
|
|
value of ``linkcolor`` and ``citecolor``.
|
|
|
|
|
|
|
|
|
|
``OuterLinkColor``
|
|
|
|
|
default ``{rgb}{0.216,0.439,0.388}``. A colour passed to ``hyperref`` as
|
|
|
|
|
value of ``filecolor``, ``menucolor``, and ``urlcolor``.
|
|
|
|
|
|
|
|
|
|
``VerbatimColor``
|
|
|
|
|
default ``{rgb}{1,1,1}``. The background colour for
|
|
|
|
|
:rst:dir:`code-block`\ s. The default is white.
|
|
|
|
|
|
|
|
|
|
``VerbatimBorderColor``
|
|
|
|
|
default ``{rgb}{0,0,0}``. The frame color, defaults to black.
|
|
|
|
|
|
2017-12-10 05:16:35 -06:00
|
|
|
|
``VerbatimHighlightColor``
|
|
|
|
|
default ``{rgb}{0.878,1,1}``. The color for highlighted lines.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.6.6
|
|
|
|
|
|
2017-12-11 16:09:19 -06:00
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
Starting with this colour key, and for all others coming next, the actual
|
|
|
|
|
names declared to "color" or "xcolor" are prefixed with "sphinx".
|
|
|
|
|
|
2016-10-27 13:24:33 -05:00
|
|
|
|
``verbatimsep``
|
|
|
|
|
default ``\fboxsep``. The separation between code lines and the frame.
|
|
|
|
|
|
|
|
|
|
``verbatimborder``
|
|
|
|
|
default ``\fboxrule``. The width of the frame around
|
|
|
|
|
:rst:dir:`code-block`\ s.
|
|
|
|
|
|
|
|
|
|
``shadowsep``
|
|
|
|
|
default ``5pt``. The separation between contents and frame for
|
|
|
|
|
:dudir:`contents` and :dudir:`topic` boxes.
|
|
|
|
|
|
|
|
|
|
``shadowsize``
|
|
|
|
|
default ``4pt``. The width of the lateral "shadow" to the right.
|
|
|
|
|
|
|
|
|
|
``shadowrule``
|
|
|
|
|
default ``\fboxrule``. The width of the frame around :dudir:`topic` boxes.
|
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|notebdcolors|
|
|
|
|
|
default ``{rgb}{0,0,0}`` (black). The colour for the two horizontal rules
|
|
|
|
|
used by Sphinx in LaTeX for styling a :dudir:`note` type admonition.
|
2016-10-29 07:03:12 -05:00
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
``noteborder``, ``hintborder``, ``importantborder``, ``tipborder``
|
2016-10-27 13:24:33 -05:00
|
|
|
|
default ``0.5pt``. The width of the two horizontal rules.
|
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
.. only:: not latex
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|warningbdcolors|
|
|
|
|
|
default ``{rgb}{0,0,0}`` (black). The colour for the admonition frame.
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
.. only:: latex
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|wgbdcolorslatex|
|
|
|
|
|
default ``{rgb}{0,0,0}`` (black). The colour for the admonition frame.
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|warningbgcolors|
|
|
|
|
|
default ``{rgb}{1,1,1}`` (white). The background colours for the respective
|
|
|
|
|
admonitions.
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|warningborders|
|
2016-10-27 13:24:33 -05:00
|
|
|
|
default ``1pt``. The width of the frame.
|
|
|
|
|
|
|
|
|
|
``AtStartFootnote``
|
2016-10-29 09:30:33 -05:00
|
|
|
|
default ``\mbox{ }``. LaTeX macros inserted at the start of the footnote
|
2016-10-27 13:24:33 -05:00
|
|
|
|
text at bottom of page, after the footnote number.
|
|
|
|
|
|
|
|
|
|
``BeforeFootnote``
|
2016-10-29 09:30:33 -05:00
|
|
|
|
default ``\leavevmode\unskip``. LaTeX macros inserted before the footnote
|
2017-06-05 05:11:41 -05:00
|
|
|
|
mark. The default removes possible space before it (else, TeX could insert
|
|
|
|
|
a linebreak there).
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
``HeaderFamily``
|
2016-10-29 09:30:33 -05:00
|
|
|
|
default ``\sffamily\bfseries``. Sets the font used by headings.
|
|
|
|
|
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|
|
|
|
|
.. |notebdcolors| replace:: ``noteBorderColor``, ``hintBorderColor``,
|
|
|
|
|
``importantBorderColor``, ``tipBorderColor``
|
|
|
|
|
|
|
|
|
|
.. |warningbdcolors| replace:: ``warningBorderColor``, ``cautionBorderColor``,
|
|
|
|
|
``attentionBorderColor``, ``dangerBorderColor``,
|
|
|
|
|
``errorBorderColor``
|
|
|
|
|
|
|
|
|
|
.. |wgbdcolorslatex| replace:: ``warningBorderColor``, ``cautionBorderColor``,
|
|
|
|
|
``attentionB..C..``, ``dangerB..C..``,
|
|
|
|
|
``errorB..C..``
|
|
|
|
|
|
|
|
|
|
.. else latex goes into right margin, as it does not hyphenate the names
|
|
|
|
|
|
|
|
|
|
.. |warningbgcolors| replace:: ``warningBgColor``, ``cautionBgColor``,
|
|
|
|
|
``attentionBgColor``, ``dangerBgColor``,
|
|
|
|
|
``errorBgColor``
|
|
|
|
|
|
2018-12-11 07:06:48 -06:00
|
|
|
|
.. |warningborders| replace:: ``warningborder``, ``cautionborder``,
|
|
|
|
|
``attentionborder``, ``dangerborder``,
|
|
|
|
|
``errorborder``
|
2017-06-05 09:30:14 -05:00
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
LaTeX macros and environments
|
|
|
|
|
-----------------------------
|
2016-10-27 13:24:33 -05:00
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
Here are some macros from the package file :file:`sphinx.sty` and class files
|
|
|
|
|
:file:`sphinxhowto.cls`, :file:`sphinxmanual.cls`, which have public names
|
|
|
|
|
thus allowing redefinitions. Check the respective files for the defaults.
|
2016-10-28 14:45:44 -05:00
|
|
|
|
|
2018-12-22 10:33:03 -06:00
|
|
|
|
.. _latex-macros:
|
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
Macros
|
|
|
|
|
~~~~~~
|
2016-10-11 11:16:47 -05:00
|
|
|
|
|
2019-04-12 12:21:34 -05:00
|
|
|
|
- text styling commands:
|
|
|
|
|
|
|
|
|
|
- ``\sphinxstrong``,
|
|
|
|
|
- ``\sphinxbfcode``,
|
|
|
|
|
- ``\sphinxemail``,
|
|
|
|
|
- ``\sphinxtablecontinued``,
|
|
|
|
|
- ``\sphinxtitleref``,
|
|
|
|
|
- ``\sphinxmenuselection``,
|
|
|
|
|
- ``\sphinxaccelerator``,
|
|
|
|
|
- ``\sphinxcrossref``,
|
|
|
|
|
- ``\sphinxtermref``,
|
|
|
|
|
- ``\sphinxoptional``.
|
|
|
|
|
|
2017-03-01 15:26:49 -06:00
|
|
|
|
.. versionadded:: 1.4.5
|
|
|
|
|
Use of ``\sphinx`` prefixed macro names to limit possibilities of conflict
|
|
|
|
|
with LaTeX packages.
|
2019-04-12 12:21:34 -05:00
|
|
|
|
- more text styling:
|
|
|
|
|
|
|
|
|
|
- ``\sphinxstyleindexentry``,
|
|
|
|
|
- ``\sphinxstyleindexextra``,
|
|
|
|
|
- ``\sphinxstyleindexpageref``,
|
|
|
|
|
- ``\sphinxstyletopictitle``,
|
|
|
|
|
- ``\sphinxstylesidebartitle``,
|
|
|
|
|
- ``\sphinxstyleothertitle``,
|
|
|
|
|
- ``\sphinxstylesidebarsubtitle``,
|
|
|
|
|
- ``\sphinxstyletheadfamily``,
|
|
|
|
|
- ``\sphinxstyleemphasis``,
|
|
|
|
|
- ``\sphinxstyleliteralemphasis``,
|
|
|
|
|
- ``\sphinxstylestrong``,
|
|
|
|
|
- ``\sphinxstyleliteralstrong``,
|
|
|
|
|
- ``\sphinxstyleabbreviation``,
|
|
|
|
|
- ``\sphinxstyleliteralintitle``,
|
|
|
|
|
- ``\sphinxstylecodecontinued``,
|
|
|
|
|
- ``\sphinxstylecodecontinues``.
|
|
|
|
|
|
2016-06-18 13:25:48 -05:00
|
|
|
|
.. versionadded:: 1.5
|
2017-06-05 05:11:41 -05:00
|
|
|
|
these macros were formerly hard-coded as non customizable ``\texttt``,
|
|
|
|
|
``\emph``, etc...
|
2017-05-07 04:10:41 -05:00
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
``\sphinxstyletheadfamily`` which defaults to ``\sffamily`` and allows
|
|
|
|
|
multiple paragraphs in header cells of tables.
|
2017-05-23 08:58:03 -05:00
|
|
|
|
.. versionadded:: 1.6.3
|
|
|
|
|
``\sphinxstylecodecontinued`` and ``\sphinxstylecodecontinues``.
|
2020-03-05 08:46:58 -06:00
|
|
|
|
.. versionadded:: 3.0
|
2020-01-09 04:05:05 -06:00
|
|
|
|
``\sphinxkeyboard``
|
2019-04-12 12:30:31 -05:00
|
|
|
|
- ``\sphinxtableofcontents``: it is a
|
2018-12-22 10:33:03 -06:00
|
|
|
|
wrapper (defined differently in :file:`sphinxhowto.cls` and in
|
|
|
|
|
:file:`sphinxmanual.cls`) of standard ``\tableofcontents``. The macro
|
|
|
|
|
``\sphinxtableofcontentshook`` is executed during its expansion right before
|
|
|
|
|
``\tableofcontents`` itself.
|
2017-06-05 05:11:41 -05:00
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
|
|
|
|
formerly, the meaning of ``\tableofcontents`` was modified by Sphinx.
|
2018-12-22 10:33:03 -06:00
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
|
hard-coded redefinitions of ``\l@section`` and ``\l@subsection`` formerly
|
|
|
|
|
done during loading of ``'manual'`` docclass are now executed later via
|
|
|
|
|
``\sphinxtableofcontentshook``. This macro is also executed by the
|
|
|
|
|
``'howto'`` docclass, but defaults to empty with it.
|
2019-04-12 12:30:31 -05:00
|
|
|
|
- ``\sphinxmaketitle``: it is defined in the class files
|
2018-12-21 14:38:27 -06:00
|
|
|
|
:file:`sphinxmanual.cls` and :file:`sphinxhowto.cls` and is used as
|
|
|
|
|
default setting of ``'maketitle'`` :confval:`latex_elements` key.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.8.3
|
|
|
|
|
formerly, ``\maketitle`` from LaTeX document class was modified by
|
|
|
|
|
Sphinx.
|
2019-04-12 12:30:31 -05:00
|
|
|
|
- ``\sphinxbackoftitlepage``: for ``'manual'`` docclass, and if it is
|
|
|
|
|
defined, it gets executed at end of ``\sphinxmaketitle``, before the final
|
2018-12-21 14:38:27 -06:00
|
|
|
|
``\clearpage``. Use either the ``'maketitle'`` key or the ``'preamble'`` key
|
|
|
|
|
of :confval:`latex_elements` to add a custom definition of
|
|
|
|
|
``\sphinxbackoftitlepage``.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.8.3
|
2019-04-12 12:30:31 -05:00
|
|
|
|
- ``\sphinxcite``: it is a wrapper of standard ``\cite`` for citation
|
|
|
|
|
references.
|
2017-06-05 05:11:41 -05:00
|
|
|
|
|
|
|
|
|
Environments
|
|
|
|
|
~~~~~~~~~~~~
|
|
|
|
|
|
2017-05-04 02:36:04 -05:00
|
|
|
|
- a :dudir:`figure` may have an optional legend with arbitrary body
|
|
|
|
|
elements: they are rendered in a ``sphinxlegend`` environment. The default
|
|
|
|
|
definition issues ``\small``, and ends with ``\par``.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.6
|
|
|
|
|
formerly, the ``\small`` was hardcoded in LaTeX writer and the ending
|
|
|
|
|
``\par`` was lacking.
|
2019-04-12 12:30:31 -05:00
|
|
|
|
- environments associated with admonitions:
|
|
|
|
|
|
|
|
|
|
- ``sphinxnote``,
|
|
|
|
|
- ``sphinxhint``,
|
|
|
|
|
- ``sphinximportant``,
|
|
|
|
|
- ``sphinxtip``,
|
|
|
|
|
- ``sphinxwarning``,
|
|
|
|
|
- ``sphinxcaution``,
|
|
|
|
|
- ``sphinxattention``,
|
|
|
|
|
- ``sphinxdanger``,
|
|
|
|
|
- ``sphinxerror``.
|
|
|
|
|
|
|
|
|
|
They may be ``\renewenvironment``
|
2016-06-18 13:25:48 -05:00
|
|
|
|
'd individually, and must then be defined with one argument (it is the heading
|
|
|
|
|
of the notice, for example ``Warning:`` for :dudir:`warning` directive, if
|
|
|
|
|
English is the document language). Their default definitions use either the
|
2019-04-12 12:30:31 -05:00
|
|
|
|
*sphinxheavybox* (for the last 5 ones) or the *sphinxlightbox*
|
2016-06-18 13:25:48 -05:00
|
|
|
|
environments, configured to use the parameters (colours, border thickness)
|
2016-11-05 10:58:01 -05:00
|
|
|
|
specific to each type, which can be set via ``'sphinxsetup'`` string.
|
2016-06-18 13:25:48 -05:00
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
2017-06-05 05:11:41 -05:00
|
|
|
|
use of public environment names, separate customizability of the
|
|
|
|
|
parameters, such as ``noteBorderColor``, ``noteborder``,
|
|
|
|
|
``warningBgColor``, ``warningBorderColor``, ``warningborder``, ...
|
2016-06-18 13:25:48 -05:00
|
|
|
|
- the :dudir:`contents` directive (with ``:local:`` option) and the
|
|
|
|
|
:dudir:`topic` directive are implemented by environment ``sphinxShadowBox``.
|
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
.. versionadded:: 1.4.2
|
|
|
|
|
former code refactored into an environment allowing page breaks.
|
2016-06-18 13:25:48 -05:00
|
|
|
|
.. versionchanged:: 1.5
|
2017-06-05 05:11:41 -05:00
|
|
|
|
options ``shadowsep``, ``shadowsize``, ``shadowrule``.
|
|
|
|
|
- the literal blocks (via ``::`` or :rst:dir:`code-block`), are
|
2016-06-22 15:30:58 -05:00
|
|
|
|
implemented using ``sphinxVerbatim`` environment which is a wrapper of
|
|
|
|
|
``Verbatim`` environment from package ``fancyvrb.sty``. It adds the handling
|
|
|
|
|
of the top caption and the wrapping of long lines, and a frame which allows
|
2016-10-27 13:24:33 -05:00
|
|
|
|
pagebreaks. Inside tables the used
|
2016-06-22 15:30:58 -05:00
|
|
|
|
environment is ``sphinxVerbatimintable`` (it does not draw a frame, but
|
|
|
|
|
allows a caption).
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
2017-06-05 05:11:41 -05:00
|
|
|
|
``Verbatim`` keeps exact same meaning as in ``fancyvrb.sty`` (also
|
|
|
|
|
under the name ``OriginalVerbatim``); ``sphinxVerbatimintable`` is used
|
|
|
|
|
inside tables.
|
2016-06-22 15:30:58 -05:00
|
|
|
|
.. versionadded:: 1.5
|
2017-06-05 05:11:41 -05:00
|
|
|
|
options ``verbatimwithframe``, ``verbatimwrapslines``,
|
|
|
|
|
``verbatimsep``, ``verbatimborder``.
|
2017-12-12 03:56:54 -06:00
|
|
|
|
.. versionadded:: 1.6.6
|
|
|
|
|
support for ``:emphasize-lines:`` option
|
|
|
|
|
.. versionadded:: 1.6.6
|
|
|
|
|
easier customizability of the formatting via exposed to user LaTeX macros
|
|
|
|
|
such as ``\sphinxVerbatimHighlightLine``.
|
2017-06-05 12:42:47 -05:00
|
|
|
|
- the bibliography uses ``sphinxthebibliography`` and the Python Module index
|
|
|
|
|
as well as the general index both use ``sphinxtheindex``; these environments
|
|
|
|
|
are wrappers of the ``thebibliography`` and respectively ``theindex``
|
|
|
|
|
environments as provided by the document class (or packages).
|
2016-10-13 07:09:43 -05:00
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
|
|
|
|
formerly, the original environments were modified by Sphinx.
|
2016-06-18 13:25:48 -05:00
|
|
|
|
|
2017-06-05 05:11:41 -05:00
|
|
|
|
Miscellany
|
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
- the section, subsection, ... headings are set using *titlesec*'s
|
|
|
|
|
``\titleformat`` command.
|
|
|
|
|
- for the ``'manual'`` docclass, the chapter headings can be customized using
|
|
|
|
|
*fncychap*'s commands ``\ChNameVar``, ``\ChNumVar``, ``\ChTitleVar``. File
|
|
|
|
|
:file:`sphinx.sty` has custom re-definitions in case of *fncychap*
|
|
|
|
|
option ``Bjarne``.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.5
|
|
|
|
|
formerly, use of *fncychap* with other styles than ``Bjarne`` was
|
|
|
|
|
dysfunctional.
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
2016-08-17 08:52:42 -05:00
|
|
|
|
.. hint::
|
|
|
|
|
|
|
|
|
|
As an experimental feature, Sphinx can use user-defined template file for
|
2017-05-11 15:50:58 -05:00
|
|
|
|
LaTeX source if you have a file named ``_templates/latex.tex_t`` in your
|
|
|
|
|
project.
|
2016-08-17 08:52:42 -05:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
2017-05-11 15:50:58 -05:00
|
|
|
|
currently all template variables are unstable and undocumented.
|
|
|
|
|
|
|
|
|
|
Additional files ``longtable.tex_t``, ``tabulary.tex_t`` and
|
|
|
|
|
``tabular.tex_t`` can be added to ``_templates/`` to configure some aspects
|
|
|
|
|
of table rendering (such as the caption position).
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
currently all template variables are unstable and undocumented.
|
2016-10-29 09:30:33 -05:00
|
|
|
|
|
|
|
|
|
.. raw:: latex
|
|
|
|
|
|
|
|
|
|
\endgroup
|