|
|
|
|
|
|
|
\ProvidesPackage{sphinxlatexobjects}[2023/07/23 documentation environments] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\newcommand{\moduleauthor}[2]{} |
|
|
|
|
|
\newcommand{\sectionauthor}[2]{} |
|
|
|
|
|
|
|
|
|
|
|
\newcommand{\py@release}{\releasename\space\version} |
|
\newcommand{\version}{} |
|
|
|
\newcommand{\releaseinfo}{} |
|
\newcommand{\setreleaseinfo}[1]{\renewcommand{\releaseinfo}{#1}} |
|
|
|
\newcommand{\release}[1]{\renewcommand{\version}{#1}} |
|
|
|
\newcommand{\releasename}{} |
|
|
|
\newcommand{\sphinxheadercomma}{, } |
|
\newcommand{\sphinxifemptyorblank}[1]{ |
|
|
|
\if&\expandafter\@firstofone\detokenize\expandafter{#1}& |
|
\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} |
|
\AtBeginDocument { |
|
\sphinxifemptyorblank{\releasename} |
|
{\sphinxifemptyorblank{\version}{\let\sphinxheadercomma\empty}{}} |
|
{} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
\newcommand{\py@authoraddress}{} |
|
\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} |
|
|
|
|
|
|
|
|
|
|
|
|
|
\newcommand{\py@itemnewline}[1]{ |
|
|
|
\kern\labelsep |
|
\makebox[\dimexpr\linewidth+\labelwidth\relax][l]{#1} |
|
\kern-\labelsep |
|
} |
|
|
|
\newenvironment{fulllineitems}{ |
|
\begin{list}{}{\labelwidth \leftmargin |
|
\rightmargin \z@ \topsep -\parskip \partopsep \parskip |
|
\itemsep -\parsep |
|
\let\makelabel=\py@itemnewline} |
|
}{\end{list}} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\newlength\sphinxsignaturesep |
|
\setlength\sphinxsignaturesep{\smallskipamount} |
|
|
|
|
|
\newcommand{\pysigstartsignatures}{ |
|
|
|
\edef\pysig@restore@itemsep@and@parskip{ |
|
\itemsep\the\itemsep\relax |
|
\parskip\the\parskip\relax |
|
} |
|
|
|
\parskip\z@skip |
|
\itemsep\sphinxsignaturesep |
|
} |
|
\newcommand{\pysigstopsignatures}{ |
|
|
|
|
|
\penalty-100 |
|
|
|
|
|
\leavevmode\par\kern-\baselineskip\item[\strut] |
|
|
|
\leavevmode |
|
|
|
|
|
|
|
\pysig@restore@itemsep@and@parskip |
|
} |
|
|
|
|
|
\newlength\sphinxsignaturelistskip |
|
\setlength\sphinxsignaturelistskip{0pt} |
|
\newcommand{\pysigtypelistopen}{\hskip\sphinxsignaturelistskip\sphinxcode{[}} |
|
\newcommand{\pysigtypelistclose}{\sphinxcode{]}} |
|
\newcommand{\pysigarglistopen}{\hskip\sphinxsignaturelistskip\sphinxcode{(}} |
|
\newcommand{\pysigarglistclose}{\sphinxcode{)}} |
|
|
|
|
|
|
|
\newlength{\py@argswidth} |
|
\newcommand{\py@sigparams}[2]{ |
|
|
|
|
|
\parbox[t]{\py@argswidth}{\raggedright #1\pysigarglistclose#2\strut} |
|
|
|
} |
|
\newcommand{\py@sigparamswithtypelist}[3]{ |
|
|
|
|
|
|
|
\parbox[t]{\py@argswidth}{ |
|
\raggedright #1\pysigtypelistclose |
|
\pysigarglistopen#2\pysigarglistclose |
|
#3\strut} |
|
} |
|
|
|
\newcommand{\pysigline}[1]{ |
|
|
|
|
|
|
|
\py@argswidth=\dimexpr\linewidth+\labelwidth\relax\relax |
|
\item[{\parbox[t]{\py@argswidth}{\raggedright #1\strut}}] |
|
\pysigadjustitemsep |
|
} |
|
\newcommand{\pysiglinewithargsret}[3]{ |
|
|
|
|
|
\let\spx@label\label\let\label\@gobble |
|
\settowidth{\py@argswidth}{#1\pysigarglistopen} |
|
\let\label\spx@label |
|
\py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax |
|
\item[{#1\pysigarglistopen\py@sigparams{#2}{#3}\strut}] |
|
\pysigadjustitemsep |
|
} |
|
\newcommand{\pysiglinewithargsretwithtypelist}[4]{ |
|
|
|
\let\spx@label\label\let\label\@gobble |
|
\settowidth{\py@argswidth}{#1\pysigtypelistopen} |
|
\let\label\spx@label |
|
\py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax |
|
\item[{#1\pysigtypelistopen\py@sigparamswithtypelist{#2}{#3}{#4}\strut}] |
|
\pysigadjustitemsep |
|
} |
|
|
|
\def\sphinxoptionalextraspace{0.5mm} |
|
\newcommand{\pysigwithonelineperarg}[3]{ |
|
|
|
\item[#1\pysigarglistopen\strut] |
|
\leavevmode\par\nopagebreak |
|
|
|
\begingroup |
|
\let\sphinxparamcomma\sphinxparamcommaoneperline |
|
\def\sphinxoptionalhook{\ifvmode\else\kern\sphinxoptionalextraspace\relax\fi} |
|
|
|
|
|
\global\let\spx@sphinxparam\sphinxparam |
|
\gdef\sphinxparam{\gdef\sphinxparam{\par\spx@sphinxparam}\spx@sphinxparam} |
|
#2\par |
|
\endgroup |
|
\global\let\sphinxparam\spx@sphinxparam |
|
|
|
\nopagebreak\noindent\kern-\labelwidth\pysigarglistclose{#3} |
|
\pysigadjustitemsep |
|
} |
|
\newcommand{\pysigwithonelineperargwithonelinepertparg}[4]{ |
|
|
|
|
|
\item[#1\pysigtypelistopen\strut] |
|
\leavevmode\par\nopagebreak |
|
\begingroup |
|
\let\sphinxparamcomma\sphinxparamcommaoneperline |
|
|
|
|
|
|
|
\let\spx@sphinxtypeparam\sphinxtypeparam |
|
\def\sphinxtypeparam{\def\sphinxtypeparam{\par\spx@sphinxtypeparam}\spx@sphinxtypeparam} |
|
#2\par |
|
\endgroup |
|
\nopagebreak\noindent\kern-\labelwidth\pysigtypelistclose |
|
|
|
\pysigarglistopen\strut\par\nopagebreak |
|
\begingroup |
|
\let\sphinxparamcomma\sphinxparamcommaoneperline |
|
\def\sphinxoptionalhook{\ifvmode\else\kern\sphinxoptionalextraspace\relax\fi} |
|
\global\let\spx@sphinxparam\sphinxparam |
|
\gdef\sphinxparam{\gdef\sphinxparam{\par\spx@sphinxparam}\spx@sphinxparam} |
|
#3\par |
|
\endgroup |
|
\global\let\sphinxparam\spx@sphinxparam |
|
\nopagebreak\noindent\kern-\labelwidth\pysigarglistclose{#4} |
|
\pysigadjustitemsep |
|
} |
|
\newcommand{\pysiglinewithargsretwithonelinepertparg}[4]{ |
|
|
|
|
|
\item[#1\pysigtypelistopen\strut] |
|
\leavevmode\par\nopagebreak |
|
\begingroup |
|
\let\sphinxparamcomma\sphinxparamcommaoneperline |
|
|
|
|
|
|
|
\let\spx@sphinxtypeparam\sphinxtypeparam |
|
\def\sphinxtypeparam{\def\sphinxtypeparam{\par\spx@sphinxtypeparam}\spx@sphinxtypeparam} |
|
#2\par |
|
\endgroup |
|
\nopagebreak\noindent\kern-\labelwidth\pysigtypelistclose |
|
|
|
\pysigarglistopen#3\pysigarglistclose#4\strut |
|
\pysigadjustitemsep |
|
} |
|
\newcommand{\pysigwithonelineperargwithtypelist}[4]{ |
|
|
|
|
|
\let\spx@label\label\let\label\@gobble |
|
\settowidth{\py@argswidth}{#1\pysigtypelistopen} |
|
\let\label\spx@label |
|
\py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax |
|
\item[{#1\pysigtypelistopen\parbox[t]{\py@argswidth}{ |
|
\raggedright #2\pysigtypelistclose\pysigarglistopen\strut}\strut}] |
|
|
|
\begingroup |
|
\let\sphinxparamcomma\sphinxparamcommaoneperline |
|
\def\sphinxoptionalhook{\ifvmode\else\kern\sphinxoptionalextraspace\relax\fi} |
|
\global\let\spx@sphinxparam\sphinxparam |
|
\gdef\sphinxparam{\gdef\sphinxparam{\par\spx@sphinxparam}\spx@sphinxparam} |
|
#3\par |
|
\endgroup |
|
\global\let\sphinxparam\spx@sphinxparam |
|
\nopagebreak\noindent\kern-\labelwidth\pysigarglistclose{#4} |
|
\pysigadjustitemsep |
|
} |
|
\newcommand{\pysigadjustitemsep}{ |
|
|
|
|
|
\ifsphinxsigismultiline |
|
|
|
|
|
|
|
\itemsep\z@skip |
|
\else |
|
\itemsep\sphinxsignaturesep |
|
\fi |
|
} |
|
\newif\ifsphinxsigismultiline |
|
\newcommand{\pysigstartmultiline}{\sphinxsigismultilinetrue} |
|
\newcommand{\pysigstopmultiline}{\sphinxsigismultilinefalse\itemsep\sphinxsignaturesep} |
|
|
|
|
|
|
|
\newenvironment{productionlist}{ |
|
|
|
\def\production##1##2{\\\sphinxcode{\sphinxupquote{##1}}&::=&\sphinxcode{\sphinxupquote{##2}}} |
|
\def\productioncont##1{\\& &\sphinxcode{\sphinxupquote{##1}}} |
|
\parindent=2em |
|
\indent |
|
\setlength{\LTpre}{0pt} |
|
\setlength{\LTpost}{0pt} |
|
\begin{longtable}[l]{lcl} |
|
}{ |
|
\end{longtable} |
|
} |
|
|
|
|
|
|
|
|
|
\newenvironment{definitions}{ |
|
\begin{description} |
|
\def\term##1{\item[{##1}]\mbox{}\\*[0mm]} |
|
}{ |
|
\end{description} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
\newcommand{\optionlistlabel}[1]{\normalfont\bfseries #1 \hfill} |
|
\newenvironment{optionlist}[1] |
|
{\begin{list}{} |
|
{\setlength{\labelwidth}{#1} |
|
\setlength{\rightmargin}{1cm} |
|
\setlength{\leftmargin}{\rightmargin} |
|
\addtolength{\leftmargin}{\labelwidth} |
|
\addtolength{\leftmargin}{\labelsep} |
|
\renewcommand{\makelabel}{\optionlistlabel}} |
|
}{\end{list}} |
|
|
|
\newlength{\lineblockindentation} |
|
\setlength{\lineblockindentation}{2.5em} |
|
\newenvironment{lineblock}[1] |
|
{\begin{list}{} |
|
{\setlength{\partopsep}{\parskip} |
|
\addtolength{\partopsep}{\baselineskip} |
|
\topsep0pt\itemsep0.15\baselineskip\parsep0pt |
|
\leftmargin#1\relax} |
|
\raggedright} |
|
{\end{list}} |
|
|
|
|
|
|
|
|
|
\providecommand*{\DUrole}[2]{ |
|
\ifcsname DUrole\detokenize{#1}\endcsname |
|
\csname DUrole\detokenize{#1}\endcsname{#2} |
|
\else |
|
\ifcsname docutilsrole\detokenize{#1}\endcsname |
|
\csname docutilsrole\detokenize{#1}\endcsname{#2} |
|
\else |
|
#2 |
|
\fi |
|
\fi |
|
} |
|
|
|
\providecommand*{\DUprovidelength}[2]{ |
|
\ifdefined#1\else\newlength{#1}\setlength{#1}{#2}\fi |
|
} |
|
|
|
\DUprovidelength{\DUlineblockindent}{2.5em} |
|
\ifdefined\DUlineblock\else |
|
\newenvironment{DUlineblock}[1]{ |
|
\list{}{\setlength{\partopsep}{\parskip} |
|
\addtolength{\partopsep}{\baselineskip} |
|
\setlength{\topsep}{0pt} |
|
\setlength{\itemsep}{0.15\baselineskip} |
|
\setlength{\parsep}{0pt} |
|
\setlength{\leftmargin}{#1}} |
|
\raggedright |
|
} |
|
{\endlist} |
|
\fi |
|
|
|
\endinput |
|
|