mirror of
				https://github.com/alexandrebobkov/ESP-Nodes.git
				synced 2025-10-27 13:58:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1197 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			1197 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| %
 | |
| % sphinx.sty
 | |
| %
 | |
| % Adapted from the old python.sty, mostly written by Fred Drake,
 | |
| % by Georg Brandl.
 | |
| % This has now grown to become a full-fledged LaTeX support, split
 | |
| % among multiple files, some of which provide features unavailable
 | |
| % from usual LaTeX packages in interaction with the mark-up produced
 | |
| % by the Sphinx LaTeX writer.
 | |
| 
 | |
| \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 | |
| \ProvidesPackage{sphinx}[2024/11/23 v8.2.0 Sphinx LaTeX package (sphinx-doc)]
 | |
| 
 | |
| % 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
 | |
|   {% limit scope of \spx@tempa, \AtEndDocument works even if nested.
 | |
|   \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
 | |
|    }%
 | |
|   }% end of scope limiting group for \spx@tempa
 | |
| }
 | |
| %% important build warnings use an undefined reference to induce latexmk
 | |
| %% into complaining (once per warning) at very end of console output
 | |
| \newcommand\sphinxbuildwarning[2][]{%
 | |
|   \ifcsname sphinx_emitted_#2\endcsname
 | |
|   \else
 | |
|     \global\expandafter\let\csname sphinx_emitted_#2\endcsname\@empty
 | |
|     \AtEndDocument{\hbox{% should the printing of text be made conditional on
 | |
|                          % some boolean? (7.4.0 answers this by adding an
 | |
|                          % optional argument and testing it here for emptiness
 | |
|                          % but no usage is made of this novelty yet.)
 | |
|         \if\relax\detokenize{#1}\relax
 | |
|         % No [], print a red warning text at very end of document
 | |
|                          \bfseries\color{red}%
 | |
|                          \@nameuse{sphinx_buildwarning_#2}%
 | |
|         \fi
 | |
|                          % place an undefined reference deliberately
 | |
|                          \let\nfss@text\@gobble % no ??
 | |
|                          \ref{!!\@nameuse{sphinx_buildwarning_#2}}%
 | |
|                          }%
 | |
|     }%
 | |
|   \fi
 | |
| }
 | |
| \@namedef{sphinx_buildwarning_badtitlesec}{%
 | |
|    Your system has titlesec version 2.10.1 which causes disappearance
 | |
|    of section numbers; check the latex log warning for details}
 | |
| \@namedef{sphinx_buildwarning_booktabs}{%
 | |
|    Some tables with booktabs class (check latex log) but booktabs
 | |
|    package not loaded; add its loading to the latex preamble}%
 | |
| \@namedef{sphinx_buildwarning_badfootnotes}{%
 | |
|    Footnote rendering may have had problems, due to extra package or
 | |
|    document class; check latex log for instructions}%
 | |
| \@namedef{sphinx_buildwarning_badiconpackage}{%
 | |
|    You have set iconpackage=\spx@opt@iconpackage, but this LaTeX package
 | |
|    is not found}%
 | |
| 
 | |
| %% OPTION HANDLING
 | |
| %
 | |
| % We generally first handle options then load packages, but we need
 | |
| % \definecolor and \colorlet from xcolor to handle the options.
 | |
| 
 | |
| % Support for colour options
 | |
| % --------------------------
 | |
| % At 7.4.0, package xcolor is required (which has allowed to get rid of
 | |
| % annoying fall-back branches).  Internals here got refactored to some extent.
 | |
| %
 | |
| % 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 code-blocks.  But \fcolorbox
 | |
| % appears also in Pygmentize output mark-up.
 | |
| % Should Sphinx load xcolor with its dvipsnames and svgnames options?
 | |
| \RequirePackage{xcolor}
 | |
| 
 | |
| % the \colorlet of xcolor is overkill for our internal usage here
 | |
| \newcommand{\sphinxcolorlet}[2]
 | |
|     {\expandafter\let\csname\@backslashchar color@#1\expandafter\endcsname
 | |
|                      \csname\@backslashchar color@#2\endcsname }
 | |
| 
 | |
| % (5.3.0) Allow colour options to use both the \definecolor and the \colorlet
 | |
| % syntaxes, for example VerbatimColor={gray}{0.9} or VerbatimColor=red!10
 | |
| % In the latter case we need the real \colorlet from xcolor package.
 | |
| % Prior to 7.4.0 xcolor was not required and thus \spx@colorlet was configured
 | |
| % to raise a warning in case of absence of xcolor.
 | |
| \def\spx@defineorletcolor#1{%
 | |
|     \def\spx@definedcolor{{#1}}%
 | |
|     \futurelet\spx@token\spx@defineorlet}
 | |
| \def\spx@defineorlet{%
 | |
|     \ifx\spx@token\bgroup
 | |
|     \expandafter\spx@definecolor\else\expandafter\spx@colorlet\fi}
 | |
| \def\spx@colorlet#1\relax{\expandafter\colorlet\spx@definedcolor{#1}}
 | |
| \def\spx@definecolor{\expandafter\definecolor\spx@definedcolor}
 | |
| % These internals refactored at 7.4.0:
 | |
| \newcommand*{\spx@DeclareColorOption}[3][]{%
 | |
| % #1 = almost always "sphinx" but left empty for a few for legacy reasons
 | |
| % #2 = option name, but internal colour name is #1#2 (i.e. with prefix)
 | |
| % #3 = initial default colour with either \definecolor or \colorlet syntax
 | |
|    % Set the initial default
 | |
|    \spx@defineorletcolor{#1#2}#3\relax
 | |
|    % Set the key handler to accept both \definecolor and \colorlet syntax
 | |
|    % The key name does not have the #1 prefix from the colour name
 | |
|    \define@key{sphinx}{#2}{\spx@defineorletcolor{#1#2}##1\relax}%
 | |
| }%
 | |
| 
 | |
| % Handle options via "kvoptions" (later loaded by hyperref anyhow)
 | |
| \RequirePackage{kvoptions}
 | |
| \SetupKeyvalOptions{prefix=spx@opt@} % use \spx@opt@ prefix
 | |
| 
 | |
| % Optional usage of booktabs package for tables
 | |
| \DeclareBoolOption[false]{booktabs}
 | |
| \DeclareBoolOption[false]{borderless}
 | |
| \DeclareBoolOption[true]{booktabscolorgaps}
 | |
| \DeclareVoidOption{booktabsnogaps}{%
 | |
|   \ifx\@nodocument\relax
 | |
|   % in body
 | |
|     \expandafter\@firstofone
 | |
|   \else
 | |
|   % in preamble, wait for at begin document
 | |
|     \expandafter\AtBeginDocument
 | |
|   \fi
 | |
|   {\ifdefined\abovetopsep % silently do nothing if booktabs not loaded
 | |
|       \abovetopsep\z@\belowrulesep\z@\aboverulesep\z@\belowbottomsep\z@
 | |
|    \fi
 | |
|   }%
 | |
| }
 | |
| % Coloured table rows
 | |
| \DeclareBoolOption[false]{colorrows}
 | |
| % 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}
 | |
| \DeclareStringOption[.]{mathnumsep}
 | |
| \define@key{sphinx}{bookmarksdepth}{\AtBeginDocument{\hypersetup{bookmarksdepth=#1}}}
 | |
| \AtBeginDocument{\define@key{sphinx}{bookmarksdepth}{\hypersetup{bookmarksdepth=#1}}}
 | |
| % \DeclareBoolOption[false]{usespart}% not used
 | |
| 
 | |
| % Code-blocks
 | |
| % -----------
 | |
| %
 | |
| % INFO: the keys for padding and border widths were extended at 5.1.0,
 | |
| % and legacy names for user interface were kept, but their definitions
 | |
| % are delayed further down.  The legacy internally used dimen registers
 | |
| % \sphinxverbatimborder and \sphinxverbatimsep got removed at 6.2.0.
 | |
| % More code-blocks related options are found in "CSS" part below.
 | |
| \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
 | |
| % -----------
 | |
| %
 | |
| % 5.1.0 added new keys for configuration.  The legacy keys shadowsep,
 | |
| % shadowsize, shadowrule were kept for backward compatibility.
 | |
| % 5.1.2 fixed some bugs.
 | |
| %
 | |
| % All configuration is now to be found in the "CSS" section below.
 | |
| %
 | |
| % 6.2.0 removed \sphinxshadowsep, \sphinxshadowsize, \sphinxshadowrule
 | |
| % \dimen registers
 | |
| 
 | |
| % 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
 | |
| % -----------------
 | |
| % TODO: the replacement of old syntax \py@HeaderFamily as used
 | |
| % in sphinxlatexstyle{page,headings}.sty and sphinx{manual,howto}.cls
 | |
| % has never been really put in place.  Hence this isolated tidbit here.
 | |
| \DeclareStringOption[\sffamily\bfseries]{HeaderFamily}
 | |
| 
 | |
| % Some legacy colour options
 | |
| % --------------------------
 | |
| %
 | |
| \spx@DeclareColorOption{TitleColor}{{rgb}{0.126,0.263,0.361}}
 | |
| \spx@DeclareColorOption{InnerLinkColor}{{rgb}{0.208,0.374,0.486}}
 | |
| \spx@DeclareColorOption{OuterLinkColor}{{rgb}{0.216,0.439,0.388}}
 | |
| % The Verbatim ones are "legacy" only since 5.1.0... call it "new-legacy" ;-)
 | |
| \spx@DeclareColorOption{VerbatimColor}{{RGB}{242,242,242}}% same as {gray}{0.95}
 | |
| \spx@DeclareColorOption{VerbatimBorderColor}{{RGB}{32,32,32}}
 | |
| % All other colours will be internally assigned a "sphinx" prefix
 | |
| 
 | |
| % Table row colors (since 6.0.0)
 | |
| % ----------------
 | |
| \spx@DeclareColorOption[sphinx]{TableRowColorHeader}{{gray}{0.86}}
 | |
| \spx@DeclareColorOption[sphinx]{TableRowColorOdd}{{gray}{0.92}}
 | |
| \spx@DeclareColorOption[sphinx]{TableRowColorEven}{{gray}{0.98}}
 | |
| % if not set, the "Merge" colour will keep in sync with the "Row" colour
 | |
| \def\sphinxTableMergeColorHeader{sphinxTableRowColorHeader}
 | |
| \define@key{sphinx}{TableMergeColorHeader}{%
 | |
|     \spx@defineorletcolor{sphinxTableMergeColorHeader}#1\relax
 | |
|     \def\sphinxTableMergeColorHeader{sphinxTableMergeColorHeader}%
 | |
| }%
 | |
| \def\sphinxTableMergeColorOdd{sphinxTableRowColorOdd}
 | |
| \define@key{sphinx}{TableMergeColorOdd}{%
 | |
|     \spx@defineorletcolor{sphinxTableMergeColorOdd}#1\relax
 | |
|     \def\sphinxTableMergeColorOdd{sphinxTableMergeColorOdd}%
 | |
| }%
 | |
| \def\sphinxTableMergeColorEven{sphinxTableRowColorEven}
 | |
| \define@key{sphinx}{TableMergeColorEven}{%
 | |
|     \spx@defineorletcolor{sphinxTableMergeColorEven}#1\relax
 | |
|     \def\sphinxTableMergeColorEven{sphinxTableMergeColorEven}%
 | |
| }%
 | |
| % Default color chosen to be as in minted.sty LaTeX package!
 | |
| \spx@DeclareColorOption[sphinx]{VerbatimHighlightColor}{{rgb}{0.878,1,1}}
 | |
| 
 | |
| % Notices/admonitions
 | |
| % -------------------
 | |
| %
 | |
| % 5.1.0 added much customizability to warning, caution, attention, danger and
 | |
| % error types of notices via an enhanced sphinxheavybox environment.
 | |
| %
 | |
| % 6.2.0 added the possibility to use the same kind of rendering also for
 | |
| % note, hint, important, and tip.
 | |
| %
 | |
| % Legacy user interface for options was kept working.  All of it is handled in
 | |
| % the "CSS" section below.
 | |
| %
 | |
| % 6.2.0 added booleans to serve internally as a record of whether the
 | |
| % note, hint, important and tip admonitions used the legacy "lightbox" or
 | |
| % the then enhanced "heavybox" environment.
 | |
| %
 | |
| % 7.4.0 uses "heavybox" environment from sphinxlatexadmonitions in all cases,
 | |
| % hence the booleans mentioned above have been removed as well as the rather
 | |
| % complex TeX code which was done so that these booleans were made true if
 | |
| % and only if the CSS-named keys had been made usage of via 'sphinxsetup'.
 | |
| %
 | |
| % The "light style" implemented in sphinxlatexadmonitions.sty as
 | |
| % "sphinxlightbox" is not used.  Also, admonitions by default have a "title
 | |
| % row", and the corresponding options are only named in the CSS style which is
 | |
| % implemented further below.  Here we define options having a legacy name.
 | |
| %
 | |
| % seealso directive is also using "heavybox" at 7.4.0 acquiring the same
 | |
| % customizability as admonitions.
 | |
| % todo directive also.
 | |
| \definecolor{sphinx-admonition-bgcolor}      {RGB}{247, 247, 247}% #F7F7F7
 | |
| \definecolor{sphinx-admonition-bordercolor}  {RGB}{134, 152, 155}% #86989B
 | |
| \definecolor{sphinx-warning-bordercolor}     {RGB}{148, 0, 0}%     #940000
 | |
| \definecolor{sphinx-error-bordercolor}       {RGB}{180, 0, 0}%     #B40000
 | |
| \spx@DeclareColorOption[sphinx]{noteBorderColor}     {sphinx-admonition-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{hintBorderColor}     {sphinx-admonition-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{importantBorderColor}{sphinx-admonition-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{tipBorderColor}      {sphinx-admonition-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{seealsoBorderColor}  {sphinx-admonition-bordercolor}% 7.4.0
 | |
| \spx@DeclareColorOption[sphinx]{todoBorderColor}     {sphinx-admonition-bordercolor}% 7.4.0
 | |
| %
 | |
| \spx@DeclareColorOption[sphinx]{noteBgColor}     {sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{hintBgColor}     {sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{importantBgColor}{sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{tipBgColor}      {sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{seealsoBgColor}  {sphinx-admonition-bgcolor}% 7.4.0
 | |
| \spx@DeclareColorOption[sphinx]{todoBgColor}     {sphinx-admonition-bgcolor}% 7.4.0
 | |
| %
 | |
| \spx@DeclareColorOption[sphinx]{warningBorderColor}  {sphinx-warning-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{cautionBorderColor}  {sphinx-warning-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{attentionBorderColor}{sphinx-warning-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{dangerBorderColor}   {sphinx-warning-bordercolor}
 | |
| \spx@DeclareColorOption[sphinx]{errorBorderColor}    {sphinx-error-bordercolor}
 | |
| %
 | |
| \spx@DeclareColorOption[sphinx]{warningBgColor}  {sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{cautionBgColor}  {sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{attentionBgColor}{sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{dangerBgColor}   {sphinx-admonition-bgcolor}
 | |
| \spx@DeclareColorOption[sphinx]{errorBgColor}    {sphinx-admonition-bgcolor}
 | |
| %
 | |
| %%%%%%%%
 | |
| %
 | |
| % Additions of CSS-like keys at 5.1.0 (and possibility of rounded boxes)
 | |
| % -----------------------------------
 | |
| %
 | |
| % These CSS-named alikes allow to configure 4 border widths, 4 padding seps, 4
 | |
| % corner radii, optional shadow, border color, background color, shadow color.
 | |
| %
 | |
| % In future, an alternative user interface will perhaps be provided to parse
 | |
| % genuine CSS, but this will be easier to do in Python than in LaTeX.
 | |
| %
 | |
| % Refactoring (and extension) at 6.2.0
 | |
| % ------------------------------------
 | |
| %
 | |
| % 6.2.0 batch defines in one go all auxiliaries for code-blocks, topics, and
 | |
| % admonitions.  The needed steps to maintain the legacy option names working
 | |
| % and to set some specific defaults are handled in a second step.
 | |
| %
 | |
| % This allowed to:
 | |
| %
 | |
| % - associate these CSS-named options also to note, hint, important, and tip
 | |
| % which thus can access the full customizability of sphinxheavybox if they use
 | |
| % it.
 | |
| %
 | |
| % - provide a \sphinxbox command for boxing inline text elements with the same
 | |
| % full customizability.
 | |
| %
 | |
| % The \dimen's \sphinxverbatimborder, \sphinxverbatimsep, \sphinxshadowsep,
 | |
| % \sphinxshadowsize, and \sphinxshadowrule, which had been deprecated have
 | |
| % finally been removed entirely.  No more \dimen register is used here only
 | |
| % storage in macros.
 | |
| %
 | |
| % Restyling at 7.4.0 with new defaults for all admonition types
 | |
| % -------------------------------------------------------------
 | |
| %
 | |
| % So far the 5.1.0 added possibilities for fancier boxes had been used by
 | |
| % default only for code-blocks, and admonitions kept their old-fashioned
 | |
| % legacy styles.  At 7.4.0, as a follow-up to the revamped styles of
 | |
| % admonitions in the HTML sphinx13 theme (PR #12439), it is decided to
 | |
| % apply similar styling for PDF output.  Also the seealso directive
 | |
| % is handled as an admonition with the same customizability. And the
 | |
| % todo directive.
 | |
| %
 | |
| % 8.1.0: style separately topic, contents, and sidebar directives
 | |
| % ---------------------------------------------------------------
 | |
| %
 | |
| % And use some title row also for them (but without icon, per default).
 | |
| %
 | |
| \def\spxstring@none{none}
 | |
| \def\spxstring@clone{clone}
 | |
| %
 | |
| % Border keys
 | |
| % At 7.4.0 refactoring to avoid defining legacy \spx@<type>@border
 | |
| % macros which are (now) used nowhere, only @top, @right, @bottom, @left.
 | |
| \def\spx@tempa#1{% #1 = macro prefix
 | |
|   \expandafter\spx@tempb
 | |
|   \csname #1border@top\expandafter\endcsname
 | |
|   \csname #1border@right\expandafter\endcsname
 | |
|   \csname #1border@bottom\expandafter\endcsname
 | |
|   \csname #1border@left\expandafter\endcsname
 | |
|   \csname if#1border@open\expandafter\endcsname
 | |
|   \csname #1border@opentrue\expandafter\endcsname
 | |
|   \csname #1border@openfalse\endcsname
 | |
| }%
 | |
| \def\spx@tempb #1#2#3#4#5#6#7#8#9{% #8 = option prefix
 | |
|   \define@key{sphinx}{#8border-top-width}{\def#1{##1}}%
 | |
|   \define@key{sphinx}{#8border-right-width}{\def#2{##1}}%
 | |
|   \define@key{sphinx}{#8border-bottom-width}{\def#3{##1}}%
 | |
|   \define@key{sphinx}{#8border-left-width}{\def#4{##1}}%
 | |
|   \define@key{sphinx}{#8border-width}{%
 | |
|     % MEMO: not immediately expanded, should this be changed?
 | |
|     \def#1{##1}\let#2#1\let#3#1\let#4#1%
 | |
|     }%
 | |
|   \newif#5%
 | |
|   % 6.2.0 has added support for box-decoration-break also to admonition
 | |
|   % directives, formerly the option setting was ignored for them.
 | |
|   \define@key{sphinx}{#8box-decoration-break}%
 | |
|            {\begingroup\edef\spx@tempa{##1}\expandafter\endgroup
 | |
|             \ifx\spx@tempa\spxstring@clone#7\else#6\fi}%
 | |
|   % 7.4.0 sets the default behaviour to "slice" not only for code-blocks but
 | |
|   % also for admonitions, as the latter now have a background colour each.
 | |
|   #6%
 | |
|   % #8 = option prefix (with underscore), #9 = legacy option name
 | |
|   % keep legacy option names as aliases to new-named options
 | |
|   \expandafter\let\csname KV@sphinx@#9\expandafter\endcsname
 | |
|                   \csname KV@sphinx@#8border-width\endcsname
 | |
|   % init border-width (fetches next argument)
 | |
|   \csname KV@sphinx@#8border-width\endcsname
 | |
| }
 | |
| % MEMO: from 6.2.0 to 7.4.0 (excluive) \fboxrule was used in the first
 | |
| % two, and was resolved only at location of use.  At 7.4.0, we again
 | |
| % use 0.4pt rather and not \fboxrule dimen register.
 | |
| %          macro prefix   option prefix   legacy option    init value
 | |
| \spx@tempa{spx@pre@}      {pre_}          {verbatimborder} {0.4pt}
 | |
| \spx@tempa{spx@topic@}    {div.topic_}    {shadowrule}     {0.5pt}% mod. at 7.4.0
 | |
| \spx@tempa{spx@contents@} {div.contents_} {shadowrule}     {0.5pt}% 8.1.0
 | |
| \spx@tempa{spx@sidebar@}  {div.sidebar_}  {shadowrule}     {1pt}%   8.1.0
 | |
| % let legacy shadowrule key set all topic/contents/sidebar border
 | |
| % keys to the common value given by user to shadowrule
 | |
| \def\KV@sphinx@shadowrule #1{%
 | |
|   \@nameuse{KV@sphinx@div.topic_border-width}{#1}%
 | |
|   \@nameuse{KV@sphinx@div.contents_border-width}{#1}%
 | |
|   \@nameuse{KV@sphinx@div.sidebar_border-width}{#1}%
 | |
| }%
 | |
| \spx@tempa{spx@note@}     {div.note_}     {noteborder}     {0.5pt}
 | |
| \spx@tempa{spx@hint@}     {div.hint_}     {hintborder}     {0.5pt}
 | |
| \spx@tempa{spx@important@}{div.important_}{importantborder}{0.5pt}
 | |
| \spx@tempa{spx@tip@}      {div.tip_}      {tipborder}      {0.5pt}
 | |
| \spx@tempa{spx@seealso@}  {div.seealso_}  {seealsoborder}  {0.5pt}% new at 7.4.0
 | |
| \spx@tempa{spx@todo@}     {div.todo_}     {todoborder}     {0.5pt}% new at 7.4.0
 | |
| \spx@tempa{spx@warning@}  {div.warning_}  {warningborder}  {1pt}
 | |
| \spx@tempa{spx@caution@}  {div.caution_}  {cautionborder}  {1pt}
 | |
| \spx@tempa{spx@attention@}{div.attention_}{attentionborder}{1pt}
 | |
| \spx@tempa{spx@danger@}   {div.danger_}   {dangerborder}   {1pt}
 | |
| \spx@tempa{spx@error@}    {div.error_}    {errorborder}    {1.25pt}% mod. at 7.4.0
 | |
| % this one new at 6.2.0: (we do not create a "legacy name" for it)
 | |
| \spx@tempa{spx@box@}      {box_}          {box_border-width}{0.4pt}
 | |
| % Reset default box-decoration-break style to "clone" for \sphinxbox,
 | |
| % but anyhow this is ignored as \sphinxbox produces unbreakable boxes.
 | |
| \spx@box@border@openfalse
 | |
| 
 | |
| % Padding keys
 | |
| % At 7.4.0, \spx@<type>@padding internal macros removed, only @top, @right,
 | |
| % @bottom, @left are actually needed by sphinxpackageboxes.sty.
 | |
| \def\spx@tempa#1{%
 | |
|   \expandafter\spx@tempb
 | |
|   \csname #1padding@top\expandafter\endcsname
 | |
|   \csname #1padding@right\expandafter\endcsname
 | |
|   \csname #1padding@bottom\expandafter\endcsname
 | |
|   \csname #1padding@left\endcsname
 | |
| }%
 | |
| \def\spx@tempb #1#2#3#4#5#6#7#8#9{% #5 = option prefix
 | |
|   \define@key{sphinx}{#5padding-top}{\def#1{##1}}%
 | |
|   \define@key{sphinx}{#5padding-right}{\def#2{##1}}%
 | |
|   \define@key{sphinx}{#5padding-bottom}{\def#3{##1}}%
 | |
|   \define@key{sphinx}{#5padding-left}{\def#4{##1}}%
 | |
|   \define@key{sphinx}{#5padding}{%
 | |
|      \def#1{##1}\let#2#1\let#3#1\let#4#1%
 | |
|   }%
 | |
|   % initial defaults
 | |
|   \def#1{#6}\def#2{#7}\def#3{#8}\def#4{#9}%
 | |
| }
 | |
| % MEMO: prior to 6.2.0 the \fboxsep value (3pt, a priori) was frozen here via
 | |
| % a \dimen assignment done immediately. From 6.2.0 to 7.4.0 an unfrozen
 | |
| % \fboxsep was used, and at 7.4.0 it is again explicit 3pt.
 | |
| % The defaults for admonitions were all modified at 7.4.0.
 | |
| % For topic/contents and all admonitions the horizontal padding plus borders
 | |
| % are put inside the text area (i.e. do not go into the margins).
 | |
| % In order for perfect exact same vertical alignment of contents from all such
 | |
| % directives, the value of horizontal border-width+padding is kept constant
 | |
| % (equal to 7.5pt since 7.4.0).
 | |
| % 8.1.0 styles separately topic, contents, and sidebar.
 | |
| %         #1 macro prefix #6 option prefix   top right bottom left
 | |
| \spx@tempa{spx@pre@}      {pre_}            {3pt}{3pt}{3pt}{3pt}
 | |
| \spx@tempa{spx@topic@}    {div.topic_}      {6pt}{7pt}{6pt}{7pt}% mod. at 8.1.0
 | |
| % contents styling inherits at 8.1.0 the former 7.4.0 topic defaults
 | |
| \spx@tempa{spx@contents@} {div.contents_}   {10pt}{7pt}{12pt}{7pt}%   8.1.0
 | |
| \spx@tempa{spx@sidebar@}  {div.sidebar_}    {6pt}{6.5pt}{6pt}{6.5pt}% 8.1.0
 | |
| % 7.4.0 drops legacy settings which linked strangely padding with border width
 | |
| \spx@tempa{spx@note@}     {div.note_}       {6pt}{7pt}{6pt}{7pt}
 | |
| \spx@tempa{spx@hint@}     {div.hint_}       {6pt}{7pt}{6pt}{7pt}
 | |
| \spx@tempa{spx@important@}{div.important_}  {6pt}{7pt}{6pt}{7pt}
 | |
| \spx@tempa{spx@tip@}      {div.tip_}        {6pt}{7pt}{6pt}{7pt}
 | |
| \spx@tempa{spx@seealso@}  {div.seealso_}    {6pt}{7pt}{6pt}{7pt}
 | |
| \spx@tempa{spx@todo@}     {div.todo_}       {6pt}{7pt}{6pt}{7pt}
 | |
| \spx@tempa{spx@warning@}  {div.warning_}    {6pt}{6.5pt}{6pt}{6.5pt}
 | |
| \spx@tempa{spx@caution@}  {div.caution_}    {6pt}{6.5pt}{6pt}{6.5pt}
 | |
| \spx@tempa{spx@attention@}{div.attention_}  {6pt}{6.5pt}{6pt}{6.5pt}
 | |
| \spx@tempa{spx@danger@}   {div.danger_}     {6pt}{6.5pt}{6pt}{6.5pt}
 | |
| \spx@tempa{spx@error@}    {div.error_}      {6pt}{6.25pt}{6pt}{6.25pt}
 | |
| \spx@tempa{spx@box@}      {box_}            {3pt}{3pt}{3pt}{3pt}
 | |
| % define legacy verbatimsep key as alias of pre_padding key
 | |
| \expandafter\let\expandafter\KV@sphinx@verbatimsep\csname KV@sphinx@pre_padding\endcsname
 | |
| % let legacy shadowsep key set all topic/contents/sidebar padding
 | |
| % keys to the common value given by user to shadosep
 | |
| \def\KV@sphinx@shadowsep #1{%
 | |
|   \@nameuse{KV@sphinx@div.topic_padding}{#1}%
 | |
|   \@nameuse{KV@sphinx@div.contents_padding}{#1}%
 | |
|   \@nameuse{KV@sphinx@div.sidebar_padding}{#1}%
 | |
| }%
 | |
| 
 | |
| % Corner radii keys
 | |
| %
 | |
| % Prior to 6.2.0, the "rounded box" branch obeyed the 4 radii but ignored
 | |
| % the separate border widths and used only the border-width setting.
 | |
| % Now, all 4 + 4 parameters are obeyed.
 | |
| \def\spx@tempa#1{% #1 = macro prefix
 | |
|   \expandafter\spx@tempb
 | |
|   \csname #1radius@topleft\expandafter\endcsname
 | |
|   \csname #1radius@topright\expandafter\endcsname
 | |
|   \csname #1radius@bottomright\expandafter\endcsname
 | |
|   \csname #1radius@bottomleft\endcsname
 | |
| }%
 | |
| \def\spx@tempb #1#2#3#4#5#6#7#8#9{% #5 = option prefix
 | |
|   \define@key{sphinx}{#5border-top-left-radius}{\def#1{##1}}%
 | |
|   \define@key{sphinx}{#5border-top-right-radius}{\def#2{##1}}%
 | |
|   \define@key{sphinx}{#5border-bottom-right-radius}{\def#3{##1}}%
 | |
|   \define@key{sphinx}{#5border-bottom-left-radius}{\def#4{##1}}%
 | |
|   \define@key{sphinx}{#5border-radius}{\def#1{##1}\let#2#1\let#3#1\let#4#1}%
 | |
|   \def#1{#6}\def#2{#7}\def#3{#8}\def#4{#9}%
 | |
| }
 | |
| % The init value for corner radius in code-blocks was \z@ (i.e. 0pt) prior
 | |
| % to 6.0.0., then 3pt, then \fboxsep at 6.2.0 as padding was also \fboxsep.
 | |
| % At 7.4.0:
 | |
| % - the 3pt is used (which is normal value of \fboxsep).
 | |
| % - some admonitions use rounded corners as well.
 | |
| % - topic boxed have only their bottom right corner rounded.
 | |
| % At 8.1.0 topic, contents and sidebar separately styled.
 | |
| %          macro prefix    option prefix     tl   tr   br   bl
 | |
| \spx@tempa{spx@pre@}      {pre_}            {3pt}{3pt}{3pt}{3pt}
 | |
| % use four rounded corners (and no shadow) for topic at 8.1.0
 | |
| \spx@tempa{spx@topic@}    {div.topic_}      {8pt}{8pt}{8pt}{8pt}
 | |
| % contents inherits at 8.1.0 the 7.4.0 former styling of topic
 | |
| \spx@tempa{spx@contents@} {div.contents_}   \z@  \z@  {12pt} \z@
 | |
| % make sidebard distinctive as we can't really safely implement
 | |
| % it with text flowing around it, but rather as a full width block
 | |
| \spx@tempa{spx@sidebar@}  {div.sidebar_}    {12pt}\z@ {12pt} \z@
 | |
| \spx@tempa{spx@note@}     {div.note_}       {5pt}{5pt}{5pt}{5pt}
 | |
| \spx@tempa{spx@hint@}     {div.hint_}       {5pt}{5pt}{5pt}{5pt}
 | |
| \spx@tempa{spx@important@}{div.important_}  \z@\z@\z@\z@
 | |
| \spx@tempa{spx@tip@}      {div.tip_}        {5pt}{5pt}{5pt}{5pt}
 | |
| \spx@tempa{spx@seealso@}  {div.seealso_}    \z@\z@\z@\z@
 | |
| \spx@tempa{spx@todo@}     {div.todo_}       \z@\z@\z@\z@
 | |
| \spx@tempa{spx@warning@}  {div.warning_}    \z@\z@\z@\z@
 | |
| \spx@tempa{spx@caution@}  {div.caution_}    \z@\z@\z@\z@
 | |
| \spx@tempa{spx@attention@}{div.attention_}  \z@\z@\z@\z@
 | |
| \spx@tempa{spx@danger@}   {div.danger_}     \z@\z@\z@\z@
 | |
| \spx@tempa{spx@error@}    {div.error_}      \z@\z@\z@\z@
 | |
| \spx@tempa{spx@box@}      {box_}            {3pt}{3pt}{3pt}{3pt}
 | |
| 
 | |
| % Shadow keys
 | |
| %
 | |
| % Prior to 6.2.0, an "inset" shadow caused the rendering to ignore
 | |
| % rounded corners.  Starting with 6.2.0, an "inset" shadow is simply
 | |
| % ignored (not implemented) if any of the corner radii is positive,
 | |
| % rather than forcing a rectangle+inset shadow output.
 | |
| \def\spx@tempa#1{%
 | |
|   \expandafter\spx@tempb
 | |
|   \csname if#1withshadow\expandafter\endcsname
 | |
|   \csname if#1insetshadow\endcsname
 | |
| }%
 | |
| \def\spx@tempb#1#2{\newif#1\newif#2}%
 | |
| %          macro prefix
 | |
| \spx@tempa{spx@pre@}
 | |
| \spx@tempa{spx@topic@}
 | |
| \spx@tempa{spx@contents@}% 8.1.0
 | |
| \spx@tempa{spx@sidebar@}% 8.1.0
 | |
| \spx@tempa{spx@note@}
 | |
| \spx@tempa{spx@hint@}
 | |
| \spx@tempa{spx@important@}
 | |
| \spx@tempa{spx@tip@}
 | |
| \spx@tempa{spx@seealso@}% 7.4.0
 | |
| \spx@tempa{spx@todo@}% 7.4.0
 | |
| \spx@tempa{spx@warning@}
 | |
| \spx@tempa{spx@caution@}
 | |
| \spx@tempa{spx@attention@}
 | |
| \spx@tempa{spx@danger@}
 | |
| \spx@tempa{spx@error@}
 | |
| \spx@tempa{spx@box@}
 | |
| %
 | |
| \def\spx@tempa#1{% #1 = macro prefix
 | |
|   \expandafter\spx@tempb
 | |
|   \csname #1withshadowtrue\expandafter\endcsname
 | |
|   \csname #1withshadowfalse\expandafter\endcsname
 | |
|   \csname #1insetshadowtrue\expandafter\endcsname
 | |
|   \csname #1insetshadowfalse\expandafter\endcsname
 | |
|   \csname #1shadow@setter\expandafter\endcsname
 | |
|   \csname #1shadow@xoffset\expandafter\endcsname
 | |
|   \csname #1shadow@yoffset\endcsname
 | |
| }%
 | |
| \def\spx@tempb#1#2#3#4#5#6#7#8{% #8 = option prefix
 | |
|   \define@key{sphinx}{#8box-shadow}{#5##1 {} {} \@nnil}%
 | |
|   \def#5##1 ##2 ##3 ##4\@nnil{%
 | |
|   \begingroup\edef\spx@tempa{##1}\expandafter\endgroup
 | |
|   \ifx\spx@tempa\spxstring@none
 | |
|         #2%
 | |
|         % MEMO: at 5.1.0 and up to 6.2.0, an \edef with \number\dimexpr was
 | |
|         % used here.  Since 6.2.0, expansion is delayed to time of use as for
 | |
|         % the other dimensions handled above.  This is synched with an added
 | |
|         % encapsulation in \dimexpr...\relax by the "setup" from
 | |
|         % sphinxpackageboxes.sty.
 | |
|   \else #1%
 | |
|         \def#6{##1}%
 | |
|         \if\relax\detokenize{##2}\relax\let#7#6\else\def#7{##2}\fi
 | |
|         \if\relax\detokenize{##3}\relax#4\else#3\fi
 | |
|   \fi
 | |
|   }%
 | |
|   #5none {} {} \@nnil % no shadow by default (except for topic, see below)
 | |
| }
 | |
| \spx@tempa{spx@pre@}      {pre_}
 | |
| \spx@tempa{spx@topic@}    {div.topic_}
 | |
| \spx@tempa{spx@contents@} {div.contents_}
 | |
| \spx@tempa{spx@sidebar@}  {div.sidebar_}
 | |
| % This corresponds to the legacy parameters for topic/contents/sidebar,
 | |
| % but they are now only kept for contents
 | |
|     \spx@contents@shadow@setter 4pt 4pt {} \@nnil
 | |
| % topic and sidebar default to no shadow
 | |
| \spx@tempa{spx@note@}     {div.note_}
 | |
| \spx@tempa{spx@hint@}     {div.hint_}
 | |
| \spx@tempa{spx@important@}{div.important_}
 | |
| \spx@tempa{spx@tip@}      {div.tip_}
 | |
| \spx@tempa{spx@seealso@}  {div.seealso_}
 | |
| \spx@tempa{spx@todo@}     {div.todo_}
 | |
| \spx@tempa{spx@warning@}  {div.warning_}
 | |
| \spx@tempa{spx@caution@}  {div.caution_}
 | |
| \spx@tempa{spx@attention@}{div.attention_}
 | |
| \spx@tempa{spx@danger@}   {div.danger_}
 | |
| \spx@tempa{spx@error@}    {div.error_}
 | |
| \spx@tempa{spx@box@}      {box_}
 | |
| 
 | |
| % Support for legacy shadowsize (topic/contents/sidebar)
 | |
| % This definition was broken due to a typo at 5.1.0 and got fixed at 6.1.2
 | |
| % MEMO: at 6.2.0 this no longer does \number\dimexpr in an \edef.  Reason is to
 | |
| % keep in sync with div.topic_box-shadow handling of xoffset and yoffset.
 | |
| \define@key{sphinx}{shadowsize}{%
 | |
|   \def\spx@topic@shadow@xoffset{#1}%
 | |
|   \let\spx@contents@shadow@xoffset\spx@topic@shadow@xoffset
 | |
|   \let\spx@sidebar@shadow@xoffset \spx@topic@shadow@xoffset
 | |
|   \let\spx@topic@shadow@yoffset   \spx@topic@shadow@xoffset
 | |
|   \let\spx@contents@shadow@yoffset\spx@topic@shadow@xoffset
 | |
|   \let\spx@sidebar@shadow@yoffset \spx@topic@shadow@xoffset
 | |
|   \ifdim\dimexpr\spx@topic@shadow@xoffset=\z@
 | |
|       \spx@topic@withshadowfalse
 | |
|       \spx@contents@withshadowfalse
 | |
|       \spx@sidebar@withshadowfalse
 | |
|   \else
 | |
|       \spx@topic@withshadowtrue
 | |
|       \spx@topic@insetshadowfalse
 | |
|       \spx@contents@withshadowtrue
 | |
|       \spx@contents@insetshadowfalse
 | |
|       \spx@sidebar@withshadowtrue
 | |
|       \spx@sidebar@insetshadowfalse
 | |
|   \fi
 | |
| }%
 | |
| 
 | |
| % Color keys, TeXextras key, keys for admonition titles with icon
 | |
| %
 | |
| % Historical remarks to be removed at some point:
 | |
| %
 | |
| % Some problems due to legacy naming scheme which had diverging conventions
 | |
| % for code-blocks (VerbatimBorderColor, VerbatimColor) and admonitions
 | |
| % (sphinxwarningBorderColor, sphinxwarningBgColor, etc...)  regarding the
 | |
| % internal names of the used colors.  Unfortunately VerbatimColor and for
 | |
| % example sphinxwarningBgColor are also documented at user level, they are not
 | |
| % only internally used.
 | |
| %
 | |
| % For topic directive, "legacy" (around 2016-2017) had no interface for
 | |
| % colours, so some internals could be changed with no breakage during 5.x up
 | |
| % to 6.2.0.  For example topic (shadowbox) could be unified with admonitions
 | |
| % (sphinxheavybox), and the "setup" macros could all be moved into a single
 | |
| % one in the sphinxpackageboxes.sty file, with only one argument holding the
 | |
| % directive type.
 | |
| %
 | |
| % It was then needed only by sphinxlatexliterals.sty to let its emitted
 | |
| % \spx@verb@boxes@fcolorbox@setup incorporate some extra adjustment.
 | |
| %
 | |
| % 7.4.0 removes usages of booleans relative to usage of a colour for
 | |
| % background or border which were there to optimize the boxing code from
 | |
| % sphinxpackageboxes.sty when colours where not needed.  These were internal
 | |
| % macros so their removal should not be considered breaking.
 | |
| % We keep the infrastructure for "shadowcolor" and "textcolor" because the
 | |
| % defaults for them remain not to have specific colour.
 | |
| %
 | |
| % 7.4.0 adds keys for admonition titles: for background and foreground colors,
 | |
| % and for icons (whose defaults are picked from Free Fontawesome 5).
 | |
| \def\spx@tempa#1{%
 | |
|   \expandafter\spx@tempb
 | |
|   \csname if#1withshadowcolor\expandafter\endcsname
 | |
|   \csname if#1withtextcolor\endcsname
 | |
| }%
 | |
| \def\spx@tempb#1#2{\newif#1\newif#2}%
 | |
| %          macro prefix
 | |
| \spx@tempa{spx@pre@}
 | |
| \spx@tempa{spx@topic@}
 | |
| \spx@tempa{spx@contents@}
 | |
| \spx@tempa{spx@sidebar@}
 | |
| \spx@tempa{spx@note@}
 | |
| \spx@tempa{spx@hint@}
 | |
| \spx@tempa{spx@important@}
 | |
| \spx@tempa{spx@tip@}
 | |
| \spx@tempa{spx@seealso@}
 | |
| \spx@tempa{spx@todo@}
 | |
| \spx@tempa{spx@warning@}
 | |
| \spx@tempa{spx@caution@}
 | |
| \spx@tempa{spx@attention@}
 | |
| \spx@tempa{spx@danger@}
 | |
| \spx@tempa{spx@error@}
 | |
| \spx@tempa{spx@box@}
 | |
| %
 | |
| \def\spx@tempa#1{% #1 = macro prefix
 | |
|   \expandafter\spx@tempb
 | |
|   \csname #1withshadowcolortrue\expandafter\endcsname
 | |
|   \csname #1withtextcolortrue\expandafter\endcsname
 | |
|   \csname #1TeXextras\endcsname
 | |
| }
 | |
| % 7.4.0 adds options for a title.  They have an action only for admonitions,
 | |
| % seealso and todo directives.
 | |
| \def\spx@tempb#1#2#3#4#5{% #4 = option prefix, #5 = color name prefix
 | |
|   \define@key{sphinx}{#4border-TeXcolor}%
 | |
|      {\spx@defineorletcolor{#5BorderColor}##1\relax}%
 | |
|   \define@key{sphinx}{#4background-TeXcolor}%
 | |
|      {\spx@defineorletcolor{#5BgColor}##1\relax}%
 | |
|   \define@key{sphinx}{#4title-background-TeXcolor}%
 | |
|      {\spx@defineorletcolor{#5TtlBgColor}##1\relax}%
 | |
|   \define@key{sphinx}{#4title-foreground-TeXcolor}%
 | |
|      {\spx@defineorletcolor{#5TtlFgColor}##1\relax}%
 | |
|   \define@key{sphinx}{#4title-icon}%
 | |
|      {\@namedef{#5TtlIcon}{##1}}%
 | |
|   \define@key{sphinx}{#4box-shadow-TeXcolor}%
 | |
|      {#1\spx@defineorletcolor{#5ShadowColor}##1\relax}%
 | |
|   \define@key{sphinx}{#4TeXcolor}%
 | |
|      {#2\spx@defineorletcolor{#5TextColor}##1\relax}%
 | |
|   \define@key{sphinx}{#4TeXextras}%
 | |
|      {\def#3{##1}}%
 | |
| }
 | |
| %          macro prefix    option prefix    color name prefix
 | |
| \spx@tempa{spx@pre@}      {pre_}            {Verbatim}
 | |
|     % (memo: internal VerbatimShadowColor was formerly sphinxVerbatimShadowColor)
 | |
|     % internal legacy color name is VerbatimColor not VerbatimBgColor, so redefine:
 | |
|     \define@key{sphinx}{pre_background-TeXcolor}%
 | |
|       {\spx@defineorletcolor{VerbatimColor}#1\relax}%
 | |
|     % Keep legacy option names working
 | |
|     \expandafter\let\expandafter\KV@sphinx@VerbatimBorderColor
 | |
|                                 \csname KV@sphinx@pre_border-TeXcolor\endcsname
 | |
|     \expandafter\let\expandafter\KV@sphinx@VerbatimColor
 | |
|                                 \csname KV@sphinx@pre_background-TeXcolor\endcsname
 | |
| % (6.2.0 modified some internal namings for the colors of topic boxes)
 | |
| %          macro prefix   option prefix     color name prefix
 | |
| % There was no legacy interface for topic/contents/sidebar
 | |
| % 8.1.0 allows separate styling for topic/contents/sidebar
 | |
| \spx@tempa{spx@topic@}    {div.topic_}      {sphinxtopic}
 | |
| \spx@tempa{spx@contents@} {div.contents_}   {sphinxcontents}
 | |
| \spx@tempa{spx@sidebar@}  {div.sidebar_}    {sphinxsidebar}
 | |
| \spx@tempa{spx@note@}     {div.note_}       {sphinxnote}
 | |
| \spx@tempa{spx@hint@}     {div.hint_}       {sphinxhint}
 | |
| \spx@tempa{spx@important@}{div.important_}  {sphinximportant}
 | |
| \spx@tempa{spx@tip@}      {div.tip_}        {sphinxtip}
 | |
| \spx@tempa{spx@seealso@}  {div.seealso_}    {sphinxseealso}
 | |
| \spx@tempa{spx@todo@}     {div.todo_}       {sphinxtodo}
 | |
| \spx@tempa{spx@warning@}  {div.warning_}    {sphinxwarning}
 | |
| \spx@tempa{spx@caution@}  {div.caution_}    {sphinxcaution}
 | |
| \spx@tempa{spx@attention@}{div.attention_}  {sphinxattention}
 | |
| \spx@tempa{spx@danger@}   {div.danger_}     {sphinxdanger}
 | |
| \spx@tempa{spx@error@}    {div.error_}      {sphinxerror}
 | |
| \spx@tempa{spx@box@}      {box_}            {sphinxbox}
 | |
|     % Keep legacy sphinxsetup color options interface for "strong" admonitions
 | |
|     \def\spx@tempa#1#2{% #1 = option prefix, #2 = legacy option prefix
 | |
|       \expandafter\let\csname KV@sphinx@#2BorderColor\expandafter\endcsname
 | |
|                       \csname KV@sphinx@#1border-TeXcolor\endcsname
 | |
|       \expandafter\let\csname KV@sphinx@#2BgColor\expandafter\endcsname
 | |
|                       \csname KV@sphinx@#1background-TeXcolor\endcsname
 | |
|     }
 | |
|     \spx@tempa{div.warning_}    {warning}
 | |
|     \spx@tempa{div.caution_}    {caution}
 | |
|     \spx@tempa{div.attention_}  {attention}
 | |
|     \spx@tempa{div.danger_}     {danger}
 | |
|     \spx@tempa{div.error_}      {error}
 | |
| 
 | |
|     % Keep legacy sphinxsetup <type>BorderColor for <type>=note, hint, ...
 | |
|     % Add "legacy" names <type>BgColor (added at 7.4.0) and <type>TextColor
 | |
|     \def\spx@tempa#1#2{% #1 = CSS like option prefix, #2 = legacy option prefix
 | |
|       \expandafter\let\csname KV@sphinx@#2BorderColor\expandafter\endcsname
 | |
|                       \csname KV@sphinx@#1border-TeXcolor\endcsname
 | |
|       \expandafter\let\csname KV@sphinx@#2BgColor\expandafter\endcsname
 | |
|                       \csname KV@sphinx@#1background-TeXcolor\endcsname
 | |
|       \expandafter\let\csname KV@sphinx@#2TextColor\expandafter\endcsname
 | |
|                       \csname KV@sphinx@#1TeXcolor\endcsname
 | |
|     }
 | |
|     \spx@tempa{div.note_}       {note}
 | |
|     \spx@tempa{div.hint_}       {hint}
 | |
|     \spx@tempa{div.important_}  {important}
 | |
|     \spx@tempa{div.tip_}        {tip}
 | |
| 
 | |
|     % Add "legacy" hintTeXextras etc...
 | |
|     \def\spx@tempa#1#2{% #1 = CSS like option prefix, #2 = legacy option prefix
 | |
|       \expandafter\let\csname KV@sphinx@#2TeXextras\expandafter\endcsname
 | |
|                       \csname KV@sphinx@#1TeXextras\endcsname
 | |
|     }
 | |
|     \spx@tempa{div.note_}       {note}
 | |
|     \spx@tempa{div.hint_}       {hint}
 | |
|     \spx@tempa{div.important_}  {important}
 | |
|     \spx@tempa{div.tip_}        {tip}
 | |
| 
 | |
|     % At 7.4.0, let topic/contents boxes acquire background and border colours
 | |
|     % and give the shadow some colour other than black
 | |
|     % 8.1.0 styles separately topic/contents/sidebar
 | |
|     % topic has no shadow but we keep 7.4.0 color in case it gets needed
 | |
|     \setkeys{sphinx}{%
 | |
|         div.topic_border-TeXcolor=sphinx-admonition-bordercolor,
 | |
|         div.topic_background-TeXcolor=sphinx-admonition-bgcolor,
 | |
|         div.topic_box-shadow-TeXcolor={RGB}{108,108,108},
 | |
|         div.contents_border-TeXcolor=sphinx-admonition-bordercolor,
 | |
|         div.contents_background-TeXcolor=sphinx-admonition-bgcolor,
 | |
|         div.contents_box-shadow-TeXcolor={RGB}{108,108,108},
 | |
|         div.sidebar_border-TeXcolor=sphinx-admonition-bordercolor,
 | |
|         div.sidebar_background-TeXcolor=sphinx-admonition-bgcolor,
 | |
|         div.sidebar_box-shadow-TeXcolor=sphinx-admonition-bordercolor!80,% #9eacaf
 | |
|     }
 | |
| 
 | |
| 
 | |
| % 7.4.0 lets all types of admonitions style especially their titlss.
 | |
| % The Sphinx default colours for admonition titles are copied from PR #12486
 | |
| % which modified sphinx13.css (see also earlier #12439)
 | |
| % The actual code using the colours and icons whose defaults are set here
 | |
| % is to be found in sphinxlatexadmonitions.sty.
 | |
| %
 | |
| % MEMO: unfortunately xcolor does NOT implement HSL but only HSB!
 | |
| % So the sphinx13.css colours specified via hsl() got converted to RGB here
 | |
| \definecolor{sphinx-admonition-title-bgcolor}{RGB}{229,229,229} % hsl(0, 0%, 90%);
 | |
| \definecolor{sphinx-admonition-title-fgcolor}{RGB}{127,127,127} % hsl(0, 0%, 50%);
 | |
| \definecolor{sphinx-warning-title-bgcolor}   {RGB}{248,228,210} % hsl(28.5, 74%, 90%);
 | |
| \definecolor{sphinx-warning-title-fgcolor}   {RGB}{221,122,33}  % hsl(28.5, 74%, 50%);
 | |
| \definecolor{sphinx-note-title-bgcolor}      {RGB}{208,222,250} % hsl(219.5, 84%, 90%);
 | |
| \definecolor{sphinx-note-title-fgcolor}      {RGB}{20,93,234}   % hsl(219.5, 84%, 50%);
 | |
| \definecolor{sphinx-success-title-bgcolor}   {RGB}{220,239,230} % hsl(150, 36.7%, 90%);
 | |
| \definecolor{sphinx-success-title-fgcolor}   {RGB}{81,174,128}  % hsl(150, 36.7%, 50%);
 | |
| \definecolor{sphinx-error-title-bgcolor}     {RGB}{238,220,220} % hsl(0, 37%, 90%);
 | |
| \definecolor{sphinx-error-title-fgcolor}     {RGB}{174,80,80}   % hsl(0, 37%, 50%);
 | |
| \definecolor{sphinx-todo-title-bgcolor}      {RGB}{226,204,254} % hsl(266.8, 100%, 90%);
 | |
| \definecolor{sphinx-todo-title-fgcolor}      {RGB}{113,0,255}   % hsl(266.8, 100%, 50%);
 | |
| 
 | |
| % Now use the above colours as default settings, following the choices
 | |
| % done in sphinx13.css
 | |
| \setkeys{sphinx}{
 | |
|   div.note_title-background-TeXcolor=sphinx-note-title-bgcolor,
 | |
|   div.note_title-foreground-TeXcolor=sphinx-note-title-fgcolor,
 | |
| %
 | |
|   div.hint_title-background-TeXcolor=sphinx-success-title-bgcolor,
 | |
|   div.hint_title-foreground-TeXcolor=sphinx-success-title-fgcolor,
 | |
|   div.tip_title-background-TeXcolor=sphinx-success-title-bgcolor,
 | |
|   div.tip_title-foreground-TeXcolor=sphinx-success-title-fgcolor,
 | |
|   div.seealso_title-background-TeXcolor=sphinx-success-title-bgcolor,
 | |
|   div.seealso_title-foreground-TeXcolor=sphinx-success-title-fgcolor,
 | |
|   div.todo_title-background-TeXcolor=sphinx-todo-title-bgcolor,
 | |
|   div.todo_title-foreground-TeXcolor=sphinx-todo-title-fgcolor,
 | |
| %
 | |
|   div.important_title-background-TeXcolor=sphinx-warning-title-bgcolor,
 | |
|   div.important_title-foreground-TeXcolor=sphinx-warning-title-fgcolor,
 | |
|   div.caution_title-background-TeXcolor=sphinx-warning-title-bgcolor,
 | |
|   div.caution_title-foreground-TeXcolor=sphinx-warning-title-fgcolor,
 | |
|   div.warning_title-background-TeXcolor=sphinx-warning-title-bgcolor,
 | |
|   div.warning_title-foreground-TeXcolor=sphinx-warning-title-fgcolor,
 | |
| %
 | |
|   div.attention_title-background-TeXcolor=sphinx-error-title-bgcolor,
 | |
|   div.attention_title-foreground-TeXcolor=sphinx-error-title-fgcolor,
 | |
|   div.danger_title-background-TeXcolor=sphinx-error-title-bgcolor,
 | |
|   div.danger_title-foreground-TeXcolor=sphinx-error-title-fgcolor,
 | |
|   div.error_title-background-TeXcolor=sphinx-error-title-bgcolor,
 | |
|   div.error_title-foreground-TeXcolor=sphinx-error-title-fgcolor,
 | |
| %
 | |
| % 8.1.0 add title rows, but will not use icons per default, so
 | |
| % the fgcolor setting will be used only if user uses title-icon key
 | |
|   div.topic_title-background-TeXcolor=sphinx-admonition-title-bgcolor,
 | |
|   div.topic_title-foreground-TeXcolor=sphinx-admonition-title-fgcolor,
 | |
|   div.contents_title-background-TeXcolor=sphinx-admonition-title-bgcolor,
 | |
|   div.contents_title-foreground-TeXcolor=sphinx-admonition-title-fgcolor,
 | |
|   div.sidebar_title-background-TeXcolor=sphinx-note-title-bgcolor,
 | |
|   div.sidebar_title-foreground-TeXcolor=sphinx-note-title-fgcolor,
 | |
| }
 | |
| 
 | |
| % 7.4.0 Support for icons in admonition titles
 | |
| % We try to
 | |
| % - get Sphinx PDF builds to process fine in absence of fontawesome5
 | |
| % - use fontawesome5 if present, but not if user prefers another package
 | |
| % - provide an interface for using other LaTeX code for icons
 | |
| % - provide an interface for using some other package than fontawesome5
 | |
| % Indeed we can't load fontawesome5 unconditionally even if available,
 | |
| % as it proves incompatible with fontawesome package.
 | |
| % We thus must delay its loading.
 | |
| \IfFileExists{fontawesome5.sty}{%
 | |
|   \DeclareStringOption[fontawesome5]{iconpackage}%
 | |
| }%
 | |
| {%
 | |
|   \IfFileExists{fontawesome.sty}
 | |
|   {\DeclareStringOption[fontawesome]{iconpackage}}
 | |
|   {\DeclareStringOption[none]{iconpackage}}%
 | |
| }%
 | |
| \newcommand\spx@faIcon[2][]{}%
 | |
| % The above \spx@faIcon which gobbles one mandatory and one optional
 | |
| % argument is put into use only if both fontawesome5 and fontawesome
 | |
| % LaTeX packages are not available, as part of the defaults for the
 | |
| % div.*_title-icon keys (these keys can be redefined via the sphinxsetup
 | |
| % interface).
 | |
| %
 | |
| \def\spxstring@fontawesome{fontawesome}
 | |
| \def\spxstring@fontawesomev{fontawesome5}
 | |
| \AtBeginDocument{%
 | |
|   \ifx\spx@opt@iconpackage\spxstring@none
 | |
|   \else
 | |
|       \IfFileExists{\spx@opt@iconpackage.sty}
 | |
|          {\RequirePackage{\spx@opt@iconpackage}%
 | |
|           \ifx\spx@opt@iconpackage\spxstring@fontawesomev
 | |
|               \renewcommand\spx@faIcon{\faIcon}%
 | |
|           \else
 | |
|           \ifx\spx@opt@iconpackage\spxstring@fontawesome
 | |
|               \renewcommand\spx@faIcon[2][]{\faicon{##2}}%
 | |
|               % The \ifdefined's are a bit silly because we know that
 | |
|               % fontawesome.sty does not provide it, but perhaps
 | |
|               % there can be some new release of that package?
 | |
|               \ifdefined\faicon@lightbulb\else
 | |
|                    \let\faicon@lightbulb\faLightbulbO
 | |
|               \fi
 | |
|               \ifdefined\faicon@radiation\else
 | |
|                    \let\faicon@radiation\faBolt
 | |
|               \fi
 | |
|               \ifdefined\faicon@pen\else
 | |
|                    \let\faicon@pen\faPencil
 | |
|               \fi
 | |
|           % if neither has been required, \spx@faIcon will simply swallow
 | |
|           % its argument and it is up to user
 | |
|           % to set the various div.*_title-icon keys appropriately.
 | |
|           \fi\fi %
 | |
|          }%
 | |
|          {%
 | |
|          \sphinxbuildwarning{badiconpackage}%
 | |
|          \PackageWarningNoLine{sphinx}{%
 | |
|             You have set iconpackage=\spx@opt@iconpackage\MessageBreak
 | |
|             But \spx@opt@iconpackage.sty is not found by LaTeX}
 | |
|          }%
 | |
|   \fi
 | |
| }
 | |
| 
 | |
| \setkeys{sphinx}{
 | |
| % Icon defaults.
 | |
|   div.note_title-icon      = \spx@faIcon{info-circle},
 | |
|   div.hint_title-icon      = \spx@faIcon[regular]{lightbulb},
 | |
|   div.tip_title-icon       = \spx@faIcon[regular]{lightbulb},
 | |
|   div.seealso_title-icon   = \spx@faIcon{share},
 | |
|   div.todo_title-icon      = \spx@faIcon{pen},
 | |
|   div.important_title-icon = \spx@faIcon{pause-circle},
 | |
|   div.caution_title-icon   = \spx@faIcon{radiation},
 | |
|   div.warning_title-icon   = \spx@faIcon{exclamation-triangle},
 | |
|   div.attention_title-icon = \spx@faIcon{exclamation-triangle},
 | |
|   div.danger_title-icon    = \spx@faIcon{radiation},
 | |
|   div.error_title-icon     = \spx@faIcon{times-circle},
 | |
| % MEMO: the new at 8.1.0 defaults for contents/topic/sidebar directives
 | |
| % use no icons, they use \sphinxdotitlerow which detects automatically
 | |
| % whether title-icon key has been set or not.
 | |
| }
 | |
| 
 | |
| \newif\ifspx@opt@box@addstrut
 | |
| \expandafter\def\csname KV@sphinx@box_addstrut\endcsname#1{%
 | |
|     \csname spx@opt@box@addstrut#1\endcsname
 | |
| }
 | |
| \expandafter\def\csname KV@sphinx@box_addstrut@default\endcsname{%
 | |
|     \spx@opt@box@addstruttrue
 | |
| }
 | |
| 
 | |
| \DeclareDefaultOption{\@unknownoptionerror}
 | |
| \ProcessKeyvalOptions*
 | |
| % don't allow use of maxlistdepth via \sphinxsetup.
 | |
| \DisableKeyvalOption{sphinx}{maxlistdepth}
 | |
| \DisableKeyvalOption{sphinx}{numfigreset}
 | |
| \DisableKeyvalOption{sphinx}{nonumfigreset}
 | |
| \DisableKeyvalOption{sphinx}{mathnumfig}
 | |
| \DisableKeyvalOption{sphinx}{booktabs}
 | |
| \DisableKeyvalOption{sphinx}{borderless}
 | |
| \DisableKeyvalOption{sphinx}{rowcolors}
 | |
| % 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{\setkeys{sphinx}}
 | |
| 
 | |
| 
 | |
| %% 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
 | |
| \RequirePackage{sphinxoptionshyperref}
 | |
| % pass options to geometry; it must not have been loaded already
 | |
| \RequirePackage{sphinxoptionsgeometry}
 | |
| 
 | |
| 
 | |
| %% 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}
 | |
| \RequirePackage{sphinxlatexgraphics}
 | |
| 
 | |
| 
 | |
| %% FRAMED ENVIRONMENTS
 | |
| %
 | |
| % \sphinxbox added at 6.2.0, its definition is in sphinxpackageboxes.
 | |
| %
 | |
| % Alias all \sphinxsetup "box_" keys to become \sphinxboxsetup no-prefix keys
 | |
| \@tfor\x:={border-width}%
 | |
|           {border-top-width}{border-right-width}{border-bottom-width}{border-left-width}%
 | |
|           {box-decoration-break}% This one is actually useless, as \sphinxbox
 | |
|           % creates an unbreakable horizontal box, not a breakable vertical
 | |
|           % box.  And as is well-known it is very complicated (not to say
 | |
|           % impossible) to create in LaTeX breakable horizontal boxes.  No
 | |
|           % package offers them.  See the complications for the support of
 | |
|           % verbatimforcewraps in sphinxlatexliterals.sty or see the source
 | |
|           % code of the soul or soulutf8 packages.
 | |
|           {padding}%
 | |
|           {padding-top}{padding-right}{padding-bottom}{padding-left}%
 | |
|           {border-radius}%
 | |
|           {border-top-left-radius}{border-top-right-radius}%
 | |
|           {border-bottom-right-radius}{border-bottom-left-radius}%
 | |
|           {box-shadow}%
 | |
|           {border-TeXcolor}{background-TeXcolor}{box-shadow-TeXcolor}{TeXcolor}%
 | |
|           {TeXextras}{addstrut}{addstrut@default}%
 | |
| \do{\expandafter\let\csname KV@sphinxbox@\x\expandafter\endcsname
 | |
|                     \csname KV@sphinx@box_\x\endcsname}
 | |
| % Let \sphinxboxsetup also prepare a "reset", which will be used by nested
 | |
| % boxes; currently and by laziness this is implemented simply by accumulating
 | |
| % all passed options inside some storage, in the order they were given, rather
 | |
| % than saving the box would-be parameters.  Advantage is that this will not
 | |
| % have to be modified if additional keys are added in future (e.g. for
 | |
| % elliptic corners).  Storing obeys TeX groups.  (these details would be
 | |
| % relevant only for some genuine independent LaTeX package and manual user
 | |
| % authored mark-up, not Sphinx auto mark-up).
 | |
| \newcommand\sphinxboxsetup[1]{%
 | |
|     \setkeys{sphinxbox}{#1}%
 | |
|     \expandafter\def\expandafter\spx@boxes@sphinxbox@defaults\expandafter
 | |
|        {\spx@boxes@sphinxbox@defaults,#1}%
 | |
| }
 | |
| \def\spx@boxes@sphinxbox@reset{%
 | |
|   \begingroup\def\x{\endgroup\setkeys{sphinxbox}}%
 | |
|   \expandafter\x\expandafter{\spx@boxes@sphinxbox@defaults}%
 | |
| }
 | |
| % Some of these defaults got already set.  But we now list them all explicitly
 | |
| % for a complete initial configuration of reset storage.
 | |
| % At 7.4.0, \fboxrule and \fboxsep replaced by 0.4pt and 3pt which are anyhow
 | |
| % the defaults for these LaTeX dimensions. 8.2.0 corrected border-radius
 | |
| % default back to 3pt (\fboxsep) not 0.4pt (\fboxrule).
 | |
| \let\spx@boxes@sphinxbox@defaults\@gobble
 | |
| \sphinxboxsetup{%
 | |
|                 border-width=0.4pt,
 | |
|                 padding=3pt,
 | |
|                 border-radius=3pt,
 | |
|                 box-shadow=none,
 | |
| % MEMO: as xcolor is loaded, \spx@defineorletcolor has a "\colorlet" branch
 | |
| % which makes this syntax acceptable and avoids duplicating here the values.
 | |
|                 border-TeXcolor=VerbatimBorderColor,
 | |
|                 background-TeXcolor=VerbatimColor,
 | |
| % 7.4.0 modified the color of the shadow (anyhow box-shadow is set above to none
 | |
| % so no shadow is drawn), to be as the new shadow colour of topic boxes.
 | |
|                 box-shadow-TeXcolor={RGB}{108,108,108},
 | |
|                 TeXextras={},
 | |
|                 addstrut=false,
 | |
|                }%
 | |
| \RequirePackage{sphinxpackageboxes}
 | |
| \RequirePackage{sphinxlatexadmonitions}
 | |
| \RequirePackage{sphinxlatexliterals}
 | |
| \RequirePackage{sphinxlatexshadowbox}
 | |
| 
 | |
| 
 | |
| %% CONTAINERS
 | |
| %
 | |
| \RequirePackage{sphinxlatexcontainers}
 | |
| 
 | |
| 
 | |
| %% PYGMENTS
 | |
| % stylesheet for highlighting with pygments
 | |
| \RequirePackage{sphinxhighlight}
 | |
| 
 | |
| 
 | |
| %% TABLES
 | |
| %
 | |
| \RequirePackage{sphinxlatextables}
 | |
| 
 | |
| 
 | |
| %% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS
 | |
| %
 | |
| \RequirePackage{sphinxlatexnumfig}
 | |
| 
 | |
| 
 | |
| %% LISTS
 | |
| %
 | |
| \RequirePackage{sphinxlatexlists}
 | |
| 
 | |
| 
 | |
| %% 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
 | |
| %
 | |
| \RequirePackage{sphinxlatexindbibtoc}
 | |
| 
 | |
| 
 | |
| %% STYLING
 | |
| %
 | |
| \RequirePackage{sphinxlatexstylepage}
 | |
| \RequirePackage{sphinxlatexstyleheadings}
 | |
| \RequirePackage{sphinxlatexstyletext}
 | |
| 
 | |
| 
 | |
| %% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS
 | |
| %
 | |
| \RequirePackage{sphinxlatexobjects}
 | |
| 
 | |
| 
 | |
| % FIXME: this line should be dropped, as "9" is default anyhow.
 | |
| \ifdefined\pdfcompresslevel\pdfcompresslevel = 9 \fi
 | |
| 
 | |
| 
 | |
| \endinput
 |