You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
786 lines
31 KiB
786 lines
31 KiB
8 months ago
|
%
|
||
|
% sphinx.sty
|
||
|
%
|
||
|
% Adapted from the old python.sty, mostly written by Fred Drake,
|
||
|
% by Georg Brandl.
|
||
|
%
|
||
|
|
||
|
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||
|
\ProvidesPackage{sphinx}[2022/06/30 v5.1.0 LaTeX package (Sphinx markup)]
|
||
|
|
||
|
% provides \ltx@ifundefined
|
||
|
% (many packages load ltxcmds: graphicx does for pdftex and lualatex but
|
||
|
% not xelatex, and anyhow kvoptions does, but it may be needed in future to
|
||
|
% use \sphinxdeprecationwarning earlier, and it needs \ltx@ifundefined)
|
||
|
\RequirePackage{ltxcmds}
|
||
|
|
||
|
%% for deprecation warnings
|
||
|
\newcommand\sphinxdeprecationwarning[4]{% #1 the deprecated macro or name,
|
||
|
% #2 = when deprecated, #3 = when removed, #4 = additional info
|
||
|
\edef\spx@tempa{\detokenize{#1}}%
|
||
|
\ltx@ifundefined{sphinx_depr_\spx@tempa}{%
|
||
|
\global\expandafter\let\csname sphinx_depr_\spx@tempa\endcsname\spx@tempa
|
||
|
\expandafter\AtEndDocument\expandafter{\expandafter\let\expandafter
|
||
|
\sphinxdeprecatedmacro\csname sphinx_depr_\spx@tempa\endcsname
|
||
|
\PackageWarningNoLine{sphinx}{^^J**** SPHINX DEPRECATION WARNING:^^J
|
||
|
\sphinxdeprecatedmacro^^J
|
||
|
\@spaces- is deprecated at Sphinx #2^^J
|
||
|
\@spaces- and removed at Sphinx #3.^^J
|
||
|
#4^^J****}}%
|
||
|
}{% warning already emitted (at end of latex log), don't repeat
|
||
|
}}
|
||
|
|
||
|
|
||
|
%% OPTION HANDLING
|
||
|
%
|
||
|
|
||
|
% We generally first handle options then load packages, but we need
|
||
|
% \definecolor from xcolor/color to handle the options.
|
||
|
|
||
|
% MEMO: xcolor \fcolorbox coloured boxes render better in some PDF viewers
|
||
|
% than with color package \fcolorbox. Since 1.6.3, Sphinx uses only its own
|
||
|
% custom variant of \fcolorbox when handling verbatim code. Currently (last
|
||
|
% checked at 5.0.0) \fcolorbox is used for admonitions (sphinxheavybox)
|
||
|
% and appears also in Pygmentize output mark-up.
|
||
|
\IfFileExists{xcolor.sty}{
|
||
|
\RequirePackage{xcolor}
|
||
|
}{
|
||
|
\RequirePackage{color}
|
||
|
}
|
||
|
% the \colorlet of xcolor (if at all loaded) is overkill for our use case
|
||
|
\newcommand{\sphinxcolorlet}[2]
|
||
|
{\expandafter\let\csname\@backslashchar color@#1\expandafter\endcsname
|
||
|
\csname\@backslashchar color@#2\endcsname }
|
||
|
|
||
|
|
||
|
% Handle options via "kvoptions" (later loaded by hyperref anyhow)
|
||
|
\RequirePackage{kvoptions}
|
||
|
\SetupKeyvalOptions{prefix=spx@opt@} % use \spx@opt@ prefix
|
||
|
|
||
|
% Sphinx legacy text layout: 1in margins on all four sides
|
||
|
\ifx\@jsc@uplatextrue\@undefined
|
||
|
\DeclareStringOption[1in]{hmargin}
|
||
|
\DeclareStringOption[1in]{vmargin}
|
||
|
\DeclareStringOption[.5in]{marginpar}
|
||
|
\else
|
||
|
% Japanese standard document classes handle \mag in a special way
|
||
|
\DeclareStringOption[\inv@mag in]{hmargin}
|
||
|
\DeclareStringOption[\inv@mag in]{vmargin}
|
||
|
\DeclareStringOption[.5\dimexpr\inv@mag in\relax]{marginpar}
|
||
|
\fi
|
||
|
|
||
|
\DeclareStringOption[0]{maxlistdepth}% \newcommand*\spx@opt@maxlistdepth{0}
|
||
|
\DeclareStringOption[-1]{numfigreset}
|
||
|
\DeclareBoolOption[false]{nonumfigreset}
|
||
|
\DeclareBoolOption[false]{mathnumfig}
|
||
|
\define@key{sphinx}{bookmarksdepth}{\AtBeginDocument{\hypersetup{bookmarksdepth=#1}}}
|
||
|
\AtBeginDocument{\define@key{sphinx}{bookmarksdepth}{\hypersetup{bookmarksdepth=#1}}}
|
||
|
% \DeclareBoolOption[false]{usespart}% not used
|
||
|
% dimensions, we declare the \dimen registers here.
|
||
|
\newdimen\sphinxverbatimsep % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0
|
||
|
\newdimen\sphinxverbatimborder
|
||
|
%
|
||
|
% \DeclareStringOption is not convenient for the handling of these dimensions
|
||
|
% because we want to assign the values to the corresponding registers. Even if
|
||
|
% we added the code to the key handler it would be too late for the initial
|
||
|
% set-up and we would need to do initial assignments explicitly. We end up
|
||
|
% using \define@key directly.
|
||
|
% verbatim
|
||
|
\sphinxverbatimsep=\fboxsep % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0
|
||
|
\define@key{sphinx}{verbatimsep}{\sphinxverbatimsep\dimexpr #1\relax}
|
||
|
\sphinxverbatimborder=\fboxrule
|
||
|
\define@key{sphinx}{verbatimborder}{\sphinxverbatimborder\dimexpr #1\relax}
|
||
|
\DeclareBoolOption[true]{verbatimwithframe}
|
||
|
\DeclareBoolOption[true]{verbatimwrapslines}
|
||
|
\DeclareBoolOption[false]{verbatimforcewraps}
|
||
|
\DeclareStringOption[3]{verbatimmaxoverfull}
|
||
|
\DeclareStringOption[100]{verbatimmaxunderfull}
|
||
|
\DeclareBoolOption[true]{verbatimhintsturnover}
|
||
|
\DeclareBoolOption[true]{inlineliteralwraps}
|
||
|
\DeclareStringOption[t]{literalblockcappos}
|
||
|
\DeclareStringOption[r]{verbatimcontinuedalign}
|
||
|
\DeclareStringOption[r]{verbatimcontinuesalign}
|
||
|
% parsed literal
|
||
|
\DeclareBoolOption[true]{parsedliteralwraps}
|
||
|
% \textvisiblespace for compatibility with fontspec+XeTeX/LuaTeX
|
||
|
\DeclareStringOption[\textcolor{red}{\textvisiblespace}]{verbatimvisiblespace}
|
||
|
\DeclareStringOption % must use braces to hide the brackets
|
||
|
[{\makebox[2\fontcharwd\font`\x][r]{\textcolor{red}{\tiny$\m@th\hookrightarrow$}}}]%
|
||
|
{verbatimcontinued}
|
||
|
% topic boxes
|
||
|
% alternative names and definitions in 5.1.0 section below
|
||
|
\newdimen\sphinxshadowsep % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0
|
||
|
\newdimen\sphinxshadowsize % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0
|
||
|
\newdimen\sphinxshadowrule
|
||
|
\sphinxshadowsep=5pt
|
||
|
\define@key{sphinx}{shadowsep}{\sphinxshadowsep\dimexpr #1\relax}%
|
||
|
\sphinxshadowsize=4pt
|
||
|
\define@key{sphinx}{shadowsize}{\sphinxshadowsize\dimexpr #1\relax}
|
||
|
\sphinxshadowrule=\fboxrule % catches current value (probably 0.4pt)
|
||
|
\define@key{sphinx}{shadowrule}{\sphinxshadowrule\dimexpr #1\relax}
|
||
|
% notices/admonitions
|
||
|
% the dimensions for notices/admonitions are kept as macros and assigned to
|
||
|
% \spx@notice@border at time of use, hence \DeclareStringOption is ok for this
|
||
|
\newdimen\spx@notice@border
|
||
|
\DeclareStringOption[0.5pt]{noteborder}
|
||
|
\DeclareStringOption[0.5pt]{hintborder}
|
||
|
\DeclareStringOption[0.5pt]{importantborder}
|
||
|
\DeclareStringOption[0.5pt]{tipborder}
|
||
|
\DeclareStringOption[1pt]{warningborder}
|
||
|
\DeclareStringOption[1pt]{cautionborder}
|
||
|
\DeclareStringOption[1pt]{attentionborder}
|
||
|
\DeclareStringOption[1pt]{dangerborder}
|
||
|
\DeclareStringOption[1pt]{errorborder}
|
||
|
% footnotes
|
||
|
\DeclareStringOption[\mbox{ }]{AtStartFootnote}
|
||
|
% we need a public macro name for direct use in latex file
|
||
|
\newcommand*{\sphinxAtStartFootnote}{\spx@opt@AtStartFootnote}
|
||
|
% no such need for this one, as it is used inside other macros
|
||
|
\DeclareStringOption[\leavevmode\unskip]{BeforeFootnote}
|
||
|
% some font styling.
|
||
|
\DeclareStringOption[\sffamily\bfseries]{HeaderFamily}
|
||
|
% colours
|
||
|
% same problems as for dimensions: we want the key handler to use \definecolor.
|
||
|
% first, some colours with no prefix, for backwards compatibility
|
||
|
\newcommand*{\sphinxDeclareColorOption}[2]{%
|
||
|
\definecolor{#1}#2%
|
||
|
\define@key{sphinx}{#1}{\definecolor{#1}##1}%
|
||
|
}%
|
||
|
\sphinxDeclareColorOption{TitleColor}{{rgb}{0.126,0.263,0.361}}
|
||
|
\sphinxDeclareColorOption{InnerLinkColor}{{rgb}{0.208,0.374,0.486}}
|
||
|
\sphinxDeclareColorOption{OuterLinkColor}{{rgb}{0.216,0.439,0.388}}
|
||
|
\sphinxDeclareColorOption{VerbatimColor}{{rgb}{1,1,1}}
|
||
|
\sphinxDeclareColorOption{VerbatimBorderColor}{{rgb}{0,0,0}}
|
||
|
% now the colours defined with "sphinx" prefix in their names
|
||
|
\newcommand*{\sphinxDeclareSphinxColorOption}[2]{%
|
||
|
% set the initial default
|
||
|
\definecolor{sphinx#1}#2%
|
||
|
% set the key handler. The "value" ##1 must be acceptable by \definecolor.
|
||
|
\define@key{sphinx}{#1}{\definecolor{sphinx#1}##1}%
|
||
|
}%
|
||
|
% Default color chosen to be as in minted.sty LaTeX package!
|
||
|
\sphinxDeclareSphinxColorOption{VerbatimHighlightColor}{{rgb}{0.878,1,1}}
|
||
|
% admonition boxes, "light" style
|
||
|
\sphinxDeclareSphinxColorOption{noteBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{hintBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{importantBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{tipBorderColor}{{rgb}{0,0,0}}
|
||
|
% admonition boxes, "heavy" style
|
||
|
\sphinxDeclareSphinxColorOption{warningBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{cautionBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{attentionBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{dangerBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{errorBorderColor}{{rgb}{0,0,0}}
|
||
|
\sphinxDeclareSphinxColorOption{warningBgColor}{{rgb}{1,1,1}}
|
||
|
\sphinxDeclareSphinxColorOption{cautionBgColor}{{rgb}{1,1,1}}
|
||
|
\sphinxDeclareSphinxColorOption{attentionBgColor}{{rgb}{1,1,1}}
|
||
|
\sphinxDeclareSphinxColorOption{dangerBgColor}{{rgb}{1,1,1}}
|
||
|
\sphinxDeclareSphinxColorOption{errorBgColor}{{rgb}{1,1,1}}
|
||
|
%%%%%%%%
|
||
|
%
|
||
|
% Additions at 5.1.0
|
||
|
%
|
||
|
% In future, an alternative user interface will perhaps be provided via
|
||
|
% CSS-like input in a configuration variable latex_css, and Sphinx
|
||
|
% will then parse it into the \sphinxsetup options described it.
|
||
|
%
|
||
|
% In the meantime we adopt already some CSS-like names. However,
|
||
|
% attention to not use these options as genuine CSS properties, only
|
||
|
% very limited syntax is supported.
|
||
|
%
|
||
|
\def\spxstring@none{none}
|
||
|
\def\spxstring@clone{clone}
|
||
|
% Future: should below all the macros holding dimensions be defined via some
|
||
|
% \edef and \dimexpr rather?
|
||
|
%
|
||
|
% Deliberately the code avoids creating (except by \let) new \dimen variables
|
||
|
% besides the legacy ones already defined.
|
||
|
%
|
||
|
% code-blocks
|
||
|
\let\spxdimen@pre@border\sphinxverbatimborder
|
||
|
\define@key{sphinx}{pre_border-top-width}{\def\spx@pre@border@top{#1}}
|
||
|
\define@key{sphinx}{pre_border-right-width}{\def\spx@pre@border@right{#1}}
|
||
|
\define@key{sphinx}{pre_border-bottom-width}{\def\spx@pre@border@bottom{#1}}
|
||
|
\define@key{sphinx}{pre_border-left-width}{\def\spx@pre@border@left{#1}}
|
||
|
% currently accepts only one dimension specification
|
||
|
\define@key{sphinx}{pre_border-width}{%
|
||
|
\spxdimen@pre@border\dimexpr #1\relax
|
||
|
\def\spx@pre@border@top {\spxdimen@pre@border}%
|
||
|
\let\spx@pre@border@right \spx@pre@border@top
|
||
|
\let\spx@pre@border@bottom\spx@pre@border@top
|
||
|
\let\spx@pre@border@left \spx@pre@border@top
|
||
|
}
|
||
|
\def\spx@pre@border@top {\spxdimen@pre@border}%
|
||
|
\let\spx@pre@border@right \spx@pre@border@top
|
||
|
\let\spx@pre@border@bottom\spx@pre@border@top
|
||
|
\let\spx@pre@border@left \spx@pre@border@top
|
||
|
\expandafter\let\expandafter\KV@sphinx@verbatimborder
|
||
|
\csname KV@sphinx@pre_border-width\endcsname
|
||
|
\newif\ifspx@pre@border@open % defaults to false (at least for 5.x series)
|
||
|
\define@key{sphinx}{pre_box-decoration-break}%
|
||
|
{\begingroup\edef\spx@tempa{#1}\expandafter\endgroup
|
||
|
\ifx\spx@tempa\spxstring@clone
|
||
|
\spx@pre@border@openfalse
|
||
|
\else\spx@pre@border@opentrue\fi}
|
||
|
%
|
||
|
% MEMO: \sphinxverbatimsep not used anywhere anymore in the code, to be removed
|
||
|
\define@key{sphinx}{pre_padding-top}{\def\spx@pre@padding@top{#1}}
|
||
|
\define@key{sphinx}{pre_padding-right}{\def\spx@pre@padding@right{#1}}
|
||
|
\define@key{sphinx}{pre_padding-bottom}{\def\spx@pre@padding@bottom{#1}}
|
||
|
\define@key{sphinx}{pre_padding-left}{\def\spx@pre@padding@left{#1}}
|
||
|
\define@key{sphinx}{pre_padding}{%
|
||
|
\def\spx@pre@padding@top {#1}% use some pre \dimexpr expansion?
|
||
|
\let\spx@pre@padding@right \spx@pre@padding@top
|
||
|
\let\spx@pre@padding@bottom\spx@pre@padding@top
|
||
|
\let\spx@pre@padding@left \spx@pre@padding@top
|
||
|
}
|
||
|
\edef\spx@pre@padding@top {\number\fboxsep sp}% \sphinxverbatimsep to be removed
|
||
|
\let\spx@pre@padding@right \spx@pre@padding@top
|
||
|
\let\spx@pre@padding@bottom\spx@pre@padding@top
|
||
|
\let\spx@pre@padding@left \spx@pre@padding@top
|
||
|
\expandafter\let\expandafter\KV@sphinx@verbatimsep
|
||
|
\csname KV@sphinx@pre_padding\endcsname
|
||
|
%
|
||
|
% We do not define a new \dimen (in 5.x pre-5.1.0 dev branch there
|
||
|
% was a \sphinxverbatimradius when rounded boxes were first introduced,
|
||
|
% but we removed it).
|
||
|
\define@key{sphinx}{pre_border-top-left-radius}{\def\spx@pre@radius@topleft{#1}}
|
||
|
\define@key{sphinx}{pre_border-top-right-radius}{\edef\spx@pre@radius@topright{#1}}
|
||
|
\define@key{sphinx}{pre_border-bottom-right-radius}{\def\spx@pre@radius@bottomright{#1}}
|
||
|
\define@key{sphinx}{pre_border-bottom-left-radius}{\def\spx@pre@radius@bottomleft{#1}}
|
||
|
\define@key{sphinx}{pre_border-radius}{%
|
||
|
\def\spx@pre@radius@topleft {#1}%
|
||
|
\let\spx@pre@radius@topright \spx@pre@radius@topleft
|
||
|
\let\spx@pre@radius@bottomright\spx@pre@radius@topleft
|
||
|
\let\spx@pre@radius@bottomleft \spx@pre@radius@topleft
|
||
|
}
|
||
|
% MEMO: keep in mind in using these macros in code elsewhere that they can
|
||
|
% thus be dimen registers or simply dimensional specs such as 3pt
|
||
|
\let\spx@pre@radius@topleft \z@
|
||
|
\let\spx@pre@radius@topright \z@
|
||
|
\let\spx@pre@radius@bottomright\z@
|
||
|
\let\spx@pre@radius@bottomleft \z@
|
||
|
\AtBeginDocument{\if1\ifdim\spx@pre@radius@topleft>\z@0\fi
|
||
|
\ifdim\spx@pre@radius@topright>\z@0\fi
|
||
|
\ifdim\spx@pre@radius@bottomright>\z@0\fi
|
||
|
\ifdim\spx@pre@radius@bottomleft>\z@0\fi
|
||
|
1\else\spx@RequirePackage@PictIIe\fi}
|
||
|
%
|
||
|
\newif\ifspx@pre@withshadow
|
||
|
\newif\ifspx@pre@insetshadow
|
||
|
% Attention only "none" or "<xoffset> <yoffset> [optional inset]", no color
|
||
|
\define@key{sphinx}{pre_box-shadow}{\spx@pre@box@shadow@setter #1 {} {} \@nnil}%
|
||
|
% TODO add parsing to fetch color... but this requires a TeX layer to convert
|
||
|
% color spec in CSS format to color/xcolor format
|
||
|
\def\spx@pre@box@shadow@setter #1 #2 #3 #4\@nnil{%
|
||
|
\begingroup\edef\spx@tempa{#1}\expandafter\endgroup
|
||
|
\ifx\spx@tempa\spxstring@none
|
||
|
\spx@pre@withshadowfalse
|
||
|
\else
|
||
|
\spx@pre@withshadowtrue
|
||
|
\edef\spx@pre@shadow@xoffset{\number\dimexpr#1\relax sp}%
|
||
|
\edef\spx@pre@shadow@yoffset{\number\dimexpr#2+\z@\relax sp}%
|
||
|
\if\relax\detokenize{#3}\relax
|
||
|
\spx@pre@insetshadowfalse
|
||
|
\else
|
||
|
\spx@pre@insetshadowtrue
|
||
|
\fi
|
||
|
\fi
|
||
|
}%
|
||
|
\spx@pre@box@shadow@setter none {} {} \@nnil
|
||
|
%
|
||
|
\newif\ifspx@pre@withbordercolor
|
||
|
\define@key{sphinx}{pre_border-TeXcolor}{%
|
||
|
\spx@pre@withbordercolortrue
|
||
|
\definecolor{VerbatimBorderColor}#1% legacy colour name with no sphinx prefix
|
||
|
}
|
||
|
\expandafter\let\expandafter\KV@sphinx@VerbatimBorderColor
|
||
|
\csname KV@sphinx@pre_border-TeXcolor\endcsname
|
||
|
\newif\ifspx@pre@withbackgroundcolor
|
||
|
\define@key{sphinx}{pre_background-TeXcolor}{%
|
||
|
\spx@pre@withbackgroundcolortrue
|
||
|
\definecolor{VerbatimColor}#1% legacy colour name with no sphinx prefix
|
||
|
}
|
||
|
\expandafter\let\expandafter\KV@sphinx@VerbatimColor
|
||
|
\csname KV@sphinx@pre_background-TeXcolor\endcsname
|
||
|
\newif\ifspx@pre@withshadowcolor
|
||
|
\define@key{sphinx}{pre_box-shadow-TeXcolor}{%
|
||
|
\spx@pre@withshadowcolortrue
|
||
|
\definecolor{sphinxVerbatimShadowColor}#1%
|
||
|
}
|
||
|
\definecolor{sphinxVerbatimShadowColor}{rgb}{0,0,0}
|
||
|
% topics
|
||
|
\let\spxdimen@topic@border\sphinxshadowrule
|
||
|
\define@key{sphinx}{div.topic_border-top-width}{\def\spx@topic@border@top{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-right-width}{\def\spx@topic@border@right{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-bottom-width}{\def\spx@topic@border@bottom{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-left-width}{\def\spx@topic@border@left{#1}}
|
||
|
% attention currently accepts only one dimension specification
|
||
|
\define@key{sphinx}{div.topic_border-width}{%
|
||
|
\spxdimen@topic@border\dimexpr #1\relax
|
||
|
\def\spx@topic@border@top {\spxdimen@topic@border}%
|
||
|
\let\spx@topic@border@right \spx@topic@border@top
|
||
|
\let\spx@topic@border@bottom\spx@topic@border@top
|
||
|
\let\spx@topic@border@left \spx@topic@border@top
|
||
|
}
|
||
|
\let\spx@topic@border@top \spxdimen@topic@border
|
||
|
\let\spx@topic@border@right \spx@topic@border@top
|
||
|
\let\spx@topic@border@bottom\spx@topic@border@top
|
||
|
\let\spx@topic@border@left \spx@topic@border@top
|
||
|
\expandafter\let\expandafter\KV@sphinx@shadowrule
|
||
|
\csname KV@sphinx@topic_border-width\endcsname
|
||
|
\newif\ifspx@topic@border@open % defaults to false (legacy)
|
||
|
\define@key{sphinx}{div.topic_box-decoration-break}%
|
||
|
{\begingroup\edef\spx@tempa{#1}\expandafter\endgroup
|
||
|
\ifx\spx@tempa\spxstring@clone
|
||
|
\spx@topic@border@openfalse
|
||
|
\else\spx@topic@border@opentrue\fi}%
|
||
|
%
|
||
|
% MEMO: \sphinxshadowsep not used anywhere anymore in code base and to be removed
|
||
|
\define@key{sphinx}{topic_padding-top}{\def\spx@topic@padding@top{#1}}
|
||
|
\define@key{sphinx}{topic_padding-right}{\def\spx@topic@padding@right{#1}}
|
||
|
\define@key{sphinx}{topic_padding-bottom}{\def\spx@topic@padding@bottom{#1}}
|
||
|
\define@key{sphinx}{topic_padding-left}{\def\spx@topic@padding@left{#1}}
|
||
|
\define@key{sphinx}{topic_padding}{%
|
||
|
\def\spx@topic@padding@top {#1}%
|
||
|
\let\spx@topic@padding@right \spx@topic@padding@top
|
||
|
\let\spx@topic@padding@bottom\spx@topic@padding@top
|
||
|
\let\spx@topic@padding@left \spx@topic@padding@top
|
||
|
}
|
||
|
\def\spx@topic@padding@top {5pt}% no usage anymore of \sphinxshadowsep dimen register
|
||
|
\let\spx@topic@padding@right \spx@topic@padding@top
|
||
|
\let\spx@topic@padding@bottom\spx@topic@padding@top
|
||
|
\let\spx@topic@padding@left \spx@topic@padding@top
|
||
|
\expandafter\let\expandafter\KV@sphinx@shadowsep
|
||
|
\csname KV@sphinx@topic_padding\endcsname
|
||
|
%
|
||
|
\define@key{sphinx}{div.topic_border-top-left-radius}{\def\spx@topic@radius@topleft{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-top-right-radius}{\def\spx@topic@radius@topright{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-bottom-right-radius}{\def\spx@topic@radius@bottomright{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-bottom-left-radius}{\def\spx@topic@radius@bottomleft{#1}}
|
||
|
\define@key{sphinx}{div.topic_border-radius}{%
|
||
|
\def\spx@topic@radius@topleft {#1}%
|
||
|
\let\spx@topic@radius@topright \spx@topic@radius@topleft
|
||
|
\let\spx@topic@radius@bottomright\spx@topic@radius@topleft
|
||
|
\let\spx@topic@radius@bottomleft \spx@topic@radius@topleft
|
||
|
}
|
||
|
\let\spx@topic@radius@topleft \z@
|
||
|
\let\spx@topic@radius@topright \z@
|
||
|
\let\spx@topic@radius@bottomright\z@
|
||
|
\let\spx@topic@radius@bottomleft \z@
|
||
|
\AtBeginDocument{\if1\ifdim\spx@topic@radius@topleft>\z@0\fi
|
||
|
\ifdim\spx@topic@radius@topright>\z@0\fi
|
||
|
\ifdim\spx@topic@radius@bottomright>\z@0\fi
|
||
|
\ifdim\spx@topic@radius@bottomleft>\z@0\fi
|
||
|
1\else\spx@RequirePackage@PictIIe\fi}
|
||
|
%
|
||
|
\newif\ifspx@topic@withshadow
|
||
|
\newif\ifspx@topic@insetshadow
|
||
|
% Attention only "none" or "<xoffset> <yoffset> [optional inset]", no color
|
||
|
\define@key{sphinx}{div.topic_box-shadow}{\spx@topic@box@shadow@setter #1 {} {} \@nnil}%
|
||
|
\def\spx@topic@box@shadow@setter #1 #2 #3 #4\@nnil{%
|
||
|
\begingroup\edef\spx@tempa{#1}\expandafter\endgroup
|
||
|
\ifx\spx@tempa\spxstring@none
|
||
|
\spx@topic@withshadowfalse
|
||
|
\else
|
||
|
\spx@topic@withshadowtrue
|
||
|
\edef\spx@topic@shadow@xoffset{\number\dimexpr#1\relax sp}%
|
||
|
\edef\spx@topic@shadow@yoffset{\number\dimexpr#2+\z@\relax sp}%
|
||
|
\if\relax\detokenize{#3}\relax
|
||
|
\spx@topic@insetshadowfalse
|
||
|
\else
|
||
|
\spx@topic@insetshadowtrue
|
||
|
\fi
|
||
|
\fi
|
||
|
}%
|
||
|
\spx@topic@box@shadow@setter 4pt 4pt {} \@nnil
|
||
|
% Suport for legacy shadowsize, the \sphinxshadowsize \dimen register
|
||
|
% is not used anymore and should not even be allocated in future
|
||
|
\define@key{sphinx}{shadowsize}{%
|
||
|
\edef\spx@topic@shadow@xoffset{\number\dimexpr#1\relax sp}%
|
||
|
\let\spx@topic@shadow@yoffset\spx@topic@shadow@xoffset
|
||
|
\ifdim\spx@topic@shadow@xoffset=\z@
|
||
|
\spx@topic@box@withshadowtrue
|
||
|
\else
|
||
|
\spx@topic@box@withshadowfalse
|
||
|
\spx@topic@box@shadow@insetfalse
|
||
|
\fi
|
||
|
}%
|
||
|
\definecolor{sphinxTopicBorderColor}{rgb}{0,0,0}
|
||
|
\definecolor{sphinxTopicBackgroundColor}{rgb}{1,1,1}
|
||
|
\definecolor{sphinxTopicShadowColor}{rgb}{0,0,0}
|
||
|
\newif\ifspx@topic@withbordercolor
|
||
|
\define@key{sphinx}{div.topic_border-TeXcolor}{%
|
||
|
\spx@topic@withbordercolortrue
|
||
|
\definecolor{sphinxTopicBorderColor}#1%
|
||
|
}
|
||
|
\newif\ifspx@topic@withbackgroundcolor
|
||
|
\define@key{sphinx}{div.topic_background-TeXcolor}{%
|
||
|
\spx@topic@withbackgroundcolortrue
|
||
|
\definecolor{sphinxTopicBackgroundColor}#1%
|
||
|
}
|
||
|
\newif\ifspx@topic@withshadowcolor
|
||
|
\define@key{sphinx}{div.topic_box-shadow-TeXcolor}{%
|
||
|
\spx@topic@withshadowcolortrue
|
||
|
\definecolor{sphinxTopicShadowColor}#1%
|
||
|
}
|
||
|
% warning, caution, attention, danger, error
|
||
|
\def\spx@tempa#1{%
|
||
|
\expandafter\spx@tempb
|
||
|
% MEMO: the diverging naming of first one is conditioned at this time by the fact
|
||
|
% that sphinxnotice environment must work both for these admonitions and the
|
||
|
% note, tip etc... ones
|
||
|
\csname spx@opt@#1border\expandafter\endcsname
|
||
|
\csname spx@#1@border@top\expandafter\endcsname
|
||
|
\csname spx@#1@border@right\expandafter\endcsname
|
||
|
\csname spx@#1@border@bottom\expandafter\endcsname
|
||
|
\csname spx@#1@border@left\expandafter\endcsname
|
||
|
\csname ifspx@#1@border@open\expandafter\endcsname
|
||
|
\csname spx@#1@border@opentrue\expandafter\endcsname
|
||
|
\csname spx@#1@border@openfalse\endcsname
|
||
|
{#1}%
|
||
|
}%
|
||
|
\def\spx@tempb #1#2#3#4#5#6#7#8#9{%
|
||
|
\define@key{sphinx}{div.#9_border-top-width}{\def#2{##1}}%
|
||
|
\define@key{sphinx}{div.#9_border-right-width}{\def#3{##1}}%
|
||
|
\define@key{sphinx}{div.#9_border-bottom-width}{\def#4{##1}}%
|
||
|
\define@key{sphinx}{div.#9_border-left-width}{\def#5{##1}}%
|
||
|
\define@key{sphinx}{div.#9_border-width}{\def#1{##1}\def#2{#1}\let#3#2\let#4#2\let#5#2}%
|
||
|
\def#1{1pt}\let#2#1\let#3#2\let#4#2\let#5#2%
|
||
|
\newif#6%
|
||
|
\define@key{sphinx}{div.#9_box-decoration-break}%
|
||
|
{\begingroup\edef\spx@tempa{##1}\expandafter\endgroup
|
||
|
\ifx\spx@tempa\spxstring@clone#8\else#7\fi}%
|
||
|
\expandafter\let\csname KV@sphinx@#9border\expandafter\endcsname
|
||
|
\csname KV@sphinx@div.#9_border-width\endcsname
|
||
|
}
|
||
|
\spx@tempa{warning}
|
||
|
\spx@tempa{caution}
|
||
|
\spx@tempa{attention}
|
||
|
\spx@tempa{danger}
|
||
|
\spx@tempa{error}
|
||
|
|
||
|
\def\spx@tempa#1{%
|
||
|
\expandafter\spx@tempb
|
||
|
\csname spx@#1@padding\expandafter\endcsname
|
||
|
\csname spx@#1@padding@top\expandafter\endcsname
|
||
|
\csname spx@#1@padding@right\expandafter\endcsname
|
||
|
\csname spx@#1@padding@bottom\expandafter\endcsname
|
||
|
\csname spx@#1@padding@left\expandafter\endcsname
|
||
|
% MEMO: this is to keep same behaviour as prior to 5.1.0 for which
|
||
|
% no key to set padding adjusted and border+padding was kept constant
|
||
|
\csname spx@opt@#1border\endcsname
|
||
|
{#1}%
|
||
|
}%
|
||
|
\def\spx@tempb #1#2#3#4#5#6#7{%
|
||
|
\define@key{sphinx}{div.#7_padding-top}{\def#2{##1}}%
|
||
|
\define@key{sphinx}{div.#7_padding-right}{\def#3{##1}}%
|
||
|
\define@key{sphinx}{div.#7_padding-bottom}{\def#4{##1}}%
|
||
|
\define@key{sphinx}{div.#7_padding-left}{\def#5{##1}}%
|
||
|
\define@key{sphinx}{div.#7_padding}{\def#1{##1}\def#2{#1}\let#3#2\let#4#2\let#5#2}%
|
||
|
% MEMO: prior to 5.1.0 padding was not separately customizable
|
||
|
% This keeps exactly the strange behaviour as prior to 5.1.0
|
||
|
% which used to be hard-coded in the sphinxheavybox environment
|
||
|
\def#1{\dimexpr.6\baselineskip-#6\relax}%
|
||
|
\let#2#1\let#3#2\let#4#2\let#5#2%
|
||
|
}
|
||
|
\spx@tempa{warning}
|
||
|
\spx@tempa{caution}
|
||
|
\spx@tempa{attention}
|
||
|
\spx@tempa{danger}
|
||
|
\spx@tempa{error}
|
||
|
|
||
|
\def\spx@tempa#1{%
|
||
|
\expandafter\spx@tempb
|
||
|
\csname spx@#1@radius@topleft\expandafter\endcsname
|
||
|
\csname spx@#1@radius@topright\expandafter\endcsname
|
||
|
\csname spx@#1@radius@bottomright\expandafter\endcsname
|
||
|
\csname spx@#1@radius@bottomleft\endcsname
|
||
|
{#1}%
|
||
|
}%
|
||
|
\def\spx@tempb #1#2#3#4#5{%
|
||
|
\define@key{sphinx}{div.#5_border-top-left-radius}{\def#1{##1}}%
|
||
|
\define@key{sphinx}{div.#5_border-top-right-radius}{\def#2{##1}}%
|
||
|
\define@key{sphinx}{div.#5_border-bottom-right-radius}{\def#3{##1}}%
|
||
|
\define@key{sphinx}{div.#5_border-bottom-left-radius}{\def#4{##1}}%
|
||
|
\define@key{sphinx}{div.#5_border-radius}{\def#1{##1}\let#2#1\let#3#1\let#4#1}%
|
||
|
\let#1\z@\let#2#1\let#3#2\let#4#2%
|
||
|
\AtBeginDocument{\if1\ifdim#1>\z@0\fi
|
||
|
\ifdim#2>\z@0\fi
|
||
|
\ifdim#3>\z@0\fi
|
||
|
\ifdim#4>\z@0\fi
|
||
|
1\else\spx@RequirePackage@PictIIe\fi}%
|
||
|
}
|
||
|
\spx@tempa{warning}
|
||
|
\spx@tempa{caution}
|
||
|
\spx@tempa{attention}
|
||
|
\spx@tempa{danger}
|
||
|
\spx@tempa{error}
|
||
|
|
||
|
\def\spx@tempa#1{%
|
||
|
\expandafter\spx@tempb
|
||
|
\csname ifspx@#1@withshadow\expandafter\endcsname
|
||
|
\csname ifspx@#1@insetshadow\expandafter\endcsname
|
||
|
\csname ifspx@#1@withshadowcolor\expandafter\endcsname
|
||
|
\csname ifspx@#1@withbordercolor\expandafter\endcsname
|
||
|
\csname ifspx@#1@withbackgroundcolor\endcsname
|
||
|
}%
|
||
|
\def\spx@tempb#1#2#3#4#5{\newif#1\newif#2\newif#3\newif#4\newif#5}%
|
||
|
\spx@tempa{warning}
|
||
|
\spx@tempa{caution}
|
||
|
\spx@tempa{attention}
|
||
|
\spx@tempa{danger}
|
||
|
\spx@tempa{error}
|
||
|
|
||
|
\def\spx@tempa#1{%
|
||
|
\expandafter\spx@tempb
|
||
|
\csname spx@#1@withshadowtrue\expandafter\endcsname
|
||
|
\csname spx@#1@withshadowfalse\expandafter\endcsname
|
||
|
\csname spx@#1@insetshadowtrue\expandafter\endcsname
|
||
|
\csname spx@#1@insetshadowfalse\expandafter\endcsname
|
||
|
\csname spx@#1@box@shadow@setter\expandafter\endcsname
|
||
|
\csname spx@#1@box@shadow@xoffset\expandafter\endcsname
|
||
|
\csname spx@#1@box@shadow@yoffset\endcsname
|
||
|
{#1}%
|
||
|
}%
|
||
|
\def\spx@tempb#1#2#3#4#5#6#7#8{%
|
||
|
\define@key{sphinx}{div.#8_box-shadow}{#5##1 {} {} \@nnil}%
|
||
|
\def#5##1 ##2 ##3 ##4\@nnil{%
|
||
|
\begingroup\edef\spx@tempa{##1}\expandafter\endgroup
|
||
|
\ifx\spx@tempa\spxstring@none
|
||
|
#2%
|
||
|
\else #1\edef#6{\number\dimexpr##1\relax sp}%
|
||
|
\edef#7{\number\dimexpr##2+\z@\relax sp}%
|
||
|
\if\relax\detokenize{##3}\relax#4\else#3\fi
|
||
|
\fi
|
||
|
}#5none {} {} \@nnil
|
||
|
}
|
||
|
\spx@tempa{warning}
|
||
|
\spx@tempa{caution}
|
||
|
\spx@tempa{attention}
|
||
|
\spx@tempa{danger}
|
||
|
\spx@tempa{error}
|
||
|
|
||
|
\def\spx@tempa#1{%
|
||
|
\expandafter\spx@tempb
|
||
|
\csname spx@#1@withbordercolortrue\expandafter\endcsname
|
||
|
\csname spx@#1@withbackgroundcolortrue\expandafter\endcsname
|
||
|
\csname spx@#1@withshadowcolortrue\endcsname
|
||
|
{#1}%
|
||
|
}
|
||
|
\def\spx@tempb#1#2#3#4{%
|
||
|
\definecolor{sphinx#4BorderColor}{rgb}{0,0,0}%
|
||
|
\definecolor{sphinx#4BgColor}{rgb}{1,1,1}%
|
||
|
\definecolor{sphinx#4ShadowColor}{rgb}{0,0,0}%
|
||
|
\define@key{sphinx}{div.#4_border-TeXcolor}{#1\definecolor{sphinx#4BorderColor}##1}%
|
||
|
\define@key{sphinx}{div.#4_background-TeXcolor}{#2\definecolor{sphinx#4BgColor}##1}%
|
||
|
\define@key{sphinx}{div.#4_box-shadow-TeXcolor}{#3\definecolor{sphinx#4ShadowColor}##1}%
|
||
|
\expandafter\let\csname KV@sphinx@#4BorderColor\expandafter\endcsname
|
||
|
\csname KV@sphinx@div.#4_border-TeXcolor\endcsname
|
||
|
\expandafter\let\csname KV@sphinx@#4BgColor\expandafter\endcsname
|
||
|
\csname KV@sphinx@div.#4_background-TeXcolor\endcsname
|
||
|
}
|
||
|
\spx@tempa{warning}
|
||
|
\spx@tempa{caution}
|
||
|
\spx@tempa{attention}
|
||
|
\spx@tempa{danger}
|
||
|
\spx@tempa{error}
|
||
|
|
||
|
|
||
|
\DeclareDefaultOption{\@unknownoptionerror}
|
||
|
\ProcessKeyvalOptions*
|
||
|
% don't allow use of maxlistdepth via \sphinxsetup.
|
||
|
\DisableKeyvalOption{sphinx}{maxlistdepth}
|
||
|
\DisableKeyvalOption{sphinx}{numfigreset}
|
||
|
\DisableKeyvalOption{sphinx}{nonumfigreset}
|
||
|
\DisableKeyvalOption{sphinx}{mathnumfig}
|
||
|
% FIXME: this is unrelated to an option, move this elsewhere
|
||
|
% To allow hyphenation of first word in narrow contexts; no option,
|
||
|
% customization to be done via 'preamble' key
|
||
|
\newcommand*\sphinxAtStartPar{\leavevmode\nobreak\hskip\z@skip}
|
||
|
% No need for the \hspace{0pt} trick (\hskip\z@skip) with luatex
|
||
|
\ifdefined\directlua\let\sphinxAtStartPar\@empty\fi
|
||
|
% user interface: options can be changed midway in a document!
|
||
|
\newcommand\sphinxsetup[1]{\setkeys{sphinx}{#1}}
|
||
|
|
||
|
|
||
|
%% MISCELLANEOUS CONTEXT
|
||
|
%
|
||
|
% flag to be set in a framed environment
|
||
|
% (defined here as currently needed by three sphinxlatex....sty files and
|
||
|
% even if not needed if such files are replaced, the definition does no harm)
|
||
|
\newif\ifspx@inframed
|
||
|
%
|
||
|
% \spx@ifcaptionpackage (defined at begin document)
|
||
|
% is needed currently in macros from:
|
||
|
% sphinxlatexliterals.sty (sphinxVerbatim)
|
||
|
% sphinxlatextables.sty (for some macros used in the table templates)
|
||
|
%
|
||
|
% \sphinxcaption is mark-up injected by the tabular and tabulary templates
|
||
|
% it is defined in sphinxlatextables.sty
|
||
|
%
|
||
|
% store the original \caption macro for usage with figures inside longtable
|
||
|
% and tabulary cells. Make sure we get the final \caption in presence of
|
||
|
% caption package, whether the latter was loaded before or after sphinx.
|
||
|
\AtBeginDocument{%
|
||
|
\let\spx@originalcaption\caption
|
||
|
\@ifpackageloaded{caption}
|
||
|
{\let\spx@ifcaptionpackage\@firstoftwo
|
||
|
\caption@AtBeginDocument*{\let\spx@originalcaption\caption}%
|
||
|
% in presence of caption package, drop our own \sphinxcaption whose aim was to
|
||
|
% ensure same width of caption to all kinds of tables (tabular(y), longtable),
|
||
|
% because caption package has its own width (or margin) option
|
||
|
\def\sphinxcaption{\caption}%
|
||
|
}%
|
||
|
{\let\spx@ifcaptionpackage\@secondoftwo}%
|
||
|
}
|
||
|
|
||
|
%% PASS OPTIONS
|
||
|
%
|
||
|
% pass options to hyperref; it must not have been loaded already
|
||
|
\input{sphinxoptionshyperref.sty}
|
||
|
% pass options to geometry; it must not have been loaded already
|
||
|
\input{sphinxoptionsgeometry.sty}
|
||
|
|
||
|
|
||
|
%% COLOR (general)
|
||
|
%
|
||
|
% FIXME: these two should be deprecated
|
||
|
%
|
||
|
% FIXME: \normalcolor should be used and \py@NormalColor never defined
|
||
|
\def\py@NormalColor{\color{black}}
|
||
|
% FIXME: \color{TitleColor} should be used directly and \py@TitleColor
|
||
|
% should never get defined.
|
||
|
\def\py@TitleColor{\color{TitleColor}}
|
||
|
|
||
|
|
||
|
%% PACKAGES
|
||
|
%
|
||
|
% as will be indicated below, secondary style files load some more packages
|
||
|
%
|
||
|
% For \text macro (sphinx.util.texescape)
|
||
|
% also for usage of \firstchoice@true(false) in sphinxlatexgraphics.sty
|
||
|
\RequirePackage{amstext}
|
||
|
% It was passed "warn" option from latex template in case it is already loaded
|
||
|
% via some other package before \usepackage{sphinx} in preamble
|
||
|
\RequirePackage{textcomp}
|
||
|
% For the H specifier. Do not \restylefloat{figure}, it breaks Sphinx code
|
||
|
% for allowing figures in tables.
|
||
|
\RequirePackage{float}
|
||
|
% For floating figures in the text. Better to load after float.
|
||
|
\RequirePackage{wrapfig}
|
||
|
% Provides \captionof, used once by latex writer (\captionof{figure})
|
||
|
\RequirePackage{capt-of}
|
||
|
% Support hlist directive
|
||
|
\RequirePackage{multicol}
|
||
|
|
||
|
|
||
|
%% GRAPHICS
|
||
|
%
|
||
|
% It will always be needed, so let's load it here
|
||
|
\RequirePackage{graphicx}
|
||
|
\input{sphinxlatexgraphics.sty}
|
||
|
|
||
|
|
||
|
%% FRAMED ENVIRONMENTS
|
||
|
%
|
||
|
\RequirePackage{sphinxpackageboxes}
|
||
|
% This macro is possibly executed at begin document if the check
|
||
|
% whether radii setting options have been used turns out positive
|
||
|
\def\spx@RequirePackage@PictIIe{%
|
||
|
\IfFileExists{pict2e.sty}
|
||
|
{\RequirePackage{pict2e}}
|
||
|
{\PackageWarningNoLine{sphinx}{%
|
||
|
The package pict2e is required for rounded boxes.\MessageBreak
|
||
|
It does not seem to be available on your system.\MessageBreak
|
||
|
Options for setting radii will thus be ignored}%
|
||
|
\AtEndDocument{\PackageWarningNoLine{sphinx}{%
|
||
|
I issued a warning which may have gotten lost in the\MessageBreak
|
||
|
gigantic console output: pict2e.sty was not found,\MessageBreak
|
||
|
and radii setting options have been ignored}}%
|
||
|
\def\spx@boxes@fcolorbox@rounded{\spx@boxes@fcolorbox}%
|
||
|
}%
|
||
|
}%
|
||
|
% This at begin document will be executed after \spx@RequirePackage@PictIIe
|
||
|
\AtBeginDocument{%
|
||
|
\@ifpackageloaded{pict2e}{\let\spx@ifpackageloaded@pictiie\@firstoftwo}%
|
||
|
{\let\spx@ifpackageloaded@pictiie\@secondoftwo}%
|
||
|
}%
|
||
|
\input{sphinxlatexadmonitions.sty}
|
||
|
\input{sphinxlatexliterals.sty}
|
||
|
\input{sphinxlatexshadowbox.sty}
|
||
|
|
||
|
|
||
|
%% CONTAINERS
|
||
|
%
|
||
|
\input{sphinxlatexcontainers.sty}
|
||
|
|
||
|
|
||
|
%% PYGMENTS
|
||
|
% stylesheet for highlighting with pygments
|
||
|
\RequirePackage{sphinxhighlight}
|
||
|
|
||
|
|
||
|
%% TABLES
|
||
|
%
|
||
|
\input{sphinxlatextables.sty}
|
||
|
|
||
|
|
||
|
%% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS
|
||
|
%
|
||
|
\input{sphinxlatexnumfig.sty}
|
||
|
|
||
|
|
||
|
%% LISTS
|
||
|
%
|
||
|
\input{sphinxlatexlists.sty}
|
||
|
|
||
|
|
||
|
%% FOOTNOTES
|
||
|
%
|
||
|
% Support scopes for footnote numbering
|
||
|
% This is currently stepped at each input file
|
||
|
\newcounter{sphinxscope}
|
||
|
\newcommand{\sphinxstepscope}{\stepcounter{sphinxscope}}
|
||
|
% We ensure \thesphinxscope expands to digits tokens, independently of language
|
||
|
\renewcommand{\thesphinxscope}{\number\value{sphinxscope}}
|
||
|
\newcommand\sphinxthefootnotemark[2]{%
|
||
|
% this is used to make reference to an explicitly numbered footnote not on same page
|
||
|
% #1=label of footnote text, #2=page number where footnote text was printed
|
||
|
\ifdefined\pagename
|
||
|
\pagename\space#2, % <- space
|
||
|
\else
|
||
|
p. #2, % <- space
|
||
|
\fi #1% no space
|
||
|
}
|
||
|
% support large numbered footnotes in minipage; but this is now obsolete
|
||
|
% from systematic use of savenotes environment around minipages
|
||
|
\def\thempfootnote{\arabic{mpfootnote}}
|
||
|
% This package is needed to support hyperlinked footnotes in tables and
|
||
|
% framed contents, and to allow code-blocks in footnotes.
|
||
|
\RequirePackage{sphinxpackagefootnote}
|
||
|
|
||
|
|
||
|
%% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS
|
||
|
%
|
||
|
\input{sphinxlatexindbibtoc.sty}
|
||
|
|
||
|
|
||
|
%% STYLING
|
||
|
%
|
||
|
\input{sphinxlatexstylepage.sty}
|
||
|
\input{sphinxlatexstyleheadings.sty}
|
||
|
\input{sphinxlatexstyletext.sty}
|
||
|
|
||
|
|
||
|
%% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS
|
||
|
%
|
||
|
\input{sphinxlatexobjects.sty}
|
||
|
|
||
|
|
||
|
% FIXME: this line should be dropped, as "9" is default anyhow.
|
||
|
\ifdefined\pdfcompresslevel\pdfcompresslevel = 9 \fi
|
||
|
|
||
|
|
||
|
\endinput
|