distribute additional LaTeX files for better looking manual

This commit is contained in:
Axel Kohlmeyer
2024-08-16 17:57:48 -04:00
parent d0cfe2d00f
commit f0f8b49afb
5 changed files with 1472 additions and 1 deletions

View File

@ -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

View File

@ -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'.

View File

@ -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 <thomas.titz@chello.at>
%%
%% 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'.

View File

@ -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'.

View File

@ -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'.