diff --git a/doc/utils/sphinx-config/conf.py.in b/doc/utils/sphinx-config/conf.py.in index c0805ba6b1..fc9e68c4df 100644 --- a/doc/utils/sphinx-config/conf.py.in +++ b/doc/utils/sphinx-config/conf.py.in @@ -57,6 +57,7 @@ extensions = [ 'table_from_list', 'tab_or_note', 'breathe', + 'sphinx_design' ] images_config = { @@ -68,7 +69,7 @@ images_config = { templates_path = ['_templates'] # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = {'.rst': 'restructuredtext'} # The encoding of source files. #source_encoding = 'utf-8-sig' @@ -296,6 +297,7 @@ latex_elements = { \setcounter{tocdepth}{2} \renewcommand{\sfdefault}{ptm} % Use Times New Roman font for \textrm \renewcommand{\sfdefault}{phv} % Use Helvetica font for \textsf +\usepackage[columns=1]{idxlayout} % create index with only one column % Set up math fonts to match text fonts \DeclareSymbolFont{operators} {OT1}{ptm}{m}{n} \DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n} @@ -340,6 +342,11 @@ latex_elements = { ''' } +# copy custom style file for tweaking index layout +latex_additional_files = [ + 'latex/idxlayout.sty', 'latex/ellipse.sty', + 'latex/pict2e.sty', 'latex/p2e-pdftex.def', +] # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). @@ -382,6 +389,12 @@ man_pages = [ #man_show_urls = False +# strip off LAMMPS_NS:: from index entries +cpp_index_common_prefix = [ + 'LAMMPS_NS::', + '_LMP_STYLE_CONST::', '_LMP_TYPE_CONST::', '_LMP_VAR_CONST::', +] + # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples diff --git a/doc/utils/sphinx-config/latex/ellipse.sty b/doc/utils/sphinx-config/latex/ellipse.sty new file mode 100644 index 0000000000..7c0ecb3e91 --- /dev/null +++ b/doc/utils/sphinx-config/latex/ellipse.sty @@ -0,0 +1,318 @@ +%% +%% This is file `ellipse.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ellipse.dtx (with options: `package') +%% +%% Copyright (C) 2015 +%% Daan Leijen +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{ellipse} + [2004/11/05 v1.0 .dtx ellipse file] +\RequirePackage{pict2e} + +\providecommand*\pIIe@csedef[1]{\expandafter\edef\csname #1\endcsname} +\newcommand*\pIIe@ellip@csqrt[3]{% + \@ovxx=#1\relax + \ifdim\@ovxx<\z@\@ovxx-\@ovxx\fi + \@ovyy=#2\relax + \ifdim\@ovyy<\z@\@ovyy-\@ovyy\fi + \edef\pIIe@csname{@csqrt(\number\@ovxx,\number\@ovyy)}% + \expandafter\ifx\csname\pIIe@csname\endcsname\relax + \pIIe@ellip@csqrt@% + \pIIe@csedef{\pIIe@csname}{\the\dimen@}% + #3\dimen@ + \else + #3\dimexpr\csname\pIIe@csname\endcsname\relax + \fi +} +\newcommand*\pIIe@ellip@csqrt@{% + \@ovdx\@ovxx + \advance\@ovdx by \@ovyy + \dimen@0.7071067\@ovdx + \ifdim\dimen@<\@ovyy\dimen@\@ovyy\fi + \ifdim\dimen@<\@ovxx\dimen@\@ovxx\fi + \ifdim\@ovdx<128\p@ + \edef\@tempa{\strip@pt\@ovxx}% + \@ovxx\@tempa\@ovxx + \edef\@tempa{\strip@pt\@ovyy}% + \@ovyy\@tempa\@ovyy + \advance\@ovxx by \@ovyy + \advance\dimen@ by \dimexpr1pt * \@ovxx/\dimen@\relax + \divide\dimen@ by 2% + \advance\dimen@ by \dimexpr1pt * \@ovxx/\dimen@\relax + \divide\dimen@ by 2% + \fi +} + +\newcommand*\pIIe@atan@{% + \@tempdima\dimen@ + \@tempdimb\@tempdima + \ifdim\@tempdimb<\z@\@tempdimb-\@tempdimb\fi + \dimen@0.0663\@tempdimb + \advance\dimen@ 0.2447pt\relax + \advance\@tempdimb -1pt\relax + \edef\@tempa{\strip@pt\@tempdimb}% + \dimen@\@tempa\dimen@ + \edef\@tempa{\strip@pt\@tempdima}% + \dimen@\@tempa\dimen@ + \dimen@-\dimen@ + \advance\dimen@ 0.7853\@tempdima +} + +\newcommand*\pIIe@atantwo[3]{% + \edef\pIIe@csname{@atan2(\number\dimexpr#1\relax,\number\dimexpr#2\relax)}% + \expandafter\ifx\csname\pIIe@csname\endcsname\relax + \pIIe@atantwo@{#1}{#2}{#3}% + \pIIe@csedef{\pIIe@csname}{\the\dimexpr#3\relax}% + \else + #3\dimexpr\csname\pIIe@csname\endcsname\relax + \fi +} + +\newcommand*\pIIe@atantwo@[3]{% + \@tempdima\dimexpr#2\relax + \@tempdimb\dimexpr#1\relax + \ifdim\@tempdima=\z@\relax + \ifdim\@tempdimb>\z@\relax\dimen@90\p@ + \else\ifdim\@tempdimb<\z@\relax\dimen@-90\p@ + \else\dimen@0\p@ + \fi\fi + \else + \@tempdimd\z@ + \ifdim\@tempdima<\z@\relax + \ifdim\@tempdimb<\z@\relax\@tempdimd-180\p@ + \else\@tempdimd180\p@ + \fi + \fi + \dimen@\dimexpr1pt * \@tempdimb/\@tempdima\relax + \@tempdimc\dimen@ + \ifdim\@tempdimc<\z@\relax\@tempdimc-\@tempdimc\fi + \ifdim\@tempdimc>\p@\relax + \dimen@\dimexpr1pt * \@tempdima/\@tempdimb\relax + \ifdim\dimen@<\z@\relax\def\@tempsign{-}\else\def\@tempsign{}\fi + \pIIe@atan@ + \dimen@-\dimen@ + \advance\dimen@ by \@tempsign1.5707pt\relax + \else + \pIIe@atan@ + \fi + \dimen@57.29578\dimen@ + \advance\dimen@ by \@tempdimd + \fi + #3\dimen@% +} + +\newcommand*\pIIe@noneto[2]{} +\newcommand*\pIIe@ellip@sincost@[2]{% + \CalculateSin{#1}% + \CalculateCos{#1}% + \@tempdima\UseSin{#1}\p@ + \@tempdimb\UseCos{#1}\p@ + \ifdim\@tempdima=\p@\relax + \pIIe@csedef{@ellipsin#2}{1}% + \pIIe@csedef{@ellipcos#2}{0}% + \else\ifdim\@tempdima=-\p@\relax + \pIIe@csedef{@ellipsin#2}{-1}% + \pIIe@csedef{@ellipcos#2}{0}% + \else + \@tempdimc\@ellipratio\dimexpr1pt * \@tempdima/\@tempdimb\relax + %\typeout{ i#2=\the\@tempdimc, sin(#1)=\the\@tempdima}% + \pIIe@ellip@csqrt{\p@}{\@tempdimc}\@tempdimd + \ifdim\@tempdimb<\z@\relax\@tempdimd-\@tempdimd\fi + \pIIe@csedef{@ellipsin#2}{\strip@pt\dimexpr1pt * \@tempdimc/\@tempdimd\relax}% + \pIIe@csedef{@ellipcos#2}{\strip@pt\dimexpr1pt * \p@/\@tempdimd\relax}% + \fi\fi +} + +\newcommand*\pIIe@ellip@sincost[2]{% + %\typeout{ calc sin cos: angles (#1,#2), radii: (\the\@ovro,\the\@ovri)}% + \edef\@ellipratio{\strip@pt\dimexpr1pt * \@ovro/\@ovri\relax}% + \pIIe@ellip@sincost@{#1}{one}% + \pIIe@ellip@sincost@{#2}{two}% + %\typeout{ sincos(a=#1)=(\@ellipsinone,\@ellipcosone), sincos(a=#2)=(\@ellipsintwo,\@ellipcostwo), }% +} +\newcommand*\pIIe@omega[3]{% + \@tempdima\csname @ellipcos#3\endcsname\@ovro + \advance\@tempdima by #1\relax + \@tempdimb\csname @ellipsin#3\endcsname\@ovri + \advance\@tempdimb by #2\relax +} + +\newcommand*\pIIe@omegai[1]{% + \@tempdimc\csname @ellipsin#1\endcsname\@ovro + \@tempdimc-\@tempdimc + \@tempdimd\csname @ellipcos#1\endcsname\@ovri +} + +\newcommand*\pIIe@ellip@kappa{% + \@ovyy\@ellipsinone\p@ + \@ovxx\@ellipcosone\p@ + \@tempdima\@ellipcostwo\@ovyy + \@tempdima-\@tempdima + \advance\@tempdima by \@ellipsintwo\@ovxx + \@tempdimb\@ellipcostwo\@ovxx + \advance\@tempdimb by \@ellipsintwo\@ovyy + \ifdim\@tempdima=\z@\relax + \edef\@ellipkappa{0}% + \else + \dimen@\dimexpr1pt - \@tempdimb\relax + \dimen@\dimexpr1pt * \dimen@/\@tempdima\relax + \pIIe@ellip@csqrt{2\p@}{1.73205\dimen@}{\dimen@}% + \advance\dimen@ by -\p@ + \divide\dimen@ by 3% + \edef\@tempa{\strip@pt\@tempdima}% + \dimen@\@tempa\dimen@ + \edef\@ellipkappa{\strip@pt\dimen@}% + \fi + %\typeout{ calculated kappa: \@ellipkappa}% +} + +\newcommand*\pIIe@elliparc@[5]{% + %\typeout{elliparc: #1, center: (#2, #3), radius (\the\@ovro, \the\@ovri),angle (#4, #5)}% + \ifcase #1\relax + \let\@ellip@startto\pIIe@lineto + \or \let\@ellip@startto\pIIe@moveto + \or \let\@ellip@startto\pIIe@noneto% + \else\PackageWarning{ellipse}{Illegal initial action in \protect\elliparc: % + must be one of 0 (lineto), 1 (moveto) or 2 (do nothing) but I got: #1}% + \fi + \ifdim\@ovro=\z@\relax\@ovri\z@\fi + \ifdim\@ovri=\z@\relax + \@ellip@startto{#2}{#3}% + \else + \pIIe@ellip@sincost{#4}{#5}% + \pIIe@elliparc@draw{#2}{#3}% + \fi +} +\newcommand*\pIIe@elliparc@t[5]{% + \ifcase #1\relax + \let\@ellip@startto\pIIe@lineto + \or \let\@ellip@startto\pIIe@moveto + \or \let\@ellip@startto\pIIe@noneto% + \else\PackageWarning{ellipse}{Illegal initial action in \protect\elliparc: % + must be one of 0 (lineto), 1 (moveto) or 2 (do nothing) but I got: #1}% + \fi + \ifdim\@ovro=\z@\relax\@ovri\z@\fi + \ifdim\@ovri=\z@\relax + \@ellip@startto{#2}{#3}% + \else + \CalculateSin{#4}\CalculateCos{#4}% + \edef\@ellipsinone{\UseSin{#4}}% + \edef\@ellipcosone{\UseCos{#4}}% + \CalculateSin{#5}\CalculateCos{#5}% + \edef\@ellipsintwo{\UseSin{#5}}% + \edef\@ellipcostwo{\UseCos{#5}}% + \pIIe@elliparc@draw{#2}{#3}% + \fi +} +\newcommand*\pIIe@elliparc@draw[2]{% + \pIIe@ellip@kappa% + \pIIe@omega{#1}{#2}{one}% + %\typeout{ point one: (\the\@tempdima,\the\@tempdimb)}% + \@ellip@startto\@tempdima\@tempdimb + \pIIe@omegai{one}% + \advance\@tempdima by \@ellipkappa\@tempdimc + \advance\@tempdimb by \@ellipkappa\@tempdimd + \pIIe@add@nums\@tempdima\@tempdimb + %\typeout{ control one: (\the\@tempdima,\the\@tempdimb)}% + \pIIe@omega{#1}{#2}{two}% + \pIIe@omegai{two}% + \@tempdimc\@ellipkappa\@tempdimc + \@tempdimd\@ellipkappa\@tempdimd + \@tempdimc-\@tempdimc + \@tempdimd-\@tempdimd + \advance\@tempdimc by \@tempdima + \advance\@tempdimd by \@tempdimb + \pIIe@add@nums\@tempdimc\@tempdimd + %\typeout{ control two: (\the\@tempdimc,\the\@tempdimd)}% + \pIIe@add@CP\@tempdima\@tempdimb + %\typeout{ point two: (\the\@tempdima,\the\@tempdimb)}% + \pIIe@addtoGraph\pIIe@curveto@op +} +\newcommand*\pIIe@elliparc[7][0]{% + \@ovro #4\relax + \@ovri #5\relax + \iffalse%dim\@ovro=\@ovri + \pIIe@arc[#1]{#2}{#3}{#4}{#6}{#7} + \else + \ifdim \@ovro<\z@ \pIIe@badcircarg\else + \ifdim \@ovri<\z@ \pIIe@badcircarg\else + \@arclen #7\p@ \advance\@arclen -#6\p@ + \ifdim \@arclen<\z@ \def\@tempsign{-}\else\def\@tempsign{}\fi + \ifdim \@tempsign\@arclen>720\p@ + \PackageWarning {ellipse}{The arc angle is reduced to -720..720}% + \@whiledim \@tempsign\@arclen>720\p@ \do {\advance\@arclen-\@tempsign360\p@}% + \@tempdima #6\p@ \advance\@tempdima \@arclen + \edef\@angleend{\strip@pt\@tempdima}% + \pIIe@@elliparc{#1}{#2}{#3}{#6}{\@angleend}% + \else + \pIIe@@elliparc{#1}{#2}{#3}{#6}{#7}% + \fi + \fi + \fi + \fi +} +\newcommand*\pIIe@@elliparc[5]{% + \begingroup + \ifdim \@tempsign\@arclen>90\p@ + \divide\@arclen 2% + \@tempdima #4\p@\advance\@tempdima by \@arclen + \edef\@anglemid{\strip@pt\@tempdima}% + \def\@tempa{\pIIe@@elliparc{#1}{#2}{#3}{#4}}% + \expandafter\@tempa\expandafter{\@anglemid}% + \def\@tempa{\pIIe@@elliparc{2}{#2}{#3}}% + \expandafter\@tempa\expandafter{\@anglemid}{#5}% + \else + \pIIe@elliparc@{#1}{#2}{#3}{#4}{#5}% + \fi + \endgroup +}% + +\newcommand*\pIIeelliparc[7][0]{% + \@killglue + \pIIe@elliparc[#1]{#2\unitlength}{#3\unitlength}{#4\unitlength}{#5\unitlength}{#6}{#7}% + \ignorespaces% +} +\ifx\undefined\elliparc\else + \PackageWarning{ellipse}{\protect\elliparc\space is redefined}% +\fi +\let\elliparc\pIIeelliparc + +\newcommand*\pIIeearc + {\@ifstar{\@tempswatrue\pIIe@earc@}{\@tempswafalse\pIIe@earc@}} +\newcommand*\pIIe@earc@[3][0,360]{\pIIe@earc@@(#1){#2}{#3}} +\def\pIIe@earc@@(#1,#2)#3#4{% + \if@tempswa + \pIIe@moveto\z@\z@ + \pIIe@elliparc{\z@}{\z@}{#3\unitlength}{#4\unitlength}{#1}{#2}% + \pIIe@closepath\pIIe@fillGraph + \else + \pIIe@elliparc[1]{\z@}{\z@}{#3\unitlength}{#4\unitlength}{#1}{#2}% + \pIIe@strokeGraph + \fi} +\ifx\undefined\earc\else + \PackageWarning{ellipse}{\protect\earc\space is redefined}% +\fi +\let\earc\pIIeearc + +\newcommand*\pIIeellipse + {\@ifstar{\@tempswatrue\pIIe@earc@}{\@tempswafalse\pIIe@earc@}} +\let\ellipse\pIIeellipse + +\endinput +%% +%% End of file `ellipse.sty'. diff --git a/doc/utils/sphinx-config/latex/idxlayout.sty b/doc/utils/sphinx-config/latex/idxlayout.sty new file mode 100644 index 0000000000..76015e8f1e --- /dev/null +++ b/doc/utils/sphinx-config/latex/idxlayout.sty @@ -0,0 +1,279 @@ +%% +%% This is file `idxlayout.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% idxlayout.dtx (with options: `package') +%% +%% Copyright (C) 2010--2012 by Thomas Titz +%% +%% Permission is granted to distribute and/or modify this work under the +%% terms of the LaTeX Project Public License (LPPL), version 1.3c or +%% later. +%% +%% The LPPL maintenance status of this work is "maintained". +%% +%% This work consists of the files idxlayout.dtx, idxlayout.ins and +%% README and the derived files idxlayout.pdf and idxlayout.sty. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{idxlayout}[2012/03/30 v0.4d Configurable index layout] +\RequirePackage{etoolbox,kvoptions,multicol} +\SetupKeyvalOptions{family=ila,prefix=ila@} +\newcommand*{\ila@defradiokey}[3][]{% + \define@key{ila}{#2}[#1]{% + \ifcsname ila@#3@##1\endcsname + \csname ila@#3@##1\expandafter\endcsname + \else + \PackageError{idxlayout}{Unknown value ##1 for option #2}% + \fi + }% +} +\newcounter{idxcols} +\define@key{ila}{columns}{\setcounter{idxcols}{#1}} +\setkeys{ila}{columns=2} +\@ifclassloaded{memoir}{% + \ifbool{onecolindex}{% + \setkeys{ila}{columns=1}% + }{% + }% + \appto{\onecolindex}{\setkeys{ila}{columns=1}}% + \appto{\twocolindex}{\setkeys{ila}{columns=2}}% +}{% + \newlength{\indexcolsep}% + \setlength{\indexcolsep}{35\p@}% + \newlength{\indexrule}% + \setlength{\indexrule}{\z@}% +} +\define@key{ila}{columnsep}{\setlength{\indexcolsep}{#1}} +\define@key{ila}{rule}{\setlength{\indexrule}{#1}} +\DeclareBoolOption{unbalanced} +\newlength{\ila@indentunit} +\define@key{ila}{indentunit}{\setlength{\ila@indentunit}{#1}} +\setkeys{ila}{indentunit=20\p@} +\DeclareStringOption{hangindent} +\DeclareStringOption{subindent} +\DeclareStringOption{subsubindent} +\renewcommand{\@idxitem}{\par\setlength{\hangindent}{\ila@hangindent}} +\def\ila@it@abshang{% + \renewcommand*{\ila@hangindent}{2\ila@indentunit}% + \renewcommand*{\ila@subindent}{\ila@indentunit}% + \renewcommand*{\ila@subsubindent}{1.5\ila@indentunit}% + \renewcommand{\subitem}{\@idxitem\hspace*{\ila@subindent}}% + \renewcommand{\subsubitem}{\@idxitem\hspace*{\ila@subsubindent}}% +} +\def\ila@it@relhang{% + \renewcommand*{\ila@hangindent}{1.5\ila@indentunit}% + \renewcommand*{\ila@subindent}{\ila@indentunit}% + \renewcommand*{\ila@subsubindent}{2\ila@indentunit}% + \renewcommand{\subitem}{% + \par + \deflength{\hangindent}{\ila@hangindent + \ila@subindent}% + \hspace*{\ila@subindent}% + }% + \renewcommand{\subsubitem}{% + \par + \deflength{\hangindent}{\ila@hangindent + \ila@subsubindent}% + \hspace*{\ila@subsubindent}% + }% +} +\newcommand*{\indexsubsdelim}{; } +\def\ila@it@singlepar{% + \renewcommand*{\ila@hangindent}{\ila@indentunit}% + \renewcommand{\subitem}{\unskip\indexsubsdelim}% + \renewcommand{\subsubitem}{\unskip\indexsubsdelim}% +} +\ila@defradiokey{itemlayout}{it} +\setkeys{ila}{itemlayout=abshang} +\newlength{\ila@initsep} +\define@key{ila}{initsep}{\setlength{\ila@initsep}{#1}} +\setkeys{ila}{initsep=10\p@ \@plus 5\p@ \@minus 3\p@} +\DeclareStringOption[\ila@initsep]{notesep} +\DeclareStringOption[80\p@]{minspace} +\renewcommand{\indexspace}{\par\vspace{\ila@initsep}} +\DeclareBoolOption{columnnote} +\newcommand*{\indexfont}{} +\def\ila@fo@current{\renewcommand*{\indexfont}{}} +\def\ila@fo@normalsize{\renewcommand*{\indexfont}{\normalsize}} +\def\ila@fo@small{\renewcommand*{\indexfont}{\small}} +\def\ila@fo@footnotesize{\renewcommand*{\indexfont}{\footnotesize}} +\ila@defradiokey{font}{fo} +\setkeys{ila}{font=current} +\newcommand*{\indexjustific}{} +\def\ila@ju@standard{% + \renewcommand*{\indexjustific}{% + \setlength{\parindent}{\z@}% + \setlength{\parfillskip}{\z@ \@plus 1fil}% + }% +} +\def\ila@ju@raggedright{\renewcommand*{\indexjustific}{\raggedright}} +\newcommand*{\ila@RaggedRight}{} +\def\ila@ju@RaggedRight{% + \renewcommand*{\indexjustific}{\ila@RaggedRight}% +} +\AtEndPreamble{% + \IfFileExists{ragged2e.sty}{% + \RequirePackage{ragged2e}% + \renewcommand*{\ila@RaggedRight}{\RaggedRight}% + }{% + \PackageWarning{idxlayout}{% + Package ragged2e not available, therefore\MessageBreak + substituting command raggedright for RaggedRight\MessageBreak + }% + \renewcommand*{\ila@RaggedRight}{\raggedright}% + }% +} +\ila@defradiokey{justific}{ju} +\setkeys{ila}{justific=standard} +\newcommand{\ila@prenote}{} +\newcommand{\setindexprenote}[1]{% + \def\ila@prenote{% + \begingroup#1\par\nobreak\endgroup + \vspace{\ila@notesep}% + }% +} +\newcommand*{\noindexprenote}{\let\ila@prenote\relax} +\noindexprenote +\newcommand*{\indexstheadcase}{\MakeUppercase} +\newcommand*{\ila@classtype}{0} +\@ifclassloaded{memoir}{% + \def\ila@classtype{2}% +}{% + \ifundef{\KOMAClassName}{% + }{% + \def\ila@classtype{1}% + }% +} +\ifcase\ila@classtype\relax + \DeclareBoolOption{totoc}% + \def\ila@prologue{% + \ifundef{\chapter}{% + \section*{\indexname}% + \ifbool{ila@totoc}{% + \addcontentsline{toc}{section}{\indexname}% + }{% + }% + }{% + \chapter*{\indexname}% + \ifbool{ila@totoc}{% + \addcontentsline{toc}{chapter}{\indexname}% + }{% + }% + }% + \@mkboth{\indexstheadcase\indexname}{\indexstheadcase\indexname}% + } +\or + \def\ila@tc@true{\KOMAoptions{index=totoc}}% + \def\ila@tc@false{\KOMAoptions{index=nottotoc}}% + \ila@defradiokey[true]{totoc}{tc}% + \providecommand{\MakeMarkcase}[1]{#1}% + \def\ila@prologue{% + \ifundef{\chapter}{% + }{% + \ifundef{\index@preamble}{% + }{% + \setchapterpreamble{\index@preamble}% + }% + }% + \idx@@heading{\indexname}% + \@mkboth{\MakeMarkcase{\indexname}}{\MakeMarkcase{\indexname}}% + \ifundef{\chapter}{% + }{% + \thispagestyle{\indexpagestyle}% + }% + } +\or + \def\ila@tc@true{\boolfalse{noindexintoc}}% + \def\ila@tc@false{\booltrue{noindexintoc}}% + \ila@defradiokey[true]{totoc}{tc}% + \def\ila@prologue{% + \chapter*{\indexname}% + \ifbool{noindexintoc}{% + }{% + \addcontentsline{toc}{chapter}{\indexname}% + }% + \ifbool{artopt}{% + }{% + \thispagestyle{indextitlepagestyle}% + }% + \indexmark + \preindexhook + } +\fi +\@ifpackageloaded{index}{% + \@ifpackagelater{index}{2004/01/21}{% + \let\ila@packindadjust\relax + }{% + \def\ila@packindadjust{% + \edef\indexname{\the\@nameuse{idxtitle@\@indextype}}% + \ifdefempty{\index@prologue}{% + }{% + \setindexprenote{\index@prologue}% + }% + }% + }% +}{% + \let\ila@packindadjust\relax +} +\ProcessKeyvalOptions* +\newcommand*{\idxlayout}[1]{\setkeys{ila}{#1}} +\renewenvironment{theindex}{% + \ifbool{@twocolumn}{% + \boolfalse{@restonecol}% + \onecolumn + }{% + \booltrue{@restonecol}% + }% + \setlength{\multicolsep}{\z@}% + \setlength{\columnsep}{\indexcolsep}% + \setlength{\columnseprule}{\indexrule}% + \ila@packindadjust + \def\ila@prologueplus{% + \ila@prologue + \indexfont + \ifbool{ila@columnnote}{% + }{% + \ila@prenote + }% + }% + \ifnumcomp{\theidxcols}{<}{\tw@}{% + \ila@prologueplus + }{% + \ifbool{ila@unbalanced}{% + \begin{multicols*}{\theidxcols}[\ila@prologueplus][\ila@minspace]% + }{% + \begin{multicols}{\theidxcols}[\ila@prologueplus][\ila@minspace]% + }% + }% + \setlength{\parskip}{\z@ \@plus 0.3\p@}% + \indexjustific + \ifundef{\chapter}{% + \ifundef{\index@preamble}{% + }{% + \index@preamble\par\nobreak + }% + }{% + }% + \ifbool{ila@columnnote}{% + \ila@prenote + }{% + }% + \let\item\@idxitem +}{% + \ifnumcomp{\theidxcols}{<}{\tw@}{% + }{% + \ifbool{ila@unbalanced}{% + \end{multicols*}% + }{% + \end{multicols}% + }% + }% + \ifbool{@restonecol}{% + }{% + \twocolumn + }% +} +\endinput +%% +%% End of file `idxlayout.sty'. diff --git a/doc/utils/sphinx-config/latex/p2e-pdftex.def b/doc/utils/sphinx-config/latex/p2e-pdftex.def new file mode 100644 index 0000000000..df09e096f4 --- /dev/null +++ b/doc/utils/sphinx-config/latex/p2e-pdftex.def @@ -0,0 +1,41 @@ +%% +%% This is file `p2e-pdftex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% p2e-drivers.dtx (with options: `pdftex') +%% +%% Copyright (C) 2003-2016 +%% Rolf Niepraschk, Rolf.Niepraschk@gmx.de +%% Hubert Gaesslein, +%% Josef Tkadlec, j.tkadlec@email.cz +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of all files listed in `manifest.txt'. +%% +\ProvidesFile{p2e-pdftex.def} + [2016/02/05 v0.1u + Driver-dependant file (RN,HjG,JT)] +\begingroup + \@ifundefined{pdfoutput}{}{% + \ifnum\pdfoutput>0\relax + \gdef\pIIe@mode{2} + \fi + } +\endgroup +\ifcase\pIIe@mode\relax \or\or + \def\pIIe@code#1{\pdfliteral{ q #1 Q }} +\fi +\endinput +%% +%% End of file `p2e-pdftex.def'. diff --git a/doc/utils/sphinx-config/latex/pict2e.sty b/doc/utils/sphinx-config/latex/pict2e.sty new file mode 100644 index 0000000000..cd0ac60bae --- /dev/null +++ b/doc/utils/sphinx-config/latex/pict2e.sty @@ -0,0 +1,820 @@ +%% +%% This is file `pict2e.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pict2e.dtx (with options: `package') +%% +%% Copyright (C) 2003-2016 +%% Rolf Niepraschk, Rolf.Niepraschk@gmx.de +%% Hubert Gaesslein, +%% Josef Tkadlec, j.tkadlec@email.cz +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of all files listed in `manifest.txt'. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{pict2e}[2020/09/30 v0.4b Improved picture commands (HjG,RN,JT)] +\edef\Gin@codes{% + \catcode`\noexpand\^^A\the\catcode`\^^A\relax + \catcode`\noexpand\"\the\catcode`\"\relax + \catcode`\noexpand\!\the\catcode`\!\relax + \catcode`\noexpand\:\the\catcode`\:\relax} +\catcode`\^^A=\catcode`\% +\@makeother\"% +\@makeother\!% +\@makeother\:% +\def\@defaultunitsset#1#2#3{% + \@defaultunits#1\dimexpr#2#3\relax\relax\@nnil} +\newcommand*\pIIe@mode{-1} +\newcommand*\pIIe@code[1]{} +\providecommand*\Gin@driver{} +\newcommand*\pIIe@tempa{} +\newcommand*\pIIe@tempb{} +\newcommand*\pIIe@tempc{} +\DeclareOption{dvips}{\def\Gin@driver{dvips.def}} +\DeclareOption{xdvi}{\ExecuteOptions{dvips}} +\DeclareOption{dvipdf}{\def\Gin@driver{dvipdf.def}} +\DeclareOption{dvipdfm}{\def\Gin@driver{dvipdfm.def}} +\DeclareOption{dvipdfmx}{\def\Gin@driver{dvipdfmx.def}} +\DeclareOption{pdftex}{\def\Gin@driver{pdftex.def}} +\DeclareOption{luatex}{\def\Gin@driver{luatex.def}} +\DeclareOption{xetex}{\def\Gin@driver{xetex.def}} +\DeclareOption{dvipsone}{\def\Gin@driver{dvipsone.def}} +\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} +\DeclareOption{oztex}{\ExecuteOptions{dvips}} +\DeclareOption{textures}{\def\Gin@driver{textures.def}} +\DeclareOption{pctexps}{\def\Gin@driver{pctexps.def}} +\DeclareOption{pctex32}{\def\Gin@driver{pctex32.def}} +\DeclareOption{vtex}{\def\Gin@driver{vtex.def}} +\DeclareOption{original}{\def\pIIe@mode{0}} +\newif\ifpIIe@pdfliteral@ok +\pIIe@pdfliteral@oktrue +\ifx\pIIe@pdfliteral\@undefined + \ifx\pdfliteral\@undefined + \pIIe@pdfliteral@okfalse + \def\pIIe@pdfliteral#1{% + \PackageWarning{pict2e}{pdfliteral not supported}% + }% + \else + \let\pIIe@pdfliteral\pdfliteral + \fi +\fi +\def\pIIe@buttcap{% + \ifpIIe@pdfliteral@ok + \buttcap + \fi +} +\newcommand*\pIIe@FAL{1.52}% +\newcommand*\pIIe@FAW{3.2}% +\newcommand*\pIIe@CAW{1.5pt}% +\newcommand*\pIIe@FAI{0.25}% +\newcommand*\ltxarrows{% + \let\pIIe@vector=\pIIe@vector@ltx +} +\newcommand*\pstarrows{% + \let\pIIe@vector=\pIIe@vector@pst +} +\DeclareOption{ltxarrows}{\AtEndOfPackage{\ltxarrows}} +\DeclareOption{pstarrows}{\AtEndOfPackage{\pstarrows}} +\newcommand*\pIIe@debug@comment{} +\DeclareOption{debug}{% + \def\pIIe@debug@comment{^^J^^J\@percentchar\space >>> pict2e <<<^^J}% + \begingroup + \@ifundefined{pdfcompresslevel}{}{\global\pdfcompresslevel\z@}% + \endgroup} +\DeclareOption{hide}{\AtEndOfPackage{% + \let\pIIe@code\@gobble +}} +\DeclareOption*{\ExecuteOptions{original}} +\ExecuteOptions{ltxarrows} +\InputIfFileExists{pict2e.cfg}{}{} +\ProcessOptions\relax +\ifnum\pIIe@mode=\z@ + \PackageInfo{pict2e}{Package option `original' requested} +\else + \if!\Gin@driver! + \PackageError{pict2e} + {No driver specified at all} + {You should make a default driver option in a file\MessageBreak + pict2e.cfg\MessageBreak eg: \protect\ExecuteOptions{dvips}}% + \else + \PackageInfo{pict2e}{Driver file: \Gin@driver} + \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{} + \PackageInfo{pict2e}{Driver file for pict2e: p2e-\Gin@driver} + \InputIfFileExists{p2e-\Gin@driver}{}{% + \PackageError{pict2e}% + {Driver file ``p2e-\Gin@driver'' not found}% + {Q: Is the file properly installed? A: No!}} + \fi +\fi +\ifnum\pIIe@mode>\z@ + \ifnum\pIIe@mode<\thr@@ + \RequirePackage{trig} + \let\pIIe@oldline\line + \let\pIIe@old@sline\@sline + \let\pIIe@oldvector\vector + \let\pIIe@old@circle\@circle + \let\pIIe@old@dot\@dot + \let\pIIe@old@bezier\@bezier + \AtBeginDocument{% + \@ifundefined{@cbezier}{% + \def\pIIe@old@cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){}% + }{\let\pIIe@old@cbezier\@cbezier}} + \let\pIIe@oldoval\oval + \let\pIIe@old@oval\@oval + \newcommand*\OriginalPictureCmds{% + \let\@sline\pIIe@old@sline + \let\line\pIIe@oldline + \let\vector\pIIe@oldvector + \let\@circle\pIIe@old@circle + \let\@dot\pIIe@old@dot + \let\@bezier\pIIe@old@bezier + \let\@cbezier\pIIe@old@cbezier + \renewcommand*\oval[1][]{\pIIe@oldoval}% + \let\@oval\pIIe@old@oval + } + \else + \PackageError{pict2e} + {Unsupported mode (\pIIe@mode) specified} + {The driver you specified requested a mode\MessageBreak + not supported by this version of this package} + \fi +\else + \ifnum\pIIe@mode<\z@ + \PackageError{pict2e} + {No suitable driver specified} + {You should make a default driver option in a file\MessageBreak + pict2e.cfg\MessageBreak eg: \protect\ExecuteOptions{dvips}} + \fi +\fi +\ifnum\pIIe@mode>\z@ + \ifcase\pIIe@mode\relax + \or + \newcommand*\pIIe@moveto@op{moveto} + \newcommand*\pIIe@lineto@op{lineto} + \newcommand*\pIIe@setlinewidth@op{setlinewidth} + \newcommand*\pIIe@stroke@op{stroke} + \newcommand*\pIIe@fill@op{fill} + \newcommand*\pIIe@curveto@op{curveto} + \newcommand*\pIIe@concat@op{concat} + \newcommand*\pIIe@closepath@op{closepath} + \or + \newcommand*\pIIe@moveto@op{m} + \newcommand*\pIIe@lineto@op{l} + \newcommand*\pIIe@setlinewidth@op{w} + \newcommand*\pIIe@stroke@op{S} + \newcommand*\pIIe@fill@op{f} + \newcommand*\pIIe@curveto@op{c} + \newcommand*\pIIe@concat@op{cm} + \newcommand*\pIIe@closepath@op{h} + \fi + \@ifdefinable\pIIe@GRAPH{\newtoks\pIIe@GRAPH} + \newcommand*\pIIe@addtoGraph[1]{% + \begingroup + \edef\x{\the\pIIe@GRAPH\space#1}% + \global\pIIe@GRAPH\expandafter{\x}% + \endgroup} + \newcommand*\pIIe@fillGraph{\begingroup \@tempswatrue\pIIe@drawGraph} + \newcommand*\pIIe@strokeGraph{\begingroup \@tempswafalse\pIIe@drawGraph} + \newcommand*\pIIe@drawGraph{% + \edef\x{\pIIe@debug@comment\space + \pIIe@scale@PTtoBP}% + \if@tempswa + \edef\y{\pIIe@fill@op}% + \else + \edef\x{\x\space + \strip@pt\@wholewidth\space\pIIe@setlinewidth@op + \pIIe@linecap\pIIe@linejoin\space}% + \edef\y{\pIIe@stroke@op}% + \fi + \expandafter\pIIe@code\expandafter{% + \expandafter\x\the\pIIe@GRAPH\space\y}% + \global\pIIe@GRAPH{}\xdef\pIIe@CPx{}\xdef\pIIe@CPy{}% + \endgroup} + \newcommand*\pIIe@CPx{} \newcommand*\pIIe@CPy{} + \newcommand*\pIIe@add@CP[2]{% + \begingroup + \@tempdima#1\xdef\pIIe@CPx{\the\@tempdima}% + \@tempdimb#2\xdef\pIIe@CPy{\the\@tempdimb}% + \pIIe@addtoGraph{\strip@pt\@tempdima\space\strip@pt\@tempdimb}% + \endgroup} + \newcommand*\pIIe@add@nums[2]{% + \begingroup + \@tempdima#1\relax + \@tempdimb#2\relax + \pIIe@addtoGraph{\strip@pt\@tempdima\space\strip@pt\@tempdimb}% + \endgroup} + \newcommand*\pIIe@add@num[1]{% + \begingroup + \@tempdima#1\relax + \pIIe@addtoGraph{\strip@pt\@tempdima}% + \endgroup} + \newcommand*\pIIe@PTtoBP{0.99626401 } + \ifcase\pIIe@mode\relax + \or + \newcommand*\pIIe@concat[6]{% + \begingroup + \pIIe@addtoGraph{[}% + \@tempdima#1\relax \@tempdimb#2\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#3\relax \@tempdimb#4\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#5\relax \@tempdimb#6\relax + \pIIe@add@nums\@tempdima\@tempdimb + \pIIe@addtoGraph{] \pIIe@concat@op}% + \endgroup} + \newcommand*\pIIe@translate[2]{\pIIe@add@nums{#1}{#2}\pIIe@addtoGraph{translate}} + \newcommand*\pIIe@rotate[1]{\pIIe@add@num{#1}\pIIe@addtoGraph{rotate}} + \newcommand*\pIIe@scale[2]{\pIIe@add@nums{#1}{#2}\pIIe@addtoGraph{scale}} + \newcommand*\pIIe@scale@PTtoBP{\pIIe@PTtoBP \pIIe@PTtoBP scale} + \or + \newcommand*\pIIe@concat[6]{% + \begingroup + \@tempdima#1\relax \@tempdimb#2\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#3\relax \@tempdimb#4\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#5\relax \@tempdimb#6\relax + \pIIe@add@nums\@tempdima\@tempdimb + \pIIe@addtoGraph\pIIe@concat@op + \endgroup} + \newcommand*\pIIe@translate[2]{\pIIe@concat\p@\z@\z@\p@{#1}{#2}} + \newcommand*\pIIe@rotate[1]{% + \begingroup + \@tempdima#1\relax + \edef\pIIe@tempa{\strip@pt\@tempdima}% + \CalculateSin\pIIe@tempa + \CalculateCos\pIIe@tempa + \edef\pIIe@tempb{\UseSin\pIIe@tempa}% + \edef\pIIe@tempc{\UseCos\pIIe@tempa}% + \pIIe@concat{\pIIe@tempc\p@}{\pIIe@tempb\p@}% + {-\pIIe@tempb\p@}{\pIIe@tempc\p@}\z@\z@ + \endgroup} + \newcommand*\pIIe@scale[2]{\pIIe@concat{#1}\z@\z@{#2}\z@\z@} + \newcommand*\pIIe@scale@PTtoBP{\pIIe@PTtoBP 0 0 \pIIe@PTtoBP 0 0 \pIIe@concat@op} + \fi + \newcommand*\pIIe@moveto[2]{% + \pIIe@add@CP{#1}{#2}\pIIe@addtoGraph\pIIe@moveto@op} + \newcommand*\pIIe@lineto[2]{% + \pIIe@add@CP{#1}{#2}\pIIe@addtoGraph\pIIe@lineto@op} + \ifcase\pIIe@mode\relax + \or + \newcommand*\pIIe@rcurveto[6]{% + \begingroup + \@tempdima#1\relax \@tempdimb#2\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#3\relax \@tempdimb#4\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#5\relax \@tempdimb#6\relax + \pIIe@add@CP\@tempdima\@tempdimb + \pIIe@addtoGraph{rcurveto}% + \endgroup} + \or + \newcommand*\pIIe@rcurveto[6]{% + \begingroup + \@tempdima#1\advance\@tempdima\pIIe@CPx\relax + \@tempdimb#2\advance\@tempdimb\pIIe@CPy\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#3\advance\@tempdima\pIIe@CPx\relax + \@tempdimb#4\advance\@tempdimb\pIIe@CPy\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#5\advance\@tempdima\pIIe@CPx\relax + \@tempdimb#6\advance\@tempdimb\pIIe@CPy\relax + \pIIe@add@CP\@tempdima\@tempdimb + \pIIe@addtoGraph\pIIe@curveto@op + \endgroup} + \fi + \newcommand*\pIIe@curveto[6]{% + \begingroup + \@tempdima#1\relax \@tempdimb#2\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#3\relax \@tempdimb#4\relax + \pIIe@add@nums\@tempdima\@tempdimb + \@tempdima#5\relax \@tempdimb#6\relax + \pIIe@add@CP\@tempdima\@tempdimb + \pIIe@addtoGraph\pIIe@curveto@op + \endgroup} + \newcommand*\pIIe@closepath{\pIIe@addtoGraph\pIIe@closepath@op} + \newcommand*\pIIe@pyth[3]{% + \begingroup + \@tempdima=#1\relax + \ifnum\@tempdima<\z@\@tempdima=-\@tempdima\fi + \@tempdimb=#2\relax + \ifnum\@tempdimb<\z@\@tempdimb=-\@tempdimb\fi + \advance\@tempdimb\@tempdima + \ifnum\@tempdimb=\z@ + \@tempdimc=\z@ + \else + \multiply\@tempdima 8\relax + \pIIe@divide\@tempdima\@tempdimb\@tempdimc + \advance\@tempdimc -4pt + \multiply\@tempdimc 2 + \edef\pIIe@tempa{\strip@pt\@tempdimc}% + \@tempdima=\pIIe@tempa\@tempdimc + \advance\@tempdima 64pt + \divide\@tempdima 2\relax + \@dashdim=7pt + \pIIe@@pyth\pIIe@@pyth\pIIe@@pyth + \edef\pIIe@tempa{\strip@pt\@dashdim}% + \@tempdimc=\pIIe@tempa\@tempdimb + \global\divide\@tempdimc 8 + \fi + \edef\x{\endgroup#3=\the\@tempdimc}% + \x} + \newcommand*\pIIe@@pyth{% + \pIIe@divide\@tempdima\@dashdim\@tempdimc + \advance\@dashdim\@tempdimc + \divide\@dashdim\tw@} + \newcommand*\pIIe@divide[3]{% + \begingroup + \dimendef\Numer=254\relax \dimendef\Denom=252\relax + \countdef\Num=254\relax \countdef\Den=252\relax + \countdef\I=250\relax \countdef\Numb=248\relax + \Numer #1\relax \Denom #2\relax + \ifdim\Denom<\z@ \Denom -\Denom \Numer=-\Numer \fi + \ifdim\Numer<\z@ \def\sign{-}\Numer=-\Numer \else \def\sign{}\fi + \ifdim\Denom=\z@ + \edef\Q{\strip@pt\maxdimen}% + \PackageWarning{pict2e}% + {Division by 0, \sign\strip@pt\maxdimen\space used}{}% + \else + \Num=\Numer \Den=\Denom + \Numb=\Num \divide\Numb\Den + \ifnum\Numb>16383 + \edef\Q{\strip@pt\maxdimen}% + \PackageWarning{pict2e}% + {Division overflow, \sign\strip@pt\maxdimen\space used}{}% + \else + \edef\Q{\number\Numb.}% + \multiply \Numb\Den \advance\Num -\Numb + \I=6\relax + \@whilenum \I>\z@ \do{\pIIe@@divide\advance\I\m@ne}% + \fi + \fi + \edef\tempend{\noexpand\endgroup\noexpand#3=\sign\Q\p@}% + \tempend} + \def\pIIe@@divide{% + \@whilenum \Num>214748364 \do{\divide\Num\tw@ \divide\Den\tw@}% + \multiply \Num 10 + \Numb=\Num \divide\Numb\Den + \edef\Q{\Q\number\Numb}% + \multiply \Numb\Den \advance \Num -\Numb + \ifnum\Num>\z@\else\I=0\fi} + \newcommand*\pIIe@checkslopeargsline[2]{% + \pIIe@checkslopeargs{#1}{#2}{16383}} + \newcommand*\pIIe@checkslopeargsvector[2]{% + \pIIe@checkslopeargs{#1}{#2}{1000}} + \newcommand*\pIIe@checkslopeargs[3]{% + \edef\@tempa{#1}\expandafter\pIIe@checkslopearg\@tempa.:{#3}% + \edef\@tempa{#2}\expandafter\pIIe@checkslopearg\@tempa.:{#3}% + \ifdim #1\p@=\z@ \ifdim #2\p@=\z@ \@badlinearg \fi\fi} + \def\pIIe@checkslopearg #1.#2:#3{% + \def\@tempa{#1}% + \ifx\@tempa\empty\def\@tempa{0}\fi + \ifx\@tempa\space\def\@tempa{0}\fi + \ifnum\ifnum\@tempa<\z@-\fi\@tempa>#3 \@badlinearg \fi} + \def\@badlinearg{\PackageError + {pict2e}{Bad \protect\line\space or \protect\vector\space argument}{}} + \def\line(#1,#2)#3{% + \begingroup + \pIIe@checkslopeargsline{#1}{#2}% + \@tempdima=#1pt\relax \@tempdimb=#2pt\relax + \@defaultunitsset\@linelen{#3}\unitlength + \ifdim\@linelen<\z@ \@badlinearg \else + \pIIe@sline + \pIIe@moveto\z@\z@ + \pIIe@lineto\@xdim\@ydim + \pIIe@strokeGraph + \box\@tempboxa + \fi + \endgroup} + \newcommand*\pIIe@sline{% + \ifdim\@tempdima=\z@ + \ifdim\@tempdimb<\z@\@linelen-\@linelen\fi + \@ydim=\@linelen + \@xdim=\z@ + \else + \ifdim\@tempdima<\z@\@linelen-\@linelen\fi + \ifdim\@tempdimb=\z@ + \@xdim=\@linelen + \@ydim=\z@ + \else + \pIIe@divide\@tempdimb\@tempdima\dimen@ + \@ydim=\strip@pt\dimen@\@linelen + \@xdim=\@linelen + \fi + \fi + \@ovxx=\ifnum\@xdim=\z@ \z@\else\@linelen\fi + \@ovyy=\ifnum\@ydim<\z@ \z@\else\@ydim\fi + \@ovdy=\ifnum\@ydim<\z@ -\@ydim\else\z@\fi + \setbox\@tempboxa\hbox{% + \vrule\@height \@ovyy \@depth \@ovdy \@width \z@ + \vrule\@height \z@ \@depth \z@ \@width \@ovxx}} + \def\vector(#1,#2)#3{% + \begingroup + \pIIe@checkslopeargsvector{#1}{#2}% + \@tempdima=#1pt\relax \@tempdimb=#2pt\relax + \@defaultunitsset\@linelen{#3}\unitlength + \ifdim\@linelen<\z@ \@badlinearg \else + \pIIe@sline + \@defaultunitsset\@linelen{#3}\unitlength + \pIIe@pyth{\@tempdima}{\@tempdimb}\dimen@ + \ifdim\@tempdima=\z@ \else + \ifdim\@tempdimb=\z@ \else + \pIIe@divide\dimen@{\@tempdima}\@xdim + \@linelen\strip@pt\@xdim\@linelen + \ifdim\@linelen<\z@\@linelen-\@linelen\fi + \fi + \fi + \pIIe@divide{\@tempdimb}\dimen@\@ydim + \pIIe@divide{\@tempdima}\dimen@\@xdim + \pIIe@concat\@xdim\@ydim{-\@ydim}\@xdim\z@\z@ + \pIIe@vector + \pIIe@fillGraph + \box\@tempboxa + \fi + \endgroup} + \newcommand*\pIIe@vector{} + \newcommand*\pIIe@vector@ltx{% + \@ydim\pIIe@FAW\@wholewidth \advance\@ydim\pIIe@CAW\relax + \@ovxx\pIIe@FAL\@ydim + \@xdim\@linelen \advance\@xdim-\@ovxx + \divide\@ydim\tw@ + \divide\@ovxx\tw@ \advance\@ovxx\@xdim + \@ovyy\@ydim + \divide\@ovyy\tw@ \advance\@ovyy-\pIIe@FAI\@ydim + \pIIe@bezier@QtoC\@linelen\@ovxx\@ovro + \pIIe@bezier@QtoC\z@\@ovyy\@ovri + \pIIe@bezier@QtoC\@xdim\@ovxx\@clnwd + \pIIe@bezier@QtoC\@ydim\@ovyy\@clnht + \pIIe@moveto\@linelen\z@ + \pIIe@curveto\@ovro{-\@ovri}\@clnwd{-\@clnht}\@xdim{-\@ydim}% + \ifdim\@xdim>\z@ + \pIIe@lineto\@xdim{-\@halfwidth}% + \pIIe@lineto\z@{-\@halfwidth}% + \pIIe@lineto\z@{\@halfwidth}% + \pIIe@lineto\@xdim{\@halfwidth}% + \fi + \pIIe@lineto\@xdim\@ydim + \pIIe@curveto\@clnwd\@clnht\@ovro\@ovri\@linelen\z@} + \newcommand*\pIIe@vector@pst{% + \@ydim\pIIe@FAW\@wholewidth \advance\@ydim\pIIe@CAW\relax + \@ovxx\pIIe@FAL\@ydim + \@xdim\@linelen \advance\@xdim-\@ovxx + \divide\@ydim\tw@ + \@ovyy\@ydim \advance\@ovyy-\@halfwidth + \@ovdx\pIIe@FAI\@ovxx + \pIIe@divide\@ovdx\@ydim\@tempdimc + \@ovxx\strip@pt\@ovyy\@tempdimc + \advance\@ovxx\@xdim + \advance\@ovdx\@xdim + \pIIe@moveto\@linelen\z@ + \pIIe@lineto\@xdim{-\@ydim}% + \ifdim\@xdim>\z@ + \pIIe@lineto\@ovxx{-\@halfwidth}% + \pIIe@lineto\z@{-\@halfwidth}% + \pIIe@lineto\z@{\@halfwidth}% + \pIIe@lineto\@ovxx{\@halfwidth}% + \else + \pIIe@lineto\@ovdx\z@ + \fi + \pIIe@lineto\@xdim\@ydim + \pIIe@lineto\@linelen\z@} + \def\@circle#1{\begingroup \@tempswafalse\pIIe@circ{#1}} + \def\@dot#1{\begingroup \@tempswatrue\pIIe@circ{#1}} + \newcommand*\pIIe@circ[1]{% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \ifdim\pIIe@tempdima<\z@ \pIIe@badcircarg \fi + \divide\pIIe@tempdima\tw@ + \pIIe@circle\pIIe@tempdima + \if@tempswa \pIIe@fillGraph \else \buttcap \pIIe@strokeGraph \fi + \endgroup} + \newcommand*\pIIe@circle[1]{% + \pIIe@qcircle[1]\z@{#1}\pIIe@qcircle \@ne{#1}% + \pIIe@qcircle \tw@{#1}\pIIe@qcircle\thr@@{#1}\pIIe@closepath} + \newcommand*\pIIe@qcircle[3][0]{% + \begingroup + \@ovro#3\relax \@ovri0.55228474983\@ovro + \@tempdimc\@ovri \advance\@tempdimc-\@ovro + \ifnum#1>\z@ \@tempswatrue \else \@tempswafalse \fi + \ifcase#2\relax + \pIIe@@qcircle\@ovro\z@\z@\@ovri\@tempdimc\@ovro{-\@ovro}\@ovro + \or + \pIIe@@qcircle\z@\@ovro{-\@ovri}\z@{-\@ovro}\@tempdimc{-\@ovro}{-\@ovro}% + \or + \pIIe@@qcircle{-\@ovro}\z@\z@{-\@ovri}{-\@tempdimc}{-\@ovro}\@ovro{-\@ovro}% + \or + \pIIe@@qcircle\z@{-\@ovro}\@ovri\z@\@ovro{-\@tempdimc}\@ovro\@ovro + \fi + \endgroup} + \newcommand*\pIIe@@qcircle[8]{% + \if@tempswa\pIIe@moveto{#1}{#2}\fi \pIIe@rcurveto{#3}{#4}{#5}{#6}{#7}{#8}} + \newcommand*\pIIe@badcircarg{% + \PackageError{pict2e}% + {Illegal argument in \protect\circle(*), \protect\oval, \protect\arc(*) or + \protect\circlearc.}% + {The radius of a circle, dot, arc or oval corner must be greater than zero.}}% + \newcommand*\maxovalrad{20pt} + \newcommand*\pIIe@defaultUL[2]{% + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \edef#1{\the\pIIe@tempdima}} + \newcommand*\pIIe@def@UL{} + \def\pIIe@def@UL#1\relax#2#3{% + \edef#2{\the\dimen@}} + \newcommand*\pIIe@maxovalrad{} + \newcommand*\pIIe@oval{} + \def\pIIe@oval#1(#2,#3){\@ifnextchar[{\@oval(#2,#3)}{\@oval(#2,#3)[]}} + \renewcommand*\oval[1][\maxovalrad]{% + \begingroup \pIIe@defaultUL\pIIe@maxovalrad{#1}% + \ifdim\pIIe@maxovalrad<\z@ \pIIe@badcircarg \fi + \pIIe@oval} + \def\@oval(#1,#2)[#3]{% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength \divide\pIIe@tempdima\tw@ + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength \divide\pIIe@tempdimb\tw@ + \pIIe@tempdimc \ifdim\pIIe@tempdimb>\pIIe@tempdima \pIIe@tempdima \else \pIIe@tempdimb \fi + \ifdim\pIIe@maxovalrad<\pIIe@tempdimc \pIIe@tempdimc\pIIe@maxovalrad\relax \fi + \pIIe@tempdimd\pIIe@tempdima \advance\pIIe@tempdimd-\pIIe@tempdimc + \pIIe@tempdime\pIIe@tempdimb \advance\pIIe@tempdime-\pIIe@tempdimc + \pIIe@get@quadrants{#3}% + \ifnum15=\@tempcnta \pIIe@buttcap \fi + \@tempswatrue + \ifnum9=\@tempcnta + \pIIe@qoval\z@{-\pIIe@tempdimb}{\pIIe@tempdimd}{-\pIIe@tempdimb}% + \thr@@\pIIe@tempdimc\pIIe@tempdima\z@ + \@tempcnta\@ne + \fi + \pIIe@qoval\pIIe@tempdima\z@\pIIe@tempdima\pIIe@tempdime% + \z@\pIIe@tempdimc\z@\pIIe@tempdimb + \pIIe@qoval\z@\pIIe@tempdimb{-\pIIe@tempdimd}\pIIe@tempdimb% + \@ne\pIIe@tempdimc{-\pIIe@tempdima}\z@ + \pIIe@qoval{-\pIIe@tempdima}\z@{-\pIIe@tempdima}{-\pIIe@tempdime}% + \tw@\pIIe@tempdimc\z@{-\pIIe@tempdimb}% + \pIIe@qoval\z@{-\pIIe@tempdimb}{\pIIe@tempdimd}{-\pIIe@tempdimb}% + \thr@@\pIIe@tempdimc\pIIe@tempdima\z@ + \pIIe@strokeGraph + \endgroup} + \newcommand*\pIIe@qoval[8]{% + \ifodd\@tempcnta + \if@tempswa\pIIe@moveto{#1}{#2}\fi + \pIIe@lineto{#3}{#4}\pIIe@qcircle{#5}{#6}\pIIe@lineto{#7}{#8}% + \@tempswafalse + \else + \@tempswatrue + \fi + \divide\@tempcnta\tw@} + \newcommand*\pIIe@get@quadrants[1]{% + \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tempcnta\z@ + \@tfor\reserved@a:=#1\do{\csname @ov\reserved@a false\endcsname}% + \if@ovr \if@ovb\@setfpsbit2\fi \if@ovt\@setfpsbit4\fi \fi + \if@ovl \if@ovb\@setfpsbit1\fi \if@ovt\@setfpsbit8\fi \fi} + \def\@bezier#1(#2,#3)(#4,#5)(#6,#7){% + \ifnum #1=\z@ + \@killglue + \begingroup + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \@defaultunitsset\pIIe@tempdimb{#3}\unitlength + \@defaultunitsset\pIIe@tempdimc{#4}\unitlength + \@defaultunitsset\pIIe@tempdimd{#5}\unitlength + \@defaultunitsset\pIIe@tempdime{#6}\unitlength + \@defaultunitsset\pIIe@tempdimf{#7}\unitlength + \pIIe@bezier@QtoC\pIIe@tempdima\pIIe@tempdimc\@ovro + \pIIe@bezier@QtoC\pIIe@tempdimb\pIIe@tempdimd\@ovri + \pIIe@bezier@QtoC\pIIe@tempdime\pIIe@tempdimc\@clnwd + \pIIe@bezier@QtoC\pIIe@tempdimf\pIIe@tempdimd\@clnht + \pIIe@moveto\pIIe@tempdima\pIIe@tempdimb + \pIIe@curveto\@ovro\@ovri\@clnwd\@clnht\pIIe@tempdime\pIIe@tempdimf + \pIIe@strokeGraph + \endgroup + \ignorespaces + \else + \pIIe@old@bezier{#1}(#2,#3)(#4,#5)(#6,#7) + \fi} + \newcommand*\pIIe@bezier@QtoC[3]{% + \@tempdimc#1\relax \advance\@tempdimc-#2\relax + \divide\@tempdimc\thr@@ \advance\@tempdimc #2\relax + #3\@tempdimc} + \ifx\undefined\@arclen \newdimen\@arclen \fi + \ifx\undefined\@arcrad \newdimen\@arcrad \fi + \ifx\undefined\pIIe@tempdima \newdimen\pIIe@tempdima \fi + \ifx\undefined\pIIe@tempdimb \newdimen\pIIe@tempdimb \fi + \ifx\undefined\pIIe@tempdimc \newdimen\pIIe@tempdimc \fi + \ifx\undefined\pIIe@tempdimd \newdimen\pIIe@tempdimd \fi + \ifx\undefined\pIIe@tempdime \newdimen\pIIe@tempdime \fi + \ifx\undefined\pIIe@tempdimf \newdimen\pIIe@tempdimf \fi + \newcommand*\pIIe@arc[6][0]{% + \@arcrad #4\relax + \ifdim \@arcrad<\z@ \pIIe@badcircarg \else + \@arclen #6\p@ \advance\@arclen -#5\p@ + \ifdim \@arclen<\z@ \def\sign{-}\else\def\sign{}\fi + \ifdim \sign\@arclen>720\p@ + \PackageWarning {pict2e}{The arc angle is reduced to -720..720}% + \@whiledim \sign\@arclen>720\p@ \do {\advance\@arclen-\sign360\p@}% + \@tempdima #5\p@ \advance\@tempdima \@arclen + \edef\@angleend{\strip@pt\@tempdima}% + \pIIe@@arc{#1}{#2}{#3}{#4}{#5}{\@angleend}% + \else + \pIIe@@arc{#1}{#2}{#3}{#4}{#5}{#6}% + \fi + \fi} + \newcommand*\pIIe@@arc[6]{% + \begingroup + \ifdim \sign\@arclen>90\p@ + \divide\@arclen 2 + \@tempdima #5\p@ \advance\@tempdima \@arclen + \edef\@anglemid{\strip@pt\@tempdima}% + \def\@temp{\pIIe@@arc{#1}{#2}{#3}{#4}{#5}}% + \expandafter\@temp\expandafter{\@anglemid}% + \def\@temp{\pIIe@@arc{2}{#2}{#3}{#4}}% + \expandafter\@temp\expandafter{\@anglemid}{#6}% + \else + \CalculateSin{#5}\CalculateCos{#5}% + \@tempdima\UseCos{#5}\@arcrad \advance\@tempdima #2\relax + \@tempdimb\UseSin{#5}\@arcrad \advance\@tempdimb #3\relax + \ifcase #1\relax + \pIIe@lineto\@tempdima\@tempdimb + \or \pIIe@moveto\@tempdima\@tempdimb + \or + \else \PackageWarning {pict2e}% + {Illegal obligatory argument in \protect\circlearc.}% + \fi + \@tempdimc\@arclen \divide\@tempdimc\@iv + \edef\@angle{\strip@pt\@tempdimc}\CalculateTan{\@angle}% + \@linelen\UseTan{\@angle}\@arcrad \@linelen4\@linelen \divide\@linelen\thr@@ + \advance\@tempdima-\UseSin{#5}\@linelen + \advance\@tempdimb \UseCos{#5}\@linelen + \pIIe@add@nums\@tempdima\@tempdimb + \CalculateSin{#6}\CalculateCos{#6}% + \@tempdima \UseCos{#6}\@arcrad \advance\@tempdima #2\relax + \@tempdimb \UseSin{#6}\@arcrad \advance\@tempdimb #3\relax + \@tempdimc \UseSin{#6}\@linelen \advance\@tempdimc \@tempdima + \pIIe@tempdimd-\UseCos{#6}\@linelen \advance\pIIe@tempdimd \@tempdimb + \pIIe@add@nums\@tempdimc\pIIe@tempdimd + \pIIe@add@CP\@tempdima\@tempdimb + \pIIe@addtoGraph\pIIe@curveto@op + \fi + \endgroup} + \newcommand*\pIIearc + {\@ifstar{\@tempswatrue\pIIe@arc@}{\@tempswafalse\pIIe@arc@}} + \newcommand*\pIIe@arc@[2][0,360]{\pIIe@arc@@(#1){#2}} + \def\pIIe@arc@@(#1,#2)#3{% + \@defaultunitsset\pIIe@tempdima{#3}\unitlength + \if@tempswa + \pIIe@moveto\z@\z@ + \pIIe@arc{\z@}{\z@}{\pIIe@tempdima}{#1}{#2}% + \pIIe@closepath\pIIe@fillGraph + \else + \pIIe@arc[1]{\z@}{\z@}{\pIIe@tempdima}{#1}{#2}% + \pIIe@strokeGraph + \fi} + \ifx\undefined\arc + \else + \PackageWarning{pict2e}{\protect\arc\space redefined}% + \fi + \let\arc\pIIearc + \let\lp@r( \let\rp@r) + \def\Line(#1,#2)(#3,#4){\polyline(#1,#2)(#3,#4)} + \def\polyline(#1,#2){% + \@killglue + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% + \@ifnextchar\lp@r{\@polyline}{\PackageWarning{pict2e}% + {Polygonal lines require at least two vertices!}% + \ignorespaces}} + \def\@polyline(#1,#2){% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@lineto{\pIIe@tempdima}{\pIIe@tempdimb}% + \@ifnextchar\lp@r{\@polyline}{\pIIe@strokeGraph\ignorespaces}} + \def\Vector(#1,#2)(#3,#4){\polyvector(#1,#2)(#3,#4)} + \def\polyvector(#1,#2){% + \@killglue + \@ifnextchar\lp@r{\begingroup\@polyvector(#1,#2)}{% + \PackageWarning{pict2e}% + {Polygonal vectors require at least two vertices!}\ignorespaces}} + \def\@polyvector(#1,#2)(#3,#4){% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \@defaultunitsset\pIIe@tempdimc{#3}\unitlength + \@defaultunitsset\pIIe@tempdimd{#4}\unitlength + \advance\pIIe@tempdimc-\pIIe@tempdima \advance\pIIe@tempdimd-\pIIe@tempdimb + \ifdim\pIIe@tempdimc=\z@ \@linelen\pIIe@tempdimd \else + \ifdim\pIIe@tempdimd=\z@ \@linelen\pIIe@tempdimc \else + \pIIe@pyth\pIIe@tempdimc\pIIe@tempdimd\@linelen + \fi + \fi + \ifdim\@linelen<\z@ \@linelen-\@linelen\fi + \pIIe@divide{\pIIe@tempdimc}\@linelen\pIIe@tempdime + \pIIe@divide{\pIIe@tempdimd}\@linelen\pIIe@tempdimf + \pIIe@concat\pIIe@tempdime\pIIe@tempdimf{-\pIIe@tempdimf}\pIIe@tempdime\pIIe@tempdima\pIIe@tempdimb + \pIIe@vector \pIIe@fillGraph + \@ifnextchar\lp@r{\@polyvector(#3,#4)}{\endgroup\ignorespaces}} + \def\polygon{% + \@killglue + \@ifstar{\begingroup\@tempswatrue\@polygon}% + {\begingroup\@tempswafalse\@polygon}} + \def\@polygon(#1,#2){% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% + \@ifnextchar\lp@r{\@@polygon}{\PackageWarning{pict2e}% + {Polygons require at least two vertices!}% + \ignorespaces}} + \def\@@polygon(#1,#2){% + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@lineto{\pIIe@tempdima}{\pIIe@tempdimb}% + \@ifnextchar\lp@r{\@@polygon}{\pIIe@closepath + \if@tempswa\pIIe@fillGraph\else\pIIe@strokeGraph\fi + \endgroup + \ignorespaces}} + \def\moveto(#1,#2){% + \@killglue + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% + \ignorespaces} + \def\lineto(#1,#2){% + \@killglue + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \pIIe@lineto{\pIIe@tempdima}{\pIIe@tempdimb}% + \ignorespaces} + \def\curveto(#1,#2)(#3,#4)(#5,#6){% + \@killglue + \@defaultunitsset\pIIe@tempdima{#1}\unitlength + \@defaultunitsset\pIIe@tempdimb{#2}\unitlength + \@defaultunitsset\pIIe@tempdimc{#3}\unitlength + \@defaultunitsset\pIIe@tempdimd{#4}\unitlength + \@defaultunitsset\pIIe@tempdime{#5}\unitlength + \@defaultunitsset\pIIe@tempdimf{#6}\unitlength + \pIIe@curveto{\pIIe@tempdima}{\pIIe@tempdimb}{\pIIe@tempdimc}% + {\pIIe@tempdimd}{\pIIe@tempdime}{\pIIe@tempdimf}% + \ignorespaces} + \newcommand*\circlearc[6][0]{% + \@killglue + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \@defaultunitsset\pIIe@tempdimb{#3}\unitlength + \@defaultunitsset\pIIe@tempdimc{#4}\unitlength + \pIIe@arc[#1]{\pIIe@tempdima}{\pIIe@tempdimb}{\pIIe@tempdimc}{#5}{#6}% + \ignorespaces} + \def\closepath{\pIIe@closepath} + \def\strokepath{\pIIe@strokeGraph} + \def\fillpath{\pIIe@fillGraph} + \ifcase\pIIe@mode\relax + \or + \newcommand*\pIIe@linecap@op{setlinecap} + \newcommand*\pIIe@linejoin@op{setlinejoin} + \or + \newcommand*\pIIe@linecap@op{J} + \newcommand*\pIIe@linejoin@op{j} + \fi + \def\pIIe@linecap{} + \def\pIIe@linejoin{} + \def\buttcap{\edef\pIIe@linecap{ 0 \pIIe@linecap@op}} + \def\roundcap{\edef\pIIe@linecap{ 1 \pIIe@linecap@op}} + \def\squarecap{\edef\pIIe@linecap{ 2 \pIIe@linecap@op}} + \def\miterjoin{\edef\pIIe@linejoin{ 0 \pIIe@linejoin@op}} + \def\roundjoin{\edef\pIIe@linejoin{ 1 \pIIe@linejoin@op}} + \def\beveljoin{\edef\pIIe@linejoin{ 2 \pIIe@linejoin@op}} + \AtBeginDocument{\@ifundefined{cbezier}{\newcommand}{\renewcommand}*% + \cbezier[2][0]{\pIIe@@cbezier[#1]#2}% + \@ifdefinable\pIIe@@cbezier{}% + \def\pIIe@@cbezier#1)#2(#3)#4(#5)#6({\@cbezier#1)(#3)(#5)(}% + \def\@cbezier[#1](#2,#3)(#4,#5)(#6,#7)(#8,#9){% + \@killglue + \@defaultunitsset\pIIe@tempdima{#2}\unitlength + \@defaultunitsset\pIIe@tempdimb{#3}\unitlength + \pIIe@moveto{\pIIe@tempdima}{\pIIe@tempdimb}% + \@defaultunitsset\pIIe@tempdima{#4}\unitlength + \@defaultunitsset\pIIe@tempdimb{#5}\unitlength + \@defaultunitsset\pIIe@tempdimc{#6}\unitlength + \@defaultunitsset\pIIe@tempdimd{#7}\unitlength + \@defaultunitsset\pIIe@tempdime{#8}\unitlength + \@defaultunitsset\pIIe@tempdimf{#9}\unitlength + \pIIe@curveto{\pIIe@tempdima}{\pIIe@tempdimb}{\pIIe@tempdimc}% + {\pIIe@tempdimd}{\pIIe@tempdime}{\pIIe@tempdimf}% + \pIIe@strokeGraph + \ignorespaces}% + } +\else + \renewcommand*\oval[1][]{\pIIe@oldoval} + \newcommand*\maxovalrad{20pt} + \newcommand*\OriginalPictureCmds{} +\fi +\Gin@codes +\let\Gin@codes\relax +\endinput +%% +%% End of file `pict2e.sty'.