From 4fea31f5cac0ab52e08db1fa1d1e7063f482b767 Mon Sep 17 00:00:00 2001 From: martin-mann Date: Wed, 3 May 2017 15:44:20 +0200 Subject: [PATCH 1/4] doxygen: namespaces enabled --- doc/doxygen.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg index 3c7bcf05..3e3235b5 100644 --- a/doc/doxygen.cfg +++ b/doc/doxygen.cfg @@ -654,7 +654,7 @@ SHOW_FILES = YES # Folder Tree View (if specified). # The default value is: YES. -SHOW_NAMESPACES = NO +SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from From c173bb39fee3da716a73a9fcc6f5ac20f3fdb93d Mon Sep 17 00:00:00 2001 From: martin-mann Date: Wed, 3 May 2017 15:50:39 +0200 Subject: [PATCH 2/4] provide required doxygen-latex dependencies --- ChangeLog | 3 + doc/doxygen.cfg | 2 +- doc/latex-deps/adjcalc.sty | 155 ++++ doc/latex-deps/adjustbox.sty | 1241 +++++++++++++++++++++++++++++++++ doc/latex-deps/collectbox.sty | 328 +++++++++ doc/latex-deps/tc-pgf.def | 37 + doc/latex-deps/tocloft.sty | 1110 +++++++++++++++++++++++++++++ doc/latex-deps/trimclip.sty | 260 +++++++ doc/latex-deps/xtab.sty | 650 +++++++++++++++++ 9 files changed, 3785 insertions(+), 1 deletion(-) create mode 100644 doc/latex-deps/adjcalc.sty create mode 100644 doc/latex-deps/adjustbox.sty create mode 100644 doc/latex-deps/collectbox.sty create mode 100644 doc/latex-deps/tc-pgf.def create mode 100644 doc/latex-deps/tocloft.sty create mode 100644 doc/latex-deps/trimclip.sty create mode 100644 doc/latex-deps/xtab.sty diff --git a/ChangeLog b/ChangeLog index 6f158e92..36ffb4c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,6 @@ +version 2.0.3 + 170503 Martin Mann : * README.md : + OS X install instructions (thanks to Lars Barquist) @@ -13,6 +15,7 @@ * getES*() : enabled + tests for NussinovHandler + tests for InteractionEnergyBasePair + + doc/latex-deps : provides required doxygen-latex dependencies 170413 Martin Mann : * doc/* diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg index 3e3235b5..ad6439fd 100644 --- a/doc/doxygen.cfg +++ b/doc/doxygen.cfg @@ -1675,7 +1675,7 @@ LATEX_EXTRA_STYLESHEET = # markers available. # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_EXTRA_FILES = +LATEX_EXTRA_FILES = doc/latex-deps/adjcalc.sty doc/latex-deps/adjustbox.sty doc/latex-deps/collectbox.sty doc/latex-deps/tc-pgf.def doc/latex-deps/tocloft.sty doc/latex-deps/trimclip.sty doc/latex-deps/xtab.sty # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will diff --git a/doc/latex-deps/adjcalc.sty b/doc/latex-deps/adjcalc.sty new file mode 100644 index 00000000..98c05a8e --- /dev/null +++ b/doc/latex-deps/adjcalc.sty @@ -0,0 +1,155 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files adjcalc.dtx, adjustbox.ins +%% and the derived file adjcalc.sty. +%% It is part of the larger adjustbox bundle. +%% +\ProvidesPackage{adjcalc}[% + 2012/05/16 + v1.1 + Provides advanced setlength with multiple back-ends (calc, etex, pgfmath)] +\RequirePackage{xkeyval} +\def\adjcalc@atend{% +\begingroup +\expandafter\ifx\csname glueexpr\endcsname\relax + \endgroup + \RequirePackage{calc}% + \adjcalc@calc + \def\adjcalc@etex{\PackageError{adjcalc}{e-TeX not available for current compiler!}}% +\else + \endgroup + \adjcalc@etex +\fi +} +\def\adjcalc@pgfmath{\AtEndOfPackage{\RequirePackage{pgf}}\def\adjcalc@atend{\adjcalc@pgfmath}} +\def\adjcalc@etex{\def\adjcalc@atend{\adjcalc@etex}} +\def\adjcalc@calc{\AtEndOfPackage{\RequirePackage{calc}}\def\adjcalc@atend{\adjcalc@calc}} +\def\adjcalc@overwrite{\AtEndOfPackage{\adjcalc@overwrite}} +\def\adjcalc@defaultunit{bp}% +\DeclareOptionX{pgfmath}{\adjcalc@pgfmath} +\DeclareOptionX{etex}{\adjcalc@etex} +\DeclareOptionX{calc}{\adjcalc@calc} +\DeclareOptionX{none}{% + \let\adjcalc@atend\relax + \let\adjcalc@overwrite\relax + \def\adjsetlength{\setlength}% + \def\adjaddtolength{\addtolength}% + \def\adjsetcounter{\setcounter}% + \def\adjaddtocounter{\addtocounter}% +} +\DeclareOptionX{overwrite}{\adjcalc@overwrite} +\DeclareOptionX{defaultunit}[bp]{% + \begingroup + \def\@tempa{#1}% + \def\@tempb{none}% + \ifx\@tempa\@tempb% 'none': + \endgroup + \def\adjsetlengthdefault{\adjsetlength}% + \else + \ifx\@tempb\adjcalc@defaultunit + \endgroup + % was 'none' before + \let\adjsetlengthdefault\adjsetlengthdefault@ + \else + \endgroup + \fi + \fi + \def\adjcalc@defaultunit{#1}% +} +\ProcessOptionsX* +\disable@keys{adjcalc}{none} +\def\adjcalcset{% + \setkeys{adjcalc}% +} +\def\adjcalc@etex{% + \protected\def\adjsetlength##1##2{% + ##1=\glueexpr(##2)\relax + }% + \protected\def\adjaddtolength##1##2{% + \advance##1 by \glueexpr(##2)\relax + }% + \protected\def\adjsetcounter##1##2{% + \@ifundefined{c@##1}% + {\@nocounterr{##1}}% + {\global\csname c@##1\endcsname\numexpr(##2)\relax}% + }% + \protected\def\adjaddtocounter##1##2{% + \@ifundefined{c@##1}% + {\@nocounterr{##1}}% + {\global\advance\csname c@##1\endcsname\numexpr(##2)\relax}% + }% + \def\adjsetlengthdefault@##1##2{% + \@defaultunits##1=\glueexpr##2 \adjcalc@defaultunit\relax\@nnil + }% + \let\adjsetlengthdefault\adjsetlengthdefault@ +} +\newif\if@adjcalc@needsdefault +\def\adjcalc@calc{% + \DeclareRobustCommand\adjsetlength{\calc@assign@skip}% + \DeclareRobustCommand\adjaddtolength[1]{\calc@assign@skip{\advance ##1}}% + \DeclareRobustCommand\adjsetcounter[2]{\@ifundefined{c@##1}{\@nocounterr{##1}}{\calc@assign@count{\global\csname c@##1\endcsname}{##2}}}% + \DeclareRobustCommand\adjaddtocounter[2]{\@ifundefined{c@##1}{\@nocounterr{##1}}{\calc@assign@count{\global\advance\csname c@##1\endcsname}{##2}}}% + \def\adjsetlengthdefault@##1##2{% + \begingroup + \def\calc@post@scan####1!{% + \def\@tempa{####1}% + \ifx\@tempa\@empty + \endgroup% to end calc processing + % is number only + \global\@adjcalc@needsdefaulttrue + \else + \endgroup% to end calc processing + % full expression + \global\@adjcalc@needsdefaultfalse + \fi + }% + \calc@assign@skip{##1}{##2 \adjcalc@defaultunit}% + \endgroup + \if@adjcalc@needsdefault + ##1=##2 \adjcalc@defaultunit\relax + \else + \calc@assign@skip{##1}{##2}% + \fi + }% + \def\adjcalc@checkdefault##1\@nnil##2##3{% + \ifx\relax##1\relax\else + \calc@assign@skip{##2}{##3}% + \fi + }% + \let\adjsetlengthdefault\adjsetlengthdefault@ +} +\def\adjcalc@pgfmath{% + \DeclareRobustCommand\adjsetlength{\pgfmathsetlength}% + \DeclareRobustCommand\adjaddtolength{\pgfmathaddtolength}% + \DeclareRobustCommand\adjsetcounter{\pgfmathsetcounter}% + \DeclareRobustCommand\adjaddtocounter{\pgfmathaddtocounter}% + \def\adjsetlengthdefault@##1##2{% + \edef\pgfmathresultunitscale{1\adjcalc@defaultunit}% + \let\pgfmathpostparse\pgfmathscaleresult + \pgfmathparse{##2}% + ##1=\pgfmathresult pt\relax + }% + \let\adjsetlengthdefault\adjsetlengthdefault@ +} +\def\adjcalc@overwrite{% + \let\setlength\adjsetlength + \let\addtolength\adjaddtolength + \let\setcounter\adjsetcounter + \let\addtocounter\adjaddtocounter +} +\adjcalc@atend +\endinput +%% +%% End of file `adjcalc.sty'. diff --git a/doc/latex-deps/adjustbox.sty b/doc/latex-deps/adjustbox.sty new file mode 100644 index 00000000..b07f7d9c --- /dev/null +++ b/doc/latex-deps/adjustbox.sty @@ -0,0 +1,1241 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files adjustbox.dtx, adjustbox.ins +%% and the derived file adjustbox.sty. +%% +\ProvidesPackage{adjustbox}[% + 2012/05/21 + v1.0 + Adjusting TeX boxes (trim, clip, ...)] +\RequirePackage{xkeyval} +\RequirePackage{adjcalc} +\def\adjbox@fam{adjbox} +\DeclareOptionX{export}{\def\adjbox@fam{Gin}} +\DeclareOptionX{Export}{\AtEndOfPackage{\let\includegraphics\adjincludegraphics}} +\DeclareOptionX{patch}{% + \PackageWarning{adjustbox}{% + The 'patch' option is now deprecated.\MessageBreak + Use the new \string\adjustimage\space or \string\adjincludegraphics\space macros instead% + \@gobble + }% +} +\DeclareOptionX{minimal}{\let\adjustbox@minimal\endinput} +\DeclareOptionX{pgfmath}{\AtEndOfPackage{\RequirePackage{pgf}\adjcalcset{pgfmath}}} +\DeclareOptionX{calc}{\AtEndOfPackage{\RequirePackage{calc}\adjcalcset{calc}}} +\DeclareOptionX{etex}{\AtEndOfPackage{\adjcalcset{etex}}} +\DeclareOptionX{defaultunit}{\AtEndOfPackage{\adjcalcset{defaultunit={#1}}}} +\DeclareOptionX{pgf}{\PassOptionsToPackage{pgf}{trimclip}} +\DeclareOptionX{PGF}{\PassOptionsToPackage{pgf}{trimclip}\AtEndOfPackage{\RequirePackage{pgf}\adjcalcset{pgfmath}}} +\DeclareOptionX*{% + \IfFileExists{tc-\CurrentOption.def}{% + \PassOptionsToPackage\CurrentOption{trimclip}% + }{% + \PassOptionsToPackage\CurrentOption{graphicx}% + }% +} +\ProcessOptionsX*\relax +\RequirePackage{trimclip} +\RequirePackage{graphicx}[1999/02/16] +\RequirePackage{collectbox}[2012/05/17] +\@ifpackagelater{collectbox}{2012/05/17}{}{% + \let\@Collectbox\@collectbox +} +\newcommand*\adjustboxset{% + \@ifstar + {\adjbox@addkeysafter}% + {\adjbox@addkeysbefore}% +} +\def\adjbox@addkeysbefore#1{% + \ifx\@nnil#1\@nnil + \let\adjbox@keysbefore\@empty + \else + \expandafter\def\expandafter\adjbox@keysbefore\expandafter{\adjbox@keysbefore,#1}% + \let\adjbox@setkeys\adjbox@setkeys@ba + \fi +} +\let\adjbox@keysbefore\@empty +\def\adjbox@addkeysafter#1{% + \begingroup + \def\@tempa{#1}% + \ifx\@tempa\@empty + \endgroup + \let\adjbox@keysafter\@empty + \else + \expandafter\expandafter + \expandafter\endgroup + \expandafter\expandafter + \expandafter\def + \expandafter\expandafter + \expandafter\adjbox@keysafter + \expandafter\expandafter + \expandafter{\expandafter\@tempa\expandafter,\adjbox@keysafter}% + \let\adjbox@setkeys\adjbox@setkeys@ba + \fi +} +\let\adjbox@keysafter\@empty +\newcommand\adjustbox[1]{% + \begingroup + \edef\adjbox@line{\the\inputlineno}% + \let\collectbox@mode\relax + \let\collectbox@noindent\relax + \collectboxcheckenv{adjustbox}% + \ifcollectboxenv\else + \let\adjustbox@noindent\relax + \fi + \begingroup + \adjbox@setkeys{#1}% + \expandafter\expandafter\expandafter + \endgroup + \expandafter + \adjbox@collectbox\expandafter{\expandafter\adjustbox@\expandafter{\XKV@rm}}% +} +\def\adjbox@collectbox{\@collectbox} +\def\adjbox@setkeys@ba{% + \expandafter\expandafter + \expandafter\adjbox@@setkeys@ba + \expandafter\expandafter + \expandafter{\expandafter\adjbox@keysbefore\expandafter}% + \expandafter{\adjbox@keysafter}% +} +\def\adjbox@@setkeys@ba#1#2#3{% + \setkeys*{ADJBOX}{#1,#3,#2}% +} +\def\adjbox@setkeys{% + \setkeys*{ADJBOX}% +} +\let\adjustbox@noindent\noindent +\def\adjustbox@#1{% + \adjbox@Width\width + \adjbox@Height\height + \adjbox@Depth\depth + \adjbox@Totalheight\totalheight + \let\Width\adjbox@Width + \let\Height\adjbox@Height + \let\Depth\adjbox@Depth + \let\Totalheight\adjbox@Totalheight + \let\Gin@esetsize\adjbox@esetsize + \let\@collectbox\@Collectbox + \@tempswatrue + \toks@{{\adjustbox@content}}% + \def\setlength{\adjsetlength}% + \setkeys{adjbox,Gin,adjcalc}{#1}% + \adjbox@esetsize + \adjustbox@noindent + \the\toks@ + \endgroup +} +\def\adjustbox@content{% + \usebox\collectedbox +} +\newdimen\adjbox@Width +\newdimen\adjbox@Height +\newdimen\adjbox@Depth +\newdimen\adjbox@Totalheight +\def\adjbox@esetsize{% + \ifcase0% + \ifx\Gin@ewidth\Gin@exclamation\else 1\fi + \ifx\Gin@eheight\Gin@exclamation\else 1\fi + \relax + \else + \edef\@tempa{\toks@{\noexpand + \Gscale@@box\noexpand\Gin@eresize + {\Gin@ewidth}{\Gin@eheight}{\the\toks@}}}% + \@tempa + \let\Gin@ewidth\Gin@exclamation + \let\Gin@eheight\Gin@exclamation + \fi +} +\newcommand*\adjustimage[2]{% + \adjustbox{#1}{\Gin@clipfalse\Gin@i{#2}}% +} +\newcommand*\adjincludegraphics[2][]{% + \adjustbox{#1}{\Gin@clipfalse\Gin@i{#2}}% +} +{\csname adjustbox@minimal\endcsname} +\def\adjbox@Gin@add#1{% + \def\@tempa{#1}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}}% +} +\def\adjbox@Gin@Add{% + \Gin@esetsize + \@tempswatrue + \adjbox@Gin@add +} +\newcommand\newadjustboxkey{% + \@adjustboxkey\adjustbox@newkey +} +\newcommand\renewadjustboxkey{% + \@adjustboxkey\adjustbox@renewkey +} +\newcommand\provideadjustboxkey{% + \@adjustboxkey\adjustbox@providekey +} +\newcommand\defadjustboxkey{% + \@adjustboxkey\@secondoftwo +} +\def\@adjustboxkey#1{% + \@ifstar + {\@adjustboxkey@i#1*}% + {\@adjustboxkey@i#1\relax}% +} +\def\@adjustboxkey@i#1#2#3{% + \@ifnextchar{[}% + {\@adjustboxkey@ii#1#2{#3}}% + {\@adjustboxkey@ii#1#2{#3}[\@nnil]}% +} +\def\@adjustboxkey@ii#1#2#3[#4]#5{% + \ifx\@nnil#4\relax + \@adjustboxkey@iii#1#2{#3}{}{#5}% + \else + \@adjustboxkey@iii#1#2{#3}{[#4]}{#5}% + \fi +} +\def\@adjustboxkey@iii#1#2#3#4#5{% + #1{#3}{% + \ifx*#2\relax + \define@key\adjbox@fam{#3}#4{#5}% + \else + \define@key\adjbox@fam{#3}#4{% + \adjbox@Gin@Add{\@Collectbox{#5}}% + }% + \fi + }{}% +} +\def\define@adjboxkey#1#2{% + \define@key\adjbox@fam{#1}{% + \adjbox@Gin@Add{#2}% + }% +} +\def\define@adjboxkey@defvalue#1#2#3{% + \define@key\adjbox@fam{#1}[{#2}]{% + \adjbox@Gin@Add{#3}% + }% +} +\def\define@adjboxkey@novalue#1#2{% + \define@key\adjbox@fam{#1}[\@nil]{% + \adjbox@novalue{##1}% + \adjbox@Gin@Add{#2}% + }% +} +\def\adjbox@novalue#1{% + \ifx\@nil#1\else + \PackageWarning{adjustbox}{% + Key '\XKV@tkey' does not await a value.\MessageBreak + Given value will be ignored% + }% + \fi +} +\def\adjustbox@newkey#1#2{% + \@ifundefined{KV@\adjbox@fam @#1}{#2}{% + \PackageError{adjustbox}{Key '#1' already defined}{}% + }% +} +\def\adjustbox@renewkey#1{% + \@ifundefined{KV@\adjbox@fam @#1}{% + \PackageError{adjustbox}{Key '#1' undefined}{}% + }% +} +\def\adjustbox@providekey#1#2{% + \@ifundefined{KV@\adjbox@fam @#1}{#2}{}% +} +\def\adjbox@let@key#1#2#3{% + \expandafter\let\csname KV@#1@#2\expandafter\endcsname\csname KV@#1@#3\endcsname + \expandafter\let\csname KV@#1@#2@default\expandafter\endcsname\csname KV@#1@#3@default\endcsname +} +\define@key{adjbox}{viewport}{% + \def\adjustbox@content{% + \@trimclip{% + \ifGin@clip + \expandafter\@clipvpbox + \else + \expandafter\@viewportbox + \fi + }{#1}% + }% +} +\define@adjboxkey{Viewport}{\trimbox@s{#1}}% +\define@key{adjbox}{trim}{% + \def\adjustbox@content{% + \@trimclip{% + \ifGin@clip + \expandafter\@clipbox + \else + \expandafter\@trimbox + \fi + }{#1}% + }% +} +\define@adjboxkey{Trim}{\trimbox@{#1}}% +\define@adjboxkey{Clip}{\clipbox@{#1}} +\define@adjboxkey{Clip*}{\clipbox@s{#1}} +\define@adjboxkey{margin}{\marginbox@{#1}} +\define@adjboxkey{margin*}{\marginbox@s{#1}} +\adjbox@let@key\adjbox@fam{padding}{margin} +\adjbox@let@key\adjbox@fam{padding*}{margin*} +\define@key\adjbox@fam{scale}{% + \@ifnextchar\bgroup{% + \adjbox@scale@xy + }{% + \adjbox@scale@x + }#1\@nnil +} +\def\adjbox@scale@x#1\@nnil{% + \adjbox@scale@xy{#1}{#1}\@nnil% +} +\def\adjbox@scale@xy#1#2\@nnil{% + \if@tempswa + \adjbox@Gin@add{\Gscale@box{#1}[{#2}]}% + \else + \def\Gin@req@sizes{% + \def\Gin@scalex{#1}\def\Gin@scaley{#2}% + \Gin@req@height\Gin@scaley\Gin@nat@height + \Gin@req@width\Gin@scalex\Gin@nat@width}% + \fi + \@tempswatrue +} +\define@key\adjbox@fam{reflect}[]{% + \adjbox@scale@xy{-1}{1}\@nnil +} +\expandafter\let\csname KV@\adjbox@fam @rotate\endcsname\KV@Gin@angle +\def\adjbox@halign#1#2#3{% + \@collectbox{\@adjbox@halign{#1}{#2}{#3}}% +} +\def\@adjbox@halign#1#2#3{% + \begingroup + \adjsetlength\@tempdima{#1}% + \leavevmode\hb@xt@\the\@tempdima{#2\BOXCONTENT#3}% + \endgroup +} +\define@adjboxkey@defvalue{center}{\linewidth}{\adjbox@halign{#1}\hss\hss} +\define@adjboxkey@defvalue{left}{\linewidth}{\adjbox@halign{#1}\relax\hss} +\define@adjboxkey@defvalue{right}{\linewidth}{\adjbox@halign{#1}\hss\relax} +\newcommand\centerbox[1][\linewidth]{% + \adjustbox@noindent + \adjbox@halign{#1}\hss\hss +} +\newcommand\leftalignbox[1][\linewidth]{% + \adjustbox@noindent + \adjbox@halign{#1}\relax\hss +} +\newcommand\rightalignbox[1][\linewidth]{% + \adjustbox@noindent + \adjbox@halign{#1}\hss\relax +} +\define@adjboxkey@defvalue{outer}{\linewidth}{% + \outersidebox[{#1}]% +} +\define@adjboxkey@defvalue{inner}{\linewidth}{% + \innersidebox[{#1}]% +} +\newcommand\outersidebox[1][\linewidth]{% + \collectboxcheckenv{outersidebox}% + \adjustbox@noindent + \adjbox@halign{#1}{% + \checkoddpage + \ifoddpageoroneside + \hss + \else + \relax + \fi + }{% + \ifoddpageoroneside + \relax + \else + \hss + \fi + }% +} +\newcommand\innersidebox[1][\linewidth]{% + \collectboxcheckenv{innersidebox}% + \adjustbox@noindent + \adjbox@halign{#1}{% + \checkoddpage + \ifoddpageoroneside + \relax + \else + \hss + \fi + }{% + \ifoddpageoroneside + \hss + \else + \relax + \fi + }% +} +\IfFileExists{ifoddpage.sty}{% + \RequirePackage{ifoddpage}% +}{% + \renewcommand\outersidebox[1][]{% + \PackageError{adjustbox}{% + The 'outer' and 'inner' keys as well as the\MessageBreak + \string\outersidebox\space and \string\innersidebox\space macros\MessageBreak + require the 'ifoddpage' package, which is not\MessageBreak + installed}{}% + }% + \let\innersidebox\outersidebox +}% +\define@key\adjbox@fam{raise}{% + \@ifnextchar\bgroup{% + \adjbox@raise + }{% + \adjbox@raise{#1}{}{}% + }#1{}{}{}\@nnil +} +\def\adjbox@raise#1#2#3#4\@nnil{% + \adjbox@Gin@Add{\adjbox@raisebox{#1}{#2}{#3}}% +} +\def\adjbox@raisebox#1#2#3{% + \@collectbox{\adjbox@@raisebox{#1}{#2}{#3}}% +} +\def\adjbox@@raisebox#1#2#3{% + \ifx\@nnil#1\@nnil + \setbox\@tempboxa\copy\collectedbox + \else + \adjsetlength\@tempdima{#1}% + \setbox\@tempboxa\hbox{\raise\@tempdima\copy\collectedbox}% + \fi + \ifx\@nnil#2\@nnil\else + \adjsetlength\@tempdima{#2}% + \ht\@tempboxa\@tempdima + \fi + \ifx\@nnil#3\@nnil\else + \adjsetlength\@tempdima{#3}% + \dp\@tempboxa\@tempdima + \fi + \leavevmode + \box\@tempboxa +} +\define@key\adjbox@fam{valign}{% + \expandafter\adjbox@Gin@Add\expandafter{\csname adjbox@valign@#1\endcsname}% +} +\def\adjboxvtop{\ht\strutbox} +\def\adjboxvcenter{1ex} +\def\adjboxvbottom{-\dp\strutbox} +\def\adjbox@valign@t{% + \adjbox@raisebox{-\height+\adjboxvtop}{}{}% +} +\def\adjbox@valign@T{% + \adjbox@raisebox{-\height}{}{}% +} +\def\adjbox@valign@M{% + \adjbox@raisebox{.5\depth-.5\height}{}{}% +} +\def\adjbox@valign@m{% + \adjbox@raisebox{.5\depth-.5\height+\adjboxvcenter}{}{}% +} +\def\adjbox@valign@c#1{% + \leavevmode + \hbox{% + $\vcenter{\hbox{#1}}\m@th$% + }% +} +\def\adjbox@valign@b{% + \adjbox@raisebox{\depth+\adjboxvbottom}{}{}% +} +\def\adjbox@valign@B{% + \adjbox@raisebox{\depth}{}{}% +} +\define@adjboxkey{set height}{\adjbox@raisebox{}{#1}{}} +\define@adjboxkey{set depth}{\adjbox@raisebox{}{}{#1}} +\define@adjboxkey{set vsize}{\adjbox@raisebox{}#1} +\define@key\adjbox@fam{vspace}{% + \adjbox@vskip#1 {} \@nnil{}% +} +\define@key\adjbox@fam{vspace*}{% + \adjbox@vskip#1 {} \@nnil*% +} +\def\adjbox@vskip#1 #2 #3\@nnil#4{% + \ifx\@nnil#2\@nnil + \adjust@addcode{\par\vspace#4{#1}\noindent}{\par\vspace#4{#1}}% + \else + \adjust@addcode{\par\vspace#4{#1}\noindent}{\par\vspace#4{#2}}% + \fi +} +\define@adjboxkey{min width}{\@minsizebox\height{#1}!} +\define@adjboxkey{max width}{\@maxsizebox\height{#1}!} +\define@adjboxkey{min height}{\@minsizebox\height!{#1}} +\define@adjboxkey{max height}{\@maxsizebox\height!{#1}} +\define@adjboxkey{min totalheight}{\@minsizebox\totalheight!{#1}} +\define@adjboxkey{max totalheight}{\@maxsizebox\totalheight!{#1}} +\def\adjbox@Gin@sizeadd#1#2\@nnil{% + \@ifnextchar\bgroup{% + \adjbox@Gin@Add{#1#2}% + \remove@to@nnil + }{% + \adjbox@Gin@Add{#1{#2}{#2}}% + \remove@to@nnil + }#2\@nnil +} +\define@key\adjbox@fam{min size}{% + \adjbox@Gin@sizeadd{\@minsizebox\height}#1\@nnil +} +\define@key\adjbox@fam{max size}{% + \adjbox@Gin@sizeadd{\@maxsizebox\height}#1\@nnil +} +\define@key\adjbox@fam{min totalsize}{% + \adjbox@Gin@sizeadd{\@minsizebox\totalheight}#1\@nnil +} +\define@key\adjbox@fam{max totalsize}{% + \adjbox@Gin@sizeadd{\@maxsizebox\totalheight}#1\@nnil +} +\define@adjboxkey@defvalue{warn width}{\linewidth}{\@Collectbox{\adjbox@warnwidth{#1}}} +\def\adjbox@warnwidth#1{% + \@tempdima=#1\relax + \advance\@tempdima by -\width + \@tempdima=-\@tempdima + \ifdim\@tempdima>\hfuzz + \typeout{Overfull \string\hbox\space (\the\@tempdima\space too wide) in adjustbox at + \ifnum\adjbox@line=\inputlineno + line \adjbox@line + \else + lines \adjbox@line--\the\inputlineno + \fi + }% + \fi + \BOXCONTENT +} +\newcommand*\minsizebox{% + \collectboxcheckenv{minsizebox}% + \@ifstar{\@minsizebox\totalheight}{\@minsizebox\height}% +} +\expandafter\newcommand\expandafter*\csname minsizebox*\endcsname{% + \@collectboxisenv{minsizebox*}% + \@minsizebox\totalheight +} +\newcommand*\@minsizebox[3]{% + \@collectbox{\@minmaxsizebox>#1{#2}{#3}}% +} +\newcommand*\maxsizebox{% + \collectboxcheckenv{maxsizebox}% + \@ifstar{\@maxsizebox\totalheight}{\@maxsizebox\height}% +} +\expandafter\newcommand\expandafter*\csname maxsizebox*\endcsname{% + \@collectboxisenv{maxsizebox*}% + \@maxsizebox\totalheight +} +\newcommand*\@maxsizebox[3]{% + \@collectbox{\@minmaxsizebox<#1{#2}{#3}}% +} +\newcommand*\@minmaxsizebox[4]{% + \edef\@tempa{#3}% + \edef\@tempb{#4}% + \ifcase0% + \ifx\@tempa\Gin@exclamation + \ifx\@tempb\Gin@exclamation + \else + \ifdim\@tempb#1#2% + 1% + \fi + \fi + \else + \ifx\@tempb\Gin@exclamation + \ifdim\@tempa#1\width + 2% + \fi + \else + \ifdim\@tempa#1\width + \ifdim\@tempb#1#2% + 3% + \else + 2% + \fi + \else + \ifdim\@tempb#1#2% + 1% + \fi + \fi + \fi + \fi + \relax% 0 + \BOXCONTENT + \or + \adjsetlength\@tempdima\@tempb + \Gscale@div\@tempa\@tempdima#2% + \Gscale@box\@tempa[\@tempa]\BOXCONTENT + \or + \adjsetlength\@tempdima\@tempa + \Gscale@div\@tempa\@tempdima\width + \Gscale@box\@tempa[\@tempa]\BOXCONTENT + \or + \adjsetlength\@tempdima\@tempa + \Gscale@div\@tempa\@tempdima\width + \adjsetlength\@tempdima\@tempb + \Gscale@div\@tempb\@tempdima#2% + \ifdim\@tempa\p@#1\@tempb\p@ + \let\@tempb\@tempa + \else + \let\@tempa\@tempb + \fi + \Gscale@box\@tempa[\@tempb]\BOXCONTENT + \fi +} +\define@key\adjbox@fam{frame}[{{\fboxrule}}]{% + \adjbox@frame{\fboxsep\z@}#1 {} {} \relax\relax\@nnil +} +\define@key\adjbox@fam{fbox}[{{\fboxrule}}]{% + \adjbox@frame{}#1 {} {} {} \relax\relax\@nnil +} +\def\adjbox@frame#1#2 #3 #4 #5\relax{% + \adjbox@Gin@Add{% + \@Collectbox{#1\adjbox@@frame{}{#2}{#3}{#4}}% + }% + \remove@to@nnil +} +\define@key\adjbox@fam{cframe}{% + \adjbox@checkcolor + \adjbox@cframe{\fboxsep\z@}#1 {} {} {} \relax\relax\@nnil +} +\define@key\adjbox@fam{cfbox}{% + \adjbox@checkcolor + \adjbox@cframe{}#1 {} {} {} \relax\relax\@nnil +} +\def\adjbox@cframe#1#2 #3 #4 #5 #6\relax{% + \adjbox@Gin@Add{% + \@Collectbox{#1\adjbox@@frame{\color{#2}}{#3}{#4}{#5}}% + }% + \remove@to@nnil +} +\def\adjbox@checkcolor{% + \ifcase0% + \expandafter\ifx\csname ver@xcolor.sty\endcsname\relax + \expandafter\ifx\csname ver@color.sty\endcsname\relax + \expandafter\ifx\csname ver@xxcolor.sty\endcsname\relax 1\fi\fi\fi + \relax + \global\let\adjbox@checkcolor\relax + \else + \PackageError{adjustbox}{Using a macro, environment or key with color\MessageBreak + requires a color package to be loaded manually.\MessageBreak + Recommended is 'xcolor' but 'color' is ok, too}{}. + \fi +} +\def\adjbox@@frame#1#2#3#4{% + \ifx\@nnil#2\@nnil\else + \adjsetlength\fboxrule{#2}% + \fi + \ifx\@nnil#3\@nnil\else + \adjsetlength\fboxsep{#3}% + \fi + \adjsetlength\tc@llx{\fboxrule + \fboxsep}% + \@marginbox\collectedbox\tc@llx\tc@llx\tc@llx\tc@llx + \ifx\@nnil#4\@nnil\else + \setbox\collectedbox + \fi + \hbox\bgroup\color@setgroup + \BOXCONTENT + \hskip-\width + #1% + \adjbox@boxframe\width\height\depth + \color@endgroup\egroup + \ifx\@nnil#4\@nnil\else + \adjsetlength\tc@llx{#4}% + \@marginbox\collectedbox\tc@llx\tc@llx\tc@llx\tc@llx + \BOXCONTENT + \fi +} +\let\adjbox@boxframe\boxframe +\providecommand\adjbox@boxframe[3]{% + \hbox{% + \dimen@ #2% + \advance \dimen@ #3\relax + \lower #3\vbox {% + \hrule \@height \fboxrule + \@tempdima -0.5\fboxrule + \ifodd\fboxrule + \advance \@tempdima \m@ne sp + \fi + \kern \@tempdima + \hbox {% + \advance \dimen@ -\fboxrule + \vrule \@width \fboxrule \@height \dimen@ \@depth \z@ + \@tempdima #1% + \advance \@tempdima -\tw@ \fboxrule + \kern \@tempdima + \vrule \@width \fboxrule \@height \dimen@ \@depth \z@ + }% + \kern -0.5\fboxrule + \hrule \@height \fboxrule + }% + }% +} +\define@key\adjbox@fam{dpi}{% + \adjsetlength\pdfpxdimen{1in/(#1)}% +} +\define@key\adjbox@fam{pxdim}{% + \adjsetlength\pdfpxdimen{#1}% +} +\define@key\adjbox@fam{execute}{% + #1% +} +\define@key\adjbox@fam{@debug}[]{% + \showthe\toks@ +} +\define@key{ADJBOX}{Execute}{% + #1% +} +\define@key{adjbox}{Addcode}{% + \adjust@@addcode#1{}\@nnil% +} +\define@key{adjbox}{addcode}{% + \Gin@esetsize + \@tempswatrue + \adjust@@addcode#1{}\@nnil% +} +\long\def\adjust@@addcode#1#2#3\@nnil{% + \ifx\@nnil#3\@nnil + \adjust@addcode{#1}{#2}% + \else + \PackageError{adjustbox}{Incorrect input for key 'addcode={}{}'!}% + \fi +} +\define@key{adjbox}{precode}{% + \Gin@esetsize + \@tempswatrue + \adjust@addcode{#1}{}% +} +\define@key{adjbox}{Precode}{% + \adjust@addcode{#1}{}% +} +\define@key{adjbox}{appcode}{% + \toks@\expandafter{\the\toks@#1}% +} +\long\def\adjust@addcode#1#2{% + \def\@tempa{#1}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}#2}% +}% +\define@key\adjbox@fam{env}{% + \@ifnextchar\bgroup{% + \adjbox@addenv + }{% + \adjbox@addenv{#1}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@addenv#1#2\@nnil{% + \def\@tempa{\begin{#1}#2}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\the\toks@\end{#1}}% +}% +\define@key\adjbox@fam{bgcolor}{% + \adjbox@checkcolor + \@ifnextchar\bgroup{% + \adjbox@bgcolor + }{% + \adjbox@bgcolor{}{#1}% + }#1\@nnil +} +\def\adjbox@bgcolor#1#2#3\@nnil{% + \ifx\@nnil#1\@nnil + \adjbox@Gin@add{\@Collectbox{\adjbox@@bgcolor{\color{#2}}}}% + \else + \adjbox@Gin@add{\@Collectbox{\adjbox@@bgcolor{\color[#1]{#2}}}}% + \fi +} +\define@key\adjbox@fam{bgcolor*}{% + \adjbox@checkcolor + \adjbox@Gin@add{\@Collectbox{\adjbox@@bgcolor{#1}}}% +} +\def\adjbox@@bgcolor#1{% + \mbox{% + \hbox{% + #1% + \vrule\@width\width\@height\height\@depth\depth% + }% + \hskip-\width + \BOXCONTENT + }% +}% +\newcommand*\bgimagebox[2][]{% + \collectboxcheckenv{bgimagebox}% + \@collectbox{\@bgimagebox{#1}{#2}}% +} +\def\@bgimagebox#1#2{% + \mbox{% + \lower\depth\hbox{% + \edef\@tempa{\noexpand\adjustimage + {#1,width=\the\width,totalheight=\the\totalheight}% + {#2}% + }% + \@tempa + }% + \hskip-\width% + \BOXCONTENT + }% +} +\define@key{adjbox}{bgimage}{% + \@ifnextchar\bgroup{% + \adjbox@bgimage + }{% + \adjbox@bgimage{}{#1}% + }#1\@nnil +} +\def\adjbox@bgimage#1#2#3\@nnil{% + \adjbox@Gin@add{\@Collectbox{\@bgimagebox{#1}{#2}}}% +} +\define@key\adjbox@fam{lap}{% + \@ifnextchar\bgroup{% + \adjbox@lapbox + }{% + \adjbox@lapbox{#1}{}% + }#1{}{}\@nnil +} +\def\adjbox@lapbox#1#2#3\@nnil{% + \ifx\@nnil#2\@nnil + \adjbox@Gin@Add{\lapbox{#1}}% + \else + \adjbox@Gin@Add{\lapbox[{#1}]{#2}}% + \fi +} +\define@key\adjbox@fam{rlap}[]{% + \adjbox@Gin@Add{\lapbox{\width}}% +} +\define@key\adjbox@fam{llap}[]{% + \adjbox@Gin@Add{\lapbox{-\width}}% +} +\newcommand*\lapbox[2][\width-\@tempdimb]{% + \collectboxcheckenv{lapbox}% + \@collectbox{\@lapbox{#1}{#2}}% +} +\def\@lapbox#1#2{% + \adjsetlength\@tempdima{#2}% + \ifdim\@tempdima<\z@ + \@tempdimb=-\@tempdima + \else + \@tempdimb=\@tempdima + \fi + \adjsetlength\@tempdimc{#1}% + \ifdim\@tempdimc<\z@ + \@tempdimc=\z@ + \fi + \leavevmode + \ifdim\@tempdima<\z@ + \hb@xt@\@tempdimc{\hss\hb@xt@\@tempdimb{\usebox\collectedbox\hss}\hskip\@tempdimc}% + \else + \hb@xt@\@tempdimc{\hskip\@tempdimc\hb@xt@\@tempdimb{\hss\usebox\collectedbox}\hss}% + \fi +} +\define@key{ADJBOX}{minipage}{% + \adjbox@page{minipage}{#1}% +} +\define@key{ADJBOX}{varwidth}{% + \adjbox@page{varwidth}{#1}% +} +\def\adjbox@page#1#2{% + \@ifnextchar[{% + \adjbox@@page{#1}% + }{% + \@ifnextchar\bgroup{% + \adjbox@@page{#1}% + }{% + \adjbox@@page{#1}{{#2}}\@nnil% + \remove@to@nnil + }% + }#2\@nnil +} +\def\adjbox@@page#1#2\@nnil{% + \def\adjbox@collectbox##1{\collectbox@{\adjbox@set\begin{#1}#2\adjbox@reset}{##1}{\end{#1}}}% +} +\def\adjbox@set{% + \let\adjbox@origsetlength\setlength + \def\setlength{\adjsetlength}% +} +\def\adjbox@reset{% + \let\setlength\adjbox@origsetlength +} +\newcommand*\stackbox[1][c]{% + \collectboxcheckenv{stackbox}% + \@ifnextchar[%] + {\@stackbox{#1}}% + {\@@stackbox{#1}{b}[]}% +} +\def\@stackbox#1[#2]{% + \@testopt{\@@stackbox{#1}{#2}}{}% +} +\def\@@stackbox#1#2[#3]{% + \collectbox@ + {\begin{varwidth}[#2]{\linewidth}\csname adjbox@halign@#1\endcsname#3} + \BOXCONTENT + {\end{varwidth}}% +} +\def\adjbox@halign@c{\centering} +\def\adjbox@halign@l{\raggedright} +\def\adjbox@halign@r{\raggedleft} +\def\adjbox@halign@j{\let\\\newline} +\define@key{ADJBOX}{stack}[{}{}{}]{% + \adjbox@stack#1{}{}{}\@nnil +} +\def\adjbox@stack#1#2#3#4\@nnil{% + \ifx\@nnil#1\@nnil + \adjbox@@stack{c}{b}{}% + \else + \ifx\@nnil#2\@nnil + \adjbox@@stack{#1}{b}{}% + \else + \adjbox@@stack{#1}{#2}{#3}% + \fi\fi +} +\def\adjbox@@stack#1#2#3{% + \def\adjbox@collectbox##1{% + \collectbox@{% + \begin{varwidth}[#2]{\linewidth}% + \csname adjbox@halign@#1\endcsname#3% + }{##1}{\end{varwidth}}% + }% +} +\IfFileExists{varwidth.sty} + {\RequirePackage{varwidth}}{% + \define@key{ADJBOX}{varwidth}{% + \PackageError{adjustbox}{The 'varwidth' key requires the 'varwidth' package, which is not installed}{}% + } + \define@key{ADJBOX}{stack}{% + \PackageError{adjustbox}{The 'stack' key requires the 'varwidth' package, which is not installed}{}% + } +}% +\define@key{ADJBOX}{tabular}{% + \@ifnextchar[{% + \adjbox@tabular{tabular}% + }{% + \adjbox@tabular{tabular}{{#1}}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@tabular#1#2\@nnil{% + \ifcollectboxenv + \adjbox@innerenv{#1}{#2}\@nnil + \else + \def\adjbox@collectbox##1{\collectbox@tab{#1}{#2}{}{##1}{}}% + \fi +} +\define@key{ADJBOX}{tabular*}{% + \adjbox@tabular{tabular*}#1\@nnil +} +\define@key{ADJBOX}{array}{% + \@ifnextchar[{% + \adjbox@array% + }{% + \adjbox@array{{#1}}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@array#1\@nnil{% + \ifcollectboxenv + \adjbox@innercode{\(\begin{array}#1}{\end{array}\)}% + \else + \def\adjbox@collectbox##1{\collectbox@tab{array}{#1}{\(}{##1}{\)}}% + \fi +} +\define@key{ADJBOX}{innerenv}{% + \@ifnextchar\bgroup{% + \adjbox@@innerenv + }{% + \adjbox@innerenv{#1}\@nnil% + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@innerenv#1#2\@nnil{% + \def\adjbox@collectbox##1{\collectbox@{\begin{#1}#2}{##1}{\end{#1}}}% +}% +\def\adjbox@@innerenv#1{% + \adjbox@@@innerenv{#1}{}% +}% +\def\adjbox@@@innerenv#1#2\@nnil{% + \expandafter\adjbox@@@@innerenv\expandafter{\@gobble#2}{#1}% +}% +\def\adjbox@@@@innerenv#1#2{% + \adjbox@innerenv{#2}{#1}\@nnil +}% +\define@key{ADJBOX}{innercode}{% + \adjbox@innercode#1{}{}% +} +\def\adjbox@innercode#1#2{% + \def\adjbox@collectbox##1{\collectbox@{#1}{##1}{#2}}% +}% +\define@key\adjbox@fam{label}{% + \def\adjbox@label{\label{#1}}% +} +\let\adjbox@label\@empty +\chardef\adjbox@caption@pos=11 +\define@key\adjbox@fam{captionabove}{% + \chardef\adjbox@caption@pos=1 + \csname KV@\adjbox@fam @caption\endcsname{#1}% +} +\define@key\adjbox@fam{captionbelow}{% + \chardef\adjbox@caption@pos=0 + \csname KV@\adjbox@fam @caption\endcsname{#1}% +} +\define@key\adjbox@fam{caption}{% + \@ifnextchar{[}{% + \adjbox@def@caption + }{% + \adjbox@def@@caption + }#1\@nnil +} +\def\adjbox@def@@caption#1\@nnil{% + \def\adjbox@caption{\caption{#1}}% +} +\def\adjbox@def@caption[#1]#2\@nnil{% + \def\adjbox@caption{\caption[#1]{#2}}% +} +\let\adjbox@caption\@empty +\define@key\adjbox@fam{figure}[]{% + \let\adjustbox@noindent\relax + \ifx\@nnil#1\@nnil + \adjbox@addfloat{figure}{\begin{figure}}{}{\end{figure}}% + \else + \adjbox@addfloat{figure}{\begin{figure}}{[{#1}]}{\end{figure}}% + \fi +} +\define@key\adjbox@fam{float}{% + \let\adjustbox@noindent\relax + \@ifnextchar\bgroup{% + \adjbox@float + }{% + \adjbox@float{#1}{}\@nnil + \remove@to@nnil + }#1\@nnil +} +\def\adjbox@float#1#2\@nnil{% + \adjbox@addfloat{#1}{\begin{#1}}{#2}{\end{#1}}% +} +\define@key\adjbox@fam{nofloat}[figure]{% + \adjbox@addfloat{#1}{\adjnofloat}{{#1}}{\endadjnofloat}% +} +\def\adjbox@caption@table@pos{1} +\def\adjbox@addfloat#1#2#3#4{% + \ifnum\adjbox@caption@pos>10 + \chardef\adjbox@caption@pos=0\csname adjbox@caption@#1@pos\endcsname\relax + \fi + \ifcase\adjbox@caption@pos + \def\@tempa{\adjust@addcode{#2#3}}% + \expandafter\expandafter\expandafter\@tempa + \expandafter\expandafter\expandafter{\expandafter\adjbox@caption\adjbox@label#4}% + \else + \def\@tempa##1{\adjust@addcode{#2#3\adjbox@captionabove##1}}% + \expandafter\expandafter\expandafter\@tempa + \expandafter\expandafter\expandafter + {\expandafter\adjbox@caption\adjbox@label}{#4}% + \fi +} +\@ifpackageloaded{caption}{% + \let\adjbox@captionabove\relax +}{% + \def\adjbox@captionabove{% + \begingroup + \edef\@tempa{\endgroup + \abovecaptionskip=\the\belowcaptionskip\relax + \belowcaptionskip=\the\abovecaptionskip\relax + }% + \@tempa + }% + \AtBeginDocument{% + \@ifpackageloaded{caption}{% + \global\let\adjbox@captionabove\relax + }{}% + }% +} +\newenvironment{adjnofloat}[1]{% + \trivlist + \def\@captype{#1}% + \parindent\z@ + \item\relax +}{% + \endtrivlist +} +\define@key\adjbox@fam{phantom}[]{% + \expandafter\ifx\csname #1phantom\endcsname\relax + \adjust@addcode{\phantom}{}% + \else + \expandafter\adjust@addcode\expandafter{\csname #1phantom\endcsname}{}% + \fi +} +\newcommand*\phantombox[3]{% + \begingroup + \adjsetlength\@tempdima{#1}% + \adjsetlength\@tempdimb{#2}% + \adjsetlength\@tempdimc{#3}% + \setbox\collectedbox\hbox{}% + \wd\collectedbox\@tempdima + \ht\collectedbox\@tempdimb + \dp\collectedbox\@tempdimc + \leavevmode + \box\collectedbox + \endgroup +} +\define@key\adjbox@fam{gobble}[\@nil]{% + \adjbox@novalue{#1}% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\@Collectbox{}}% +} +\adjbox@let@key\adjbox@fam{discard}{gobble}% +\define@adjboxkey{content}{\@Collectbox{#1}}% +\define@adjboxkey{gstore}{\global\@collectboxto{#1}{\BOXCONTENT}} +\define@key\adjbox@fam{gstore*}{% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\global\sbox{#1}}% +} +\define@key{adjbox}{gstore width}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\width\BOXCONTENT}}% +} +\define@key{adjbox}{gstore depth}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\depth\BOXCONTENT}}% +} +\define@key{adjbox}{gstore height}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\height\BOXCONTENT}}% +} +\define@key{adjbox}{gstore totalheight}{% + \adjbox@Gin@Add{\@Collectbox{\global#1=\totalheight\BOXCONTENT}}% +} +\define@key{adjbox}{gstore sizes}{% + \adjbox@Gin@Add{\@Collectbox{\adjbox@gstore@sizes#1\relax\relax\relax\relax\@nnil\BOXCONTENT}}% +} +\def\adjbox@gstore@sizes#1#2#3#4#5\@nnil{% + \ifx\relax#1\relax\else + \global#1=\width + \fi + \ifx\relax#2\relax\else + \global#2=\height + \fi + \ifx\relax#3\relax\else + \global#3=\depth + \fi + \ifx\relax#4\relax\else + \global#4=\totalheight + \fi +} +%%\RequirePackage{storebox} +\newcommand\splitbox[2]{% + \collectboxcheckenv{splitbox}% + \@collectbox{\@splitbox{#1}{#2}}% +} +\define@adjboxkey{split}{\@Collectbox{\@splitbox#1}} +\def\@splitbox#1#2{% + \ifstorebox + \storebox\splittedbox{\BOXCONTENT}% + \setbox\collectedbox\hbox{\usestorebox\splittedbox}% + \fi + \xdef\@tempa{#1}% + \xdef\@tempb{#2}% + \ifx\@tempa\Gin@exclamation + \@tempdima\maxdimen + \else + \adjsetlength\@tempdima\@tempa + \fi + \ifx\@tempb\Gin@exclamation + \Gin@nat@height\maxdimen + \else + \adjsetlength\Gin@nat@height\@tempb + \fi + \ifdim\@tempdima>\width + \@tempdima\width + \fi + \ifdim\Gin@nat@height>\totalheight + \Gin@nat@height\totalheight + \fi + \tc@llx\z@ + \tc@lly\totalheight + \tc@urx\width + \tc@ury\z@ + \advance\tc@lly-\Gin@nat@height + \@@splitbox +} +\def\@@splitbox{% + \advance\tc@urx-\@tempdima + \@@@splitbox + \ifdim\tc@urx>\z@ + \advance\tc@llx+\@tempdima + \expandafter\@@splitbox + \else + \ifdim\tc@lly<\splitbox@epsilon + \splitboxlastnewline + \else + \splitboxnewline + \tc@llx\z@ + \tc@urx\width + \advance\tc@lly-\Gin@nat@height + \advance\tc@ury+\Gin@nat@height + \expandafter\expandafter + \expandafter\@@splitbox + \fi + \fi +} +\def\@@@splitbox{% + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\tc@llx\tc@lly\tc@urx\tc@ury + \splitboxcmd{\usebox\collectedbox}% + \endgroup +} +\def\@@@splitbox{% + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\tc@llx\tc@lly\tc@urx\tc@ury + \splitboxcmd{\usebox\collectedbox}% + \endgroup +} +\let\splitboxcmd\empty +\newcommand\splitboxnewline{\\} +\newcommand\splitboxlastnewline{\splitboxnewline} +\def\splitbox@epsilon{100sp} +\newcommand\pagebreakbox{% + \par\noindent + \collectboxcheckenv{pagebreakbox}% + \@collectbox{\@pagebreakbox}% +} +\define@key\adjbox@fam{pagebreak}[]{% + \adjbox@Gin@Add{\@Collectbox{\@pagebreakbox}}% +} +\def\@pagebreakbox{% + \sbox\collectedbox{\raise\dp\collectedbox\hbox{\BOXCONTENT}}% + \ifstorebox + \storebox\splittedbox{\BOXCONTENT}% + \setbox\collectedbox\hbox{\usestorebox\splittedbox}% + \fi + \adjsetlength\tc@lly + {\totalheight-\pagegoal+\pagetotal+\pagebreakboxoffset}% + \ifdim\tc@lly>\z@ + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\z@\tc@lly\z@\z@ + \BOXCONTENT + \endgroup + \par\noindent + \adjsetlength\tc@ury{\totalheight-\tc@lly}% + \ifdim\tc@lly>\textheight + \loop + \advance\tc@lly-\textheight + \begingroup + \setbox\collectedbox=\copy\collectedbox + \@clipbox\collectedbox\z@\tc@lly\z@\tc@ury + \BOXCONTENT + \endgroup + \advance\tc@ury\textheight + \par\noindent + \ifdim\tc@lly>\textheight + \repeat + \@clipbox\collectedbox\z@\z@\z@\tc@ury + \BOXCONTENT + \else + \@clipbox\collectedbox\z@\z@\z@\tc@ury + \par\noindent + \BOXCONTENT + \fi + \else + \BOXCONTENT% + \fi + \par +} +\newcommand*\pagebreakboxoffset{\ht\strutbox} +\endinput +%% +%% End of file `adjustbox.sty'. diff --git a/doc/latex-deps/collectbox.sty b/doc/latex-deps/collectbox.sty new file mode 100644 index 00000000..fd732223 --- /dev/null +++ b/doc/latex-deps/collectbox.sty @@ -0,0 +1,328 @@ +%% +%% This is file `collectbox.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% collectbox.dtx (with options: `collectbox.sty') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from collectbox.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file collectbox.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% Copyright (C) 2012 by Martin Scharrer +%% -------------------------------------------------------------------- +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files collectbox.dtx and collectbox.ins +%% and the derived filebase collectbox.sty. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{collectbox}[% + 2012/05/17 + v0.4b + Collect macro arguments as boxes] +\newsavebox\collectedbox +\newcommand*\collectbox{% + \@ifstar + {\collectbox@a{{\BOXCONTENT}}}% + {\collectbox@a{}}% +} +\long\def\collectbox@a#1{% + \@ifnextchar[% + {\collectbox@b{#1}}% + {\collectbox@b{#1}[]}% +} +\long\def\collectbox@b#1[#2]#3{% + \@ifnextchar[% + {\collectbox@c{#2}{#3#1}}% + {\collectbox@c{#2}{#3#1}[]}% +} +\long\def\collectbox@c#1#2[#3]{% + \collectbox@{#1}{#2}{#3}% +} +\let\collect@box\hbox +\let\collectbox@mode\leavevmode +\newcommand\collectbox@[3]{% + \begingroup + \collectbox@mode + \@temptokena{#3\collectbox@end#2\endgroup}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup + #1\bgroup + \aftergroup\the + \aftergroup\@temptokena + \collectbox@bgroup +} +\let\collectbox@macro\collectbox@ +\newcommand\collectbox@env[3]{% + \collectbox@mode + \def\collectboxenvend{#3\collectbox@end#2\collectbox@currenvir}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup + \collectbox@reset + \ignorespaces + #1% +} +\def\collectbox@currenvir{% + \edef\@currenvir{\@currenvir}% +} +\def\collectbox@macro@bgroup{% + \@ifnextchar\bgroup + {\let\@let@token=}% + {\collectbox@arg}% +} +\def\collectbox@env@bgroup{% + \collectbox@reset + \ignorespaces +} +\let\collectbox@bgroup\collectbox@macro@bgroup +\def\collectbox@setgroup{% + \color@setgroup +} +\def\collectbox@endgroup{% + \collectbox@endcode + \color@endgroup +} +\let\collectbox@endcode\relax +\newcommand\@collectbox[1]{% + \begingroup + \collectbox@mode + \@temptokena{\collectbox@end#1\endgroup}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup\bgroup + \aftergroup\the + \aftergroup\@temptokena + \collectbox@bgroup +} +\newcommand\@Collectbox[2]{% + \begingroup + \collectbox@mode + \sbox\collectedbox{#2}% + \collectbox@setdims + #1% + \endgroup +} +\def\collectbox@arg#1{% + #1\egroup +} +\def\collectbox@end{% + \collectbox@endgroup + \egroup + \collectbox@setdims + \ifcollectboxenv + \collectbox@reset + \collectbox@currenvir + \fi +} +\def\collectbox@setdims{% + \collectbox@protecteddef\BOXCONTENT{\usebox\collectedbox}% + \collectbox@protecteddef\width{\wd\collectedbox}% + \collectbox@protecteddef\height{\ht\collectedbox}% + \collectbox@protecteddef\depth{\dp\collectedbox}% + \collectbox@protecteddef\totalheight{\@ovri}% + \totalheight\height + \advance\totalheight\depth +}% +\def\collectbox@reset{% + \let\collectbox@endcode\relax + \let\collectbox@bgroup\collectbox@macro@bgroup + \let\collectbox@\collectbox@macro + \collectboxenvfalse +} +\begingroup +\expandafter\ifx\csname protected\endcsname\relax + \let\collectbox@protecteddef\def% +\else + \gdef\collectbox@protecteddef{\protected\def}% +\fi +\endgroup +\let\collectbox@code\empty +\newcommand\collectboxto[1]{% + \@ifnextchar[% + {\collectboxto@a{#1}}% + {\collectboxto@a{#1}[]}% +} +\long\def\collectboxto@a#1[#2]#3{% + \@ifnextchar[% + {\collectboxto@b{#1}{#2}{#3}}% + {\collectboxto@b{#1}{#2}{#3}[]}% +} +\long\def\collectboxto@b#1#2#3[#4]{% + \collectboxto@{#1}{#2}{#3}{#4}% +} +\newcommand\collectboxto@[4]{% + \collectbox@mode + \setbox#1\collect@box\bgroup + \def\collectbox@code{#4\collectbox@endgroup\egroup#3}% + \collectbox@setgroup#2\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand\@collectboxto[2]{% + \collectbox@mode + \setbox#1\collect@box\bgroup + \def\collectbox@code{\collectbox@endgroup\egroup#2}% + \collectbox@setgroup\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand\nocollectbox@[3]{% + \collectbox@mode + \collect@box\bgroup + \def\collectbox@code{#3\egroup#2}% + #1\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand\nocollectbox@to[4]{% + \collectbox@mode + \collect@box to #1\bgroup + \def\collectbox@code{#4\egroup#3}% + #2\bgroup + \aftergroup\collectbox@code + \collectbox@bgroup +} +\newcommand*\collectboxcheckenv[1]{% + \begingroup + \def\@tempa{#1}% + \expandafter\endgroup + \ifx\@currenvir\@tempa + \@collectboxisenv{#1}% + \fi +} +\def\@collectboxisenv#1{% + \collectbox@noindent + \collectboxenvtrue + \edef\@currenvir{\@currenvir\noexpand\empty}% + \let\collectbox@bgroup\collectbox@env@bgroup + \let\collectbox@endcode\collectbox@env@endcode + \let\collectbox@\collectbox@env + \expandafter\ifx\csname end#1\endcsname\relax + \expandafter\let\csname end#1\endcsname\collectbox@envend + \fi +} +\newif\ifcollectboxenv +\let\collectbox@noindent\noindent +\def\collectbox@env@endcode{\ifhmode\unskip\fi}% +\def\collectbox@envend{\collectboxenvend}% +\def\collectboxenvend{% + \egroup + \collectbox@currenvir +}% +\newcommand\collectboxtabular[3][c]{% + \collectbox@tab{tabular}{[#1]{#2}}{}{#3}{}% +} +\newcommand\collectboxtabularstar[4][c]{% + \collectbox@tab{tabular*}{[#1]{#2}{#3}}{}{#4}{}% +} +\newcommand\collectboxarray[2]{% + \collectbox@tab{array}{{#1}}{\(}{#2}{\)}% +} +\def\collectbox@checkarray{% +\@ifpackageloaded{array}{% + \let\collectbox@realarraycr\@arraycr + \def\collectbox@setarraycr{% + \let\@arraycr\collebox@cr + \def\ialign{\let\@arraycr\collectbox@realarraycr \everycr {}\tabskip \z@skip \halign}% + }% +}{% + \let\collectbox@realarraycr\@tabularcr + \def\collectbox@setarraycr{% + \let\@tabularcr\collebox@cr + \def\ialign{\let\noexpand\@tabularcr\noexpand\collectbox@realarraycr \everycr {}\tabskip \z@skip \halign}% + }% +}% +} +\collectbox@checkarray +\AtBeginDocument{\collectbox@checkarray}% +\def\collectbox@dorealarraycr{% + \expandafter\collectbox@realarraycr\collectbox@aftercrstuff +} +\let\collectbox@aftercrstuff\empty +\def\collectbox@tab#1#2#3#4#5{% + \begingroup + \collectbox@mode + \def\collectbox@codeafter{#4\endgroup}% + \def\collectbox@endtabenv{\end{#1}#5\collectbox@end}% + \def\collectbox@dotab{#3\begin{#1}#2}% + \setbox\collectedbox\collect@box\bgroup + \collectbox@setgroup + \collectbox@setarraycr + \afterassignment\collectbox@dotab + \let\@let@token=% +} +\def\collebox@cr{% + \@ifstar\collebox@@cr\collebox@@cr% +} +\def\collebox@@cr{% + \@ifnextchar[% + \collebox@@cr@opt + {\collebox@@@cr{}}% +} +\def\collebox@@cr@opt[#1]{% + \collebox@@@cr{[#1]}% +} +\def\collebox@@@cr#1{% + \def\collectbox@aftercrstuff{#1}% + \expandafter\collebox@@@@cr + \romannumeral-`0% +} +\def\collebox@@@@cr{% + \@ifnextchar\egroup{\collectbox@dorealarraycr\collectbox@aftertab}{% + \ifx\@let@token\noalign + \expandafter\collectbox@handlenoalign + \else + \expandafter\collectbox@dorealarraycr + \fi + }% +} +\def\collectbox@handlenoalign#1#2{% + \collectbox@dorealarraycr + \noalign{\bgroup\aftergroup\collectbox@afternoalign#2}% +} +\def\collectbox@handlenextnoalign#1#2{% + \egroup + \noalign{\bgroup\aftergroup\collectbox@afternoalign#2}% +} +\def\collectbox@afternoalign{% + \expandafter\collectbox@@afternoalign + \romannumeral-`0% +} +\def\collectbox@@afternoalign{% + \@ifnextchar\egroup{\egroup\collectbox@aftertab}{% + \ifx\@let@token\noalign + \expandafter\collectbox@handlenextnoalign + \else + \expandafter\egroup + \fi + }% +} +\def\collectbox@aftertab{% + \collectbox@endtabenv + \afterassignment\collectbox@codeafter + \let\@let@token=% +} +\endinput +%% +%% End of file `collectbox.sty'. diff --git a/doc/latex-deps/tc-pgf.def b/doc/latex-deps/tc-pgf.def new file mode 100644 index 00000000..0b32c59c --- /dev/null +++ b/doc/latex-deps/tc-pgf.def @@ -0,0 +1,37 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesFile{tc-pgf.def}[2012/05/13 v1.0 trimclip fall-back clipping driver using PGF] +\RequirePackage{pgf} +\def\@cliptoboxdim#1{% + \setbox#1\hbox{\begin{pgfpicture}% + \pgfpathmoveto{\pgfqpoint\z@{-\dp#1}}% + \pgfpathlineto{\pgfqpoint\z@{\ht#1}}% + \pgfpathlineto{\pgfqpoint{\wd#1}{\ht#1}}% + \pgfpathlineto{\pgfqpoint{\wd#1}{-\dp#1}}% + \pgfpathclose + \pgfusepathqclip + \pgfset{inner sep=\z@,outer sep=\z@,minimum size=\z@}% + \pgfnode{rectangle}{base west}{\usebox#1}{}{}% + \pgfsetbaselinepointnow{\pgfpoint\z@\z@}% + \end{pgfpicture}}% +} +\endinput +%% +%% End of file `tc-pgf.def'. diff --git a/doc/latex-deps/tocloft.sty b/doc/latex-deps/tocloft.sty new file mode 100644 index 00000000..907d17a7 --- /dev/null +++ b/doc/latex-deps/tocloft.sty @@ -0,0 +1,1110 @@ +%% +%% This is file `tocloft.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tocloft.dtx (with options: `usc') +%% +%% Author: Peter Wilson, Herries Press +%% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +%% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +%% Copyright 1998-2003 Peter R. Wilson +%% Copyright 2009 Will Robertson +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any +%% later version: +%% +%% This work has the LPPL maintenance status "maintained". +%% The Current Maintainer of this work is Will Robertson. +%% +%% This work consists of the files listed in the README file. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tocloft}[2013/05/02 v2.3f parameterised ToC, etc., typesetting] +\newcommand{\@cftquit}{} +\newif\if@cfthaschapter +\newif\if@cftkoma +\@cftkomafalse +\@ifclassloaded{scrartcl}{\@cftkomatrue}{} +\@ifclassloaded{scrreprt}{\@cftkomatrue}{} +\@ifclassloaded{scrbook}{\@cftkomatrue}{} +\newif\if@cfttitlesec +\AtBeginDocument{\@ifpackageloaded{titlesec}{\@cfttitlesectrue}{}} +\@ifundefined{chapter}{% + \@cfthaschapterfalse + \@ifundefined{section}{% + \PackageWarning{tocloft}% + {I don't recognize any sectional divisions so I'll do nothing} + \renewcommand{\@cftquit}{\endinput} + }{\PackageInfo{tocloft}{The document has section divisions}} + }{\@cfthaschaptertrue + \PackageInfo{tocloft}{The document has chapter divisions}} +\@cftquit +\newif\if@cfttocbibind +\AtBeginDocument{% + \@ifpackageloaded{tocbibind}{\@cfttocbibindtrue}{\@cfttocbibindfalse} + \if@cfttocbibind + \@ifpackagelater{tocbibind}{1998/11/16}{}{% + \PackageWarning{tocloft}{% +You are using a version of the tocbibind package\MessageBreak +that is not compatible with tocloft.\MessageBreak +The results may be surprising.\MessageBreak +Consider installing the current version of tocbibind.}} + \fi +} +\newif\if@cftnctoc\@cftnctocfalse +\DeclareOption{titles}{\@cftnctoctrue} + %% \ProcessOptions\relax +\newif\if@cftsubfigopt\@cftsubfigoptfalse +\DeclareOption{subfigure}{\@cftsubfigopttrue} + +\ProcessOptions\relax + +\newcommand{\tocloftpagestyle}[1]{% + \def\@cftpagestyle{\thispagestyle{#1}}} +\tocloftpagestyle{plain} + +\newcommand{\cftmarktoc}{% + \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}} +\newcommand{\cftmarklof}{% + \@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}} +\newcommand{\cftmarklot}{% + \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}} +\if@cftkoma + \renewcommand{\cftmarktoc}{% + \@mkboth{\contentsname}{\contentsname}} + \renewcommand{\cftmarklof}{% + \@mkboth{\listfigurename}{\listfigurename}} + \renewcommand{\cftmarklot}{% + \@mkboth{\listtablename}{\listtablename}} +\fi +\providecommand{\@cfttocstart}{% + \if@cfthaschapter + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \fi} +\providecommand{\@cfttocfinish}{% + \if@cfthaschapter + \if@restonecol\twocolumn\fi + \fi} +\providecommand{\phantomsection}{} + +\newcommand{\@cftdobibtoc}{% + \if@dotoctoc + \if@bibchapter + \phantomsection + \addcontentsline{toc}{chapter}{\contentsname} + \else + \phantomsection + \addcontentsline{toc}{\@tocextra}{\contentsname} + \fi + \fi} + +\newlength{\cftparskip} +\setlength{\cftparskip}{0pt} + +\AtBeginDocument{% +\if@cftnctoc\else + \renewcommand{\tableofcontents}{% + \@cfttocstart + \par + \begingroup + \parindent\z@ \parskip\cftparskip + \@cftmaketoctitle + \if@cfttocbibind + \@cftdobibtoc + \fi + \@starttoc{toc}% + \endgroup + \@cfttocfinish} +\fi +} +\newcommand{\@cftmaketoctitle}{% + \addpenalty\@secpenalty + \if@cfthaschapter + \vspace*{\cftbeforetoctitleskip}% + \else + \vspace{\cftbeforetoctitleskip}% + \fi + \@cftpagestyle + {\interlinepenalty\@M + {\cfttoctitlefont\contentsname}{\cftaftertoctitle}% + \cftmarktoc + \par\nobreak + \vskip \cftaftertoctitleskip + \@afterheading}} +\newlength{\cftbeforetoctitleskip} +\newlength{\cftaftertoctitleskip} +\if@cfthaschapter + \setlength{\cftbeforetoctitleskip}{50pt} + \setlength{\cftaftertoctitleskip}{40pt} +\else + \setlength{\cftbeforetoctitleskip}{3.5ex \@plus 1ex \@minus .2ex} + \setlength{\cftaftertoctitleskip}{2.3ex \@plus.2ex} +\fi +\if@cfthaschapter + \newcommand{\cfttoctitlefont}{\normalfont\Huge\bfseries} + \if@cftkoma\renewcommand{\cfttoctitlefont}{\size@chapter\sectfont}\fi +\else + \newcommand{\cfttoctitlefont}{\normalfont\Large\bfseries} + \if@cftkoma\renewcommand{\cfttoctitlefont}{\size@section\sectfont}\fi +\fi +\newcommand{\cftaftertoctitle}{} +\newcommand{\cftsetpnumwidth}[1]{\renewcommand{\@pnumwidth}{#1}} +\newcommand{\cftsetrmarg}[1]{\renewcommand{\@tocrmarg}{#1}} +\newcommand{\cftpnumalign}{r} +\providecommand{\cftdot}{.} +\providecommand{\cftdotfill}[1]{% + \def\@tempa{#1}% + \def\@tempb{\cftnodots}% + \ifx\@tempa\@tempb + \hfill + \else + \leaders\hbox{$\m@th\mkern #1 mu\hbox{\cftdot}\mkern #1 mu$}\hfill + \fi +} +\providecommand{\cftdotsep}{4.5} +\newcommand{\cftnodots}{5000} +\newcommand{\cftparfillskip}{\parfillskip=0pt plus1fil} +\renewcommand{\numberline}[1]{% + \hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb} +\newcommand{\@cftbsnum}{} +\newcommand{\@cftasnum}{} +\newcommand{\@cftasnumb}{} +\newif\if@cftdopart +\newif\if@cfthaspart +\@ifundefined{part}{\@cfthaspartfalse}{\@cfthasparttrue} +\if@cfthaspart +\renewcommand*{\l@part}[2]{% + \@cftdopartfalse + \ifnum \c@tocdepth >-2\relax + \if@cfthaschapter + \@cftdoparttrue + \fi + \ifnum \c@tocdepth >\m@ne + \if@cfthaschapter\else + \@cftdoparttrue + \fi + \fi + \fi + \if@cftdopart + \if@cfthaschapter + \addpenalty{-\@highpenalty}% + \else + \addpenalty\@secpenalty + \fi + \addvspace{\cftbeforepartskip}% + \begingroup + {\leftskip \cftpartindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftpartindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftpartnumwidth\relax + \let\@cftbsnum \cftpartpresnum + \let\@cftasnum \cftpartaftersnum + \let\@cftasnumb \cftpartaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftpartfont \if@cftkoma\else\if@cfttitlesec\else\cftpartpresnum\fi\fi #1}% + \cftpartfillnum{#2}} + \nobreak + \if@cfthaschapter + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \else + \if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \fi + \fi + \endgroup + \fi} +\fi +\if@cfthaspart + \newlength{\cftbeforepartskip} + \setlength{\cftbeforepartskip}{2.25em \@plus\p@} + \newlength{\cftpartnumwidth} + \setlength{\cftpartnumwidth}{0em} + \newcommand{\cftpartfont}{\large\bfseries} + \newcommand{\cftpartpresnum}{} + \newcommand{\cftpartaftersnum}{} + \newcommand{\cftpartaftersnumb}{} + \newcommand{\cftpartleader}{\large\bfseries\cftdotfill{\cftpartdotsep}} + \newcommand{\cftpartdotsep}{\cftnodots} + \newcommand{\cftpartpagefont}{\large\bfseries} + \newcommand{\cftpartafterpnum}{} + \newlength{\cftpartindent} + \setlength{\cftpartindent}{0em} + \newcommand{\cftpartfillnum}[1]{% + {\cftpartleader}% + {\makebox[\@pnumwidth][\cftpnumalign]{\cftpartpagefont #1}\cftpartafterpnum\par}% + } + \if@cftkoma + \setlength{\cftpartnumwidth}{2em} + \renewcommand{\cftpartfont}{\sectfont\large} + \renewcommand{\cftpartpagefont}{\sectfont\large} + \fi +\fi +\if@cfthaschapter +\renewcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip \cftbeforechapskip + {\leftskip \cftchapindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftchapindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftchapnumwidth\relax + \let\@cftbsnum \cftchappresnum + \let\@cftasnum \cftchapaftersnum + \let\@cftasnumb \cftchapaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftchapfont #1}\nobreak + \cftchapfillnum{#2}}% + \fi}% +\fi +\if@cfthaschapter + \newlength{\cftbeforechapskip} + \setlength{\cftbeforechapskip}{1.0em \@plus\p@} + \newlength{\cftchapindent} + \setlength{\cftchapindent}{0em} + \newlength{\cftchapnumwidth} + \setlength{\cftchapnumwidth}{1.5em} + \newcommand{\cftchapfont}{\bfseries} + \newcommand{\cftchappresnum}{} + \newcommand{\cftchapaftersnum}{} + \newcommand{\cftchapaftersnumb}{} + \newcommand{\cftchapleader}{\bfseries\cftdotfill{\cftchapdotsep}} + \newcommand{\cftchapdotsep}{\cftnodots} + \newcommand{\cftchappagefont}{\bfseries} + \newcommand{\cftchapafterpnum}{} + \newcommand{\cftchapfillnum}[1]{% + {\cftchapleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftchappagefont #1}\cftchapafterpnum\par + } + \if@cftkoma + \renewcommand{\cftchapfont}{\sectfont} + \fi +\fi + +\renewcommand*{\l@section}[2]{% + \ifnum \c@tocdepth >\z@ + \if@cfthaschapter + \vskip \cftbeforesecskip + \else + \addpenalty\@secpenalty + \addvspace{\cftbeforesecskip} + \fi + {\leftskip \cftsecindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftsecindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftsecnumwidth\relax + \let\@cftbsnum \cftsecpresnum + \let\@cftasnum \cftsecaftersnum + \let\@cftasnumb \cftsecaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftsecfont #1}\nobreak + \cftsecfillnum{#2}}% + \fi} +\newlength{\cftbeforesecskip} +\newlength{\cftsecindent} +\newlength{\cftsecnumwidth} +\newcommand{\cftsecpresnum}{} +\newcommand{\cftsecaftersnum}{} +\newcommand{\cftsecaftersnumb}{} +\if@cfthaschapter + \setlength{\cftbeforesecskip}{\z@ \@plus.2\p@} + \setlength{\cftsecindent}{1.5em} + \setlength{\cftsecnumwidth}{2.3em} + \newcommand{\cftsecfont}{\normalfont} + \newcommand{\cftsecleader}{\normalfont\cftdotfill{\cftsecdotsep}} + \newcommand{\cftsecdotsep}{\cftdotsep} + \newcommand{\cftsecpagefont}{\normalfont} +\else + \setlength{\cftbeforesecskip}{1.0em \@plus\p@} + \setlength{\cftsecindent}{0em} + \setlength{\cftsecnumwidth}{1.5em} + \newcommand{\cftsecfont}{\bfseries} + \newcommand{\cftsecleader}{\bfseries\cftdotfill{\cftsecdotsep}} + \newcommand{\cftsecdotsep}{\cftnodots} + \newcommand{\cftsecpagefont}{\bfseries} +\fi +\newcommand{\cftsecafterpnum}{} +\newcommand{\cftsecfillnum}[1]{% + {\cftsecleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftsecpagefont #1}\cftsecafterpnum\par +} +\renewcommand*{\l@subsection}[2]{% + \ifnum \c@tocdepth >\@ne + \vskip \cftbeforesubsecskip + {\leftskip \cftsubsecindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftsubsecindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftsubsecnumwidth\relax + \let\@cftbsnum \cftsubsecpresnum + \let\@cftasnum \cftsubsecaftersnum + \let\@cftasnumb \cftsubsecaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftsubsecfont #1}\nobreak + \cftsubsecfillnum{#2}}% + \fi} +\newlength{\cftbeforesubsecskip} + \setlength{\cftbeforesubsecskip}{\z@ \@plus.2\p@} +\newlength{\cftsubsecindent} +\newlength{\cftsubsecnumwidth} +\if@cfthaschapter + \setlength{\cftsubsecindent}{3.8em} + \setlength{\cftsubsecnumwidth}{3.2em} +\else + \setlength{\cftsubsecindent}{1.5em} + \setlength{\cftsubsecnumwidth}{2.3em} +\fi +\newcommand{\cftsubsecfont}{\normalfont} +\newcommand{\cftsubsecpresnum}{} +\newcommand{\cftsubsecaftersnum}{} +\newcommand{\cftsubsecaftersnumb}{} +\newcommand{\cftsubsecleader}{\normalfont\cftdotfill{\cftsubsecdotsep}} +\newcommand{\cftsubsecdotsep}{\cftdotsep} +\newcommand{\cftsubsecpagefont}{\normalfont} +\newcommand{\cftsubsecafterpnum}{} +\newcommand{\cftsubsecfillnum}[1]{% + {\cftsubsecleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftsubsecpagefont #1}\cftsubsecafterpnum\par +} +\renewcommand*{\l@subsubsection}[2]{% + \ifnum \c@tocdepth >\tw@ + \vskip \cftbeforesubsubsecskip + {\leftskip \cftsubsubsecindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftsubsubsecindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftsubsubsecnumwidth\relax + \let\@cftbsnum \cftsubsubsecpresnum + \let\@cftasnum \cftsubsubsecaftersnum + \let\@cftasnumb \cftsubsubsecaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftsubsubsecfont #1}\nobreak + \cftsubsubsecfillnum{#2}}% + \fi} +\newlength{\cftbeforesubsubsecskip} + \setlength{\cftbeforesubsubsecskip}{\z@ \@plus.2\p@} +\newlength{\cftsubsubsecindent} +\newlength{\cftsubsubsecnumwidth} +\if@cfthaschapter + \setlength{\cftsubsubsecindent}{7.0em} + \setlength{\cftsubsubsecnumwidth}{4.1em} +\else + \setlength{\cftsubsubsecindent}{3.8em} + \setlength{\cftsubsubsecnumwidth}{3.2em} +\fi +\newcommand{\cftsubsubsecfont}{\normalfont} +\newcommand{\cftsubsubsecpresnum}{} +\newcommand{\cftsubsubsecaftersnum}{} +\newcommand{\cftsubsubsecaftersnumb}{} +\newcommand{\cftsubsubsecleader}{\normalfont\cftdotfill{\cftsubsubsecdotsep}} +\newcommand{\cftsubsubsecdotsep}{\cftdotsep} +\newcommand{\cftsubsubsecpagefont}{\normalfont} +\newcommand{\cftsubsubsecafterpnum}{} +\newcommand{\cftsubsubsecfillnum}[1]{% + {\cftsubsubsecleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftsubsubsecpagefont #1}\cftsubsubsecafterpnum\par +} +\renewcommand*{\l@paragraph}[2]{% + \ifnum \c@tocdepth >3\relax + \vskip \cftbeforeparaskip + {\leftskip \cftparaindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftparaindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftparanumwidth\relax + \let\@cftbsnum \cftparapresnum + \let\@cftasnum \cftparaaftersnum + \let\@cftasnumb \cftparaaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftparafont #1}\nobreak + \cftparafillnum{#2}}% + \fi} +\newlength{\cftbeforeparaskip} + \setlength{\cftbeforeparaskip}{\z@ \@plus.2\p@} +\newlength{\cftparaindent} +\newlength{\cftparanumwidth} +\if@cfthaschapter + \setlength{\cftparaindent}{10em} + \setlength{\cftparanumwidth}{5em} +\else + \setlength{\cftparaindent}{7.0em} + \setlength{\cftparanumwidth}{4.1em} +\fi +\newcommand{\cftparafont}{\normalfont} +\newcommand{\cftparapresnum}{} +\newcommand{\cftparaaftersnum}{} +\newcommand{\cftparaaftersnumb}{} +\newcommand{\cftparaleader}{\normalfont\cftdotfill{\cftparadotsep}} +\newcommand{\cftparadotsep}{\cftdotsep} +\newcommand{\cftparapagefont}{\normalfont} +\newcommand{\cftparaafterpnum}{} +\newcommand{\cftparafillnum}[1]{% + {\cftparaleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftparapagefont #1}\cftparaafterpnum\par +} +\renewcommand*{\l@subparagraph}[2]{% + \ifnum \c@tocdepth >4\relax + \vskip \cftbeforesubparaskip + {\leftskip \cftsubparaindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftsubparaindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftsubparanumwidth\relax + \let\@cftbsnum \cftsubparapresnum + \let\@cftasnum \cftsubparaaftersnum + \let\@cftasnumb \cftsubparaaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftsubparafont #1}\nobreak + \cftsubparafillnum{#2}}% + \fi} +\newlength{\cftbeforesubparaskip} + \setlength{\cftbeforesubparaskip}{\z@ \@plus.2\p@} +\newlength{\cftsubparaindent} +\newlength{\cftsubparanumwidth} +\if@cfthaschapter + \setlength{\cftsubparaindent}{12em} + \setlength{\cftsubparanumwidth}{6em} +\else + \setlength{\cftsubparaindent}{10em} + \setlength{\cftsubparanumwidth}{5em} +\fi +\newcommand{\cftsubparafont}{\normalfont} +\newcommand{\cftsubparapresnum}{} +\newcommand{\cftsubparaaftersnum}{} +\newcommand{\cftsubparaaftersnumb}{} +\newcommand{\cftsubparaleader}{\normalfont\cftdotfill{\cftsubparadotsep}} +\newcommand{\cftsubparadotsep}{\cftdotsep} +\newcommand{\cftsubparapagefont}{\normalfont} +\newcommand{\cftsubparaafterpnum}{} +\newcommand{\cftsubparafillnum}[1]{% + {\cftsubparaleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftsubparapagefont #1}\cftsubparaafterpnum\par +} +\newcommand{\@cftdobiblof}{% + \if@dotoclof + \if@bibchapter + \phantomsection + \addcontentsline{toc}{chapter}{\listfigurename} + \else + \phantomsection + \addcontentsline{toc}{\@tocextra}{\listfigurename} + \fi + \fi} + +\AtBeginDocument{% +\if@cftnctoc\else +\renewcommand{\listoffigures}{% + \@cfttocstart + \par + \begingroup + \parindent\z@ \parskip\cftparskip + \@cftmakeloftitle + \if@cfttocbibind + \@cftdobiblof + \fi + \@starttoc{lof}% + \endgroup + \@cfttocfinish}% +\fi +} + +\newcommand{\@cftmakeloftitle}{% + \addpenalty\@secpenalty + \if@cfthaschapter + \vspace*{\cftbeforeloftitleskip} + \else + \vspace{\cftbeforeloftitleskip} + \fi + \@cftpagestyle + {\interlinepenalty\@M + {\cftloftitlefont\listfigurename}{\cftafterloftitle} + \cftmarklof + \par\nobreak + \vskip \cftafterloftitleskip + \@afterheading}} + +\newlength{\cftbeforeloftitleskip} +\newlength{\cftafterloftitleskip} +\if@cfthaschapter + \setlength{\cftbeforeloftitleskip}{50pt} + \setlength{\cftafterloftitleskip}{40pt} +\else + \setlength{\cftbeforeloftitleskip}{3.5ex \@plus 1ex \@minus .2ex} + \setlength{\cftafterloftitleskip}{2.3ex \@plus.2ex} +\fi +\if@cfthaschapter + \newcommand{\cftloftitlefont}{\normalfont\Huge\bfseries} + \if@cftkoma\renewcommand{\cftloftitlefont}{\size@chapter\sectfont}\fi +\else + \newcommand{\cftloftitlefont}{\normalfont\Large\bfseries} + \if@cftkoma\renewcommand{\cftloftitlefont}{\size@section\sectfont}\fi +\fi +\newcommand{\cftafterloftitle}{} + +\renewcommand*{\l@figure}[2]{% + \ifnum \c@lofdepth >\z@ + \vskip \cftbeforefigskip + {\leftskip \cftfigindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftfigindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftfignumwidth\relax + \let\@cftbsnum \cftfigpresnum + \let\@cftasnum \cftfigaftersnum + \let\@cftasnumb \cftfigaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftfigfont #1}\nobreak + \cftfigfillnum{#2}}% + \fi + } +\newlength{\cftbeforefigskip} + \setlength{\cftbeforefigskip}{\z@ \@plus.2\p@} +\newlength{\cftfigindent} + \setlength{\cftfigindent}{1.5em} +\newlength{\cftfignumwidth} + \setlength{\cftfignumwidth}{2.3em} +\newcommand{\cftfigfont}{\normalfont} +\newcommand{\cftfigpresnum}{} +\newcommand{\cftfigaftersnum}{} +\newcommand{\cftfigaftersnumb}{} +\newcommand{\cftfigleader}{\normalfont\cftdotfill{\cftfigdotsep}} +\newcommand{\cftfigdotsep}{\cftdotsep} +\newcommand{\cftfigpagefont}{\normalfont} +\newcommand{\cftfigafterpnum}{} +\newcommand{\cftfigfillnum}[1]{% + {\cftfigleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftfigpagefont #1}\cftfigafterpnum\par +} +\if@cftsubfigopt\else + \newcounter{lofdepth}\setcounter{lofdepth}{1} + \newcounter{lotdepth}\setcounter{lotdepth}{1} +\fi + +\newcommand{\@cftdobiblot}{% + \if@dotoclot + \if@bibchapter + \phantomsection + \addcontentsline{toc}{chapter}{\listtablename} + \else + \phantomsection + \addcontentsline{toc}{\@tocextra}{\listtablename} + \fi + \fi} + +\AtBeginDocument{% +\if@cftnctoc\else +\renewcommand{\listoftables}{% + \@cfttocstart + \par + \begingroup + \parindent\z@ \parskip\cftparskip + \@cftmakelottitle + \if@cfttocbibind + \@cftdobiblot + \fi + \@starttoc{lot}% + \endgroup + \@cfttocfinish}% +\fi +} + +\newcommand{\@cftmakelottitle}{% + \addpenalty\@secpenalty + \if@cfthaschapter + \vspace*{\cftbeforelottitleskip} + \else + \vspace{\cftbeforelottitleskip} + \fi + \@cftpagestyle + {\interlinepenalty\@M + {\cftlottitlefont\listtablename}{\cftafterlottitle} + \cftmarklot + \par\nobreak + \vskip \cftafterlottitleskip + \@afterheading}} + +\newlength{\cftbeforelottitleskip} +\newlength{\cftafterlottitleskip} +\if@cfthaschapter + \setlength{\cftbeforelottitleskip}{50pt} + \setlength{\cftafterlottitleskip}{40pt} +\else + \setlength{\cftbeforelottitleskip}{3.5ex \@plus 1ex \@minus .2ex} + \setlength{\cftafterlottitleskip}{2.3ex \@plus.2ex} +\fi +\if@cfthaschapter + \newcommand{\cftlottitlefont}{\normalfont\Huge\bfseries} + \if@cftkoma\renewcommand{\cftlottitlefont}{\size@chapter\sectfont}\fi +\else + \newcommand{\cftlottitlefont}{\normalfont\Large\bfseries} + \if@cftkoma\renewcommand{\cftlottitlefont}{\size@section\sectfont}\fi +\fi +\newcommand{\cftafterlottitle}{} + +\renewcommand*{\l@table}[2]{% + \ifnum\c@lotdepth >\z@ + \vskip \cftbeforetabskip + {\leftskip \cfttabindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cfttabindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cfttabnumwidth\relax + \let\@cftbsnum \cfttabpresnum + \let\@cftasnum \cfttabaftersnum + \let\@cftasnumb \cfttabaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cfttabfont #1}\nobreak + \cfttabfillnum{#2}}% + \fi + } +\newlength{\cftbeforetabskip} + \setlength{\cftbeforetabskip}{\z@ \@plus.2\p@} +\newlength{\cfttabindent} + \setlength{\cfttabindent}{1.5em} +\newlength{\cfttabnumwidth} + \setlength{\cfttabnumwidth}{2.3em} +\newcommand{\cfttabfont}{\normalfont} +\newcommand{\cfttabpresnum}{} +\newcommand{\cfttabaftersnum}{} +\newcommand{\cfttabaftersnumb}{} +\newcommand{\cfttableader}{\normalfont\cftdotfill{\cfttabdotsep}} +\newcommand{\cfttabdotsep}{\cftdotsep} +\newcommand{\cfttabpagefont}{\normalfont} +\newcommand{\cfttabafterpnum}{} +\newcommand{\cfttabfillnum}[1]{% + {\cfttableader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cfttabpagefont #1}\cfttabafterpnum\par +} +\newcommand{\@cftl@subfig}{% +\renewcommand*{\l@subfigure}[2]{% + \ifnum \c@lofdepth > \toclevel@subfigure + \vskip \cftbeforesubfigskip + {\leftskip \cftsubfigindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftsubfigindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftsubfignumwidth\relax + \let\@cftbsnum \cftsubfigpresnum + \let\@cftasnum \cftsubfigaftersnum + \let\@cftasnumb \cftsubfigaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftsubfigfont ##1}\nobreak + \cftsubfigfillnum{##2}}% + \fi + }% +} + +\newcommand{\@cftsetsubfig}{% +\newlength{\cftbeforesubfigskip} + \setlength{\cftbeforesubfigskip}{\z@ \@plus.2\p@} +\newlength{\cftsubfigindent} + \setlength{\cftsubfigindent}{3.8em} +\newlength{\cftsubfignumwidth} + \setlength{\cftsubfignumwidth}{2.5em} +\newcommand{\cftsubfigfont}{\normalfont} +\newcommand{\cftsubfigpresnum}{} +\newcommand{\cftsubfigaftersnum}{} +\newcommand{\cftsubfigaftersnumb}{} +\newcommand{\cftsubfigleader}{\normalfont\cftdotfill{\cftsubtabdotsep}} +\newcommand{\cftsubfigdotsep}{\cftdotsep} +\newcommand{\cftsubfigpagefont}{\normalfont} +\newcommand{\cftsubfigafterpnum}{} +\providecommand{\toclevel@subfigure}{1} +\newcommand{\cftsubfigfillnum}[1]{% + {\cftsubfigleader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftsubfigpagefont ##1}\cftsubfigafterpnum\par +} +} + +\newcommand{\@cftl@subtab}{% +\renewcommand*{\l@subtable}[2]{% + \ifnum \c@lotdepth > \toclevel@subtable + \vskip \cftbeforesubtabskip + {\leftskip \cftsubtabindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftsubtabindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftsubtabnumwidth\relax + \let\@cftbsnum \cftsubtabpresnum + \let\@cftasnum \cftsubtabaftersnum + \let\@cftasnumb \cftsubtabaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftsubtabfont ##1}\nobreak + \cftsubtabfillnum{##2}}% + \fi + }% +} +\newcommand{\@cftsetsubtab}{% +\newlength{\cftbeforesubtabskip} + \setlength{\cftbeforesubtabskip}{\z@ \@plus.2\p@} +\newlength{\cftsubtabindent} + \setlength{\cftsubtabindent}{3.8em} +\newlength{\cftsubtabnumwidth} + \setlength{\cftsubtabnumwidth}{2.5em} +\newcommand{\cftsubtabfont}{\normalfont} +\newcommand{\cftsubtabpresnum}{} +\newcommand{\cftsubtabaftersnum}{} +\newcommand{\cftsubtabaftersnumb}{} +\newcommand{\cftsubtableader}{\normalfont\cftdotfill{\cftsubtabdotsep}} +\newcommand{\cftsubtabdotsep}{\cftdotsep} +\newcommand{\cftsubtabpagefont}{\normalfont} +\newcommand{\cftsubtabafterpnum}{} +\providecommand{\toclevel@subtable}{1} +\newcommand{\cftsubtabfillnum}[1]{% + {\cftsubtableader}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\cftsubtabpagefont ##1}\cftsubtabafterpnum\par +} +} + + +\if@cftsubfigopt + \@cftsetsubfig\@cftsetsubtab + \AtBeginDocument{\@cftl@subfig\@cftl@subtab} +\fi +%% \AtBeginDocument{\if@cftsubfigopt +%% \@cftsetsubfig\@cftsetsubtab +%% \@cftl@subfig\@cftl@subtab +%% \fi} + +\newcommand{\newlistentry}[4][\@empty]{% + \@ifundefined{c@#2}{% check & set the counter + \ifx \@empty#1\relax + \newcounter{#2} + \else + \@ifundefined{c@#1}{\PackageWarning{tocloft}% + {#1 has no counter for use as a `within'} + \newcounter{#2}}% + {\newcounter{#2}[#1]% + \expandafter\edef\csname the#2\endcsname{% + \expandafter\noexpand\csname the#1\endcsname.\noexpand\arabic{#2}}} + \fi + \setcounter{#2}{0} + } + {\PackageError{tocloft}{#2 has been previously defined}{\@eha}} + + \@namedef{l@#2}##1##2{% + \ifnum \@nameuse{c@#3depth} > #4\relax + \vskip \@nameuse{cftbefore#2skip} + {\leftskip \@nameuse{cft#2indent}\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \@nameuse{cft#2indent}\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \@nameuse{cft#2numwidth}\relax + \expandafter\let\expandafter\@cftbsnum\csname cft#2presnum\endcsname + \expandafter\let\expandafter\@cftasnum\csname cft#2aftersnum\endcsname + \expandafter\let\expandafter\@cftasnumb\csname cft#2aftersnumb\endcsname + \advance\leftskip\@tempdima \null\nobreak\hskip -\leftskip + {\@nameuse{cft#2font}##1}\nobreak + \@nameuse{cft#2fillnum}{##2}}% + \fi + } % end of \l@#2 + + \expandafter\newlength\csname cftbefore#2skip\endcsname + \setlength{\@nameuse{cftbefore#2skip}}{\z@ \@plus .2\p@} + \expandafter\newlength\csname cft#2indent\endcsname + \expandafter\newlength\csname cft#2numwidth\endcsname + \ifcase #4\relax % 0 + \setlength{\@nameuse{cft#2indent}}{0em} + \setlength{\@nameuse{cft#2numwidth}}{1.5em} + \or % 1 + \setlength{\@nameuse{cft#2indent}}{1.5em} + \setlength{\@nameuse{cft#2numwidth}}{2.3em} + \or % 2 + \setlength{\@nameuse{cft#2indent}}{3.8em} + \setlength{\@nameuse{cft#2numwidth}}{3.2em} + \or % 3 + \setlength{\@nameuse{cft#2indent}}{7.0em} + \setlength{\@nameuse{cft#2numwidth}}{4.1em} + \else % anything else + \setlength{\@nameuse{cft#2indent}}{10.0em} + \setlength{\@nameuse{cft#2numwidth}}{5.0em} + \fi + \@namedef{cft#2font}{\normalfont} + \@namedef{cft#2presnum}{} + \@namedef{cft#2aftersnum}{} + \@namedef{cft#2aftersnumb}{} + \@namedef{cft#2dotsep}{\cftdotsep} + \@namedef{cft#2leader}{\normalfont\cftdotfill{\@nameuse{cft#2dotsep}}} + \@namedef{cft#2pagefont}{\normalfont} + \@namedef{cft#2afterpnum}{} + \@namedef{toclevel@#2}{#4} + \@namedef{cft#2fillnum}##1{% + {\@nameuse{cft#2leader}}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\@nameuse{cft#2pagefont}##1}\@nameuse{cft#2afterpnum}\par + } +} +\newcommand{\newlistof}[4][\@empty]{% + \ifx \@empty#1\relax + \newlistentry{#2}{#3}{0} + \else + \newlistentry[#1]{#2}{#3}{0} + \fi + \@namedef{ext@#2}{#3} + \newcounter{#3depth} + \setcounter{#3depth}{1} + \if@cftkoma + \@namedef{cftmark#3}{% + \@mkboth{#4}{#4}} + \else + \@namedef{cftmark#3}{% + \@mkboth{\MakeUppercase{#4}}{\MakeUppercase{#4}}} + \fi + \if@cftnctoc + \@namedef{listof#2}{% + \@cfttocstart + \if@cfthaschapter + \chapter*{#4} + \else + \section*{#4} + \fi + \@nameuse{cftmark#3} + \@starttoc{#3}% + \@cfttocfinish} + \else + \@namedef{listof#2}{% + \@cfttocstart + \par + \begingroup + \parindent\z@ \parskip\cftparskip + \@nameuse{@cftmake#3title} + \@starttoc{#3}% + \endgroup + \@cfttocfinish} + \fi + + \@namedef{@cftmake#3title}{% + \addpenalty\@secpenalty + \if@cfthaschapter + \vspace*{\@nameuse{cftbefore#3titleskip}}% + \else + \vspace{\@nameuse{cftbefore#3titleskip}}% + \fi + \@cftpagestyle + {\interlinepenalty\@M + {\@nameuse{cft#3titlefont}#4}{\@nameuse{cftafter#3title}}% + \@nameuse{cftmark#3}% + \par\nobreak + \vskip \@nameuse{cftafter#3titleskip}% + \@afterheading}} + + \expandafter\newlength\csname cftbefore#3titleskip\endcsname + \expandafter\newlength\csname cftafter#3titleskip\endcsname + \if@cfthaschapter + \setlength{\@nameuse{cftbefore#3titleskip}}{50pt} + \setlength{\@nameuse{cftafter#3titleskip}}{40pt} + \if@cftkoma + \@namedef{cft#3titlefont}{\size@chapter\sectfont} + \else + \@namedef{cft#3titlefont}{\normalfont\Huge\bfseries} + \fi + \else + \setlength{\@nameuse{cftbefore#3titleskip}}{3.5ex \@plus 1ex \@minus .2ex} + \setlength{\@nameuse{cftafter#3titleskip}}{2.3ex \@plus .2ex} + \if@cftkoma + \@namedef{cft#3titlefont}{\size@section\sectfont} + \else + \@namedef{cft#3titlefont}{\normalfont\Huge\bfseries} + \fi + \fi + \@namedef{cftafter#3title}{} +} +\newcommand{\cftsetindents}[3]{% + \def\@cftemp{#1} + \ifx\@cftemp\cftchapname + \@cftsetindents{chap}{#2}{#3} + \else + \ifx\@cftemp\cftsecname \@cftsetindents{sec}{#2}{#3} + \else + \ifx\@cftemp\cftsubsecname \@cftsetindents{subsec}{#2}{#3} + \else + \ifx\@cftemp\cftsubsubsecname \@cftsetindents{subsubsec}{#2}{#3} + \else + \ifx\@cftemp\cftparaname \@cftsetindents{para}{#2}{#3} + \else + \ifx\@cftemp\cftsubparaname \@cftsetindents{subpara}{#2}{#3} + \else + \ifx\@cftemp\cftfigname \@cftsetindents{fig}{#2}{#3} + \else + \ifx\@cftemp\cftsubfigname \@cftsetindents{subfig}{#2}{#3} + \else + \ifx\@cftemp\cfttabname \@cftsetindents{tab}{#2}{#3} + \else + \ifx\@cftemp\cftsubtabname \@cftsetindents{subtab}{#2}{#3} + \else + \@cftsetindents{#1}{#2}{#3} + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi +} + +\newcommand{\@cftsetindents}[3]{% + \setlength{\@nameuse{cft#1indent}}{#2} + \setlength{\@nameuse{cft#1numwidth}}{#3} +} + +\newcommand{\@cftpnumoff}[1]{% + \@namedef{cft#1fillnum}##1{% + \cftparfillskip\@nameuse{cft#1afterpnum}\par}} + +\newcommand*{\cftchapname}{chapter} +\newcommand*{\cftsecname}{section} +\newcommand*{\cftsubsecname}{subsection} +\newcommand*{\cftsubsubsecname}{subsubsection} +\newcommand*{\cftparaname}{paragraph} +\newcommand*{\cftsubparaname}{subparagraph} +\newcommand*{\cftfigname}{figure} +\newcommand*{\cftsubfigname}{subfigure} +\newcommand*{\cfttabname}{table} +\newcommand*{\cftsubtabname}{subtable} + +\DeclareRobustCommand{\cftpagenumbersoff}[1]{% + \def\@cftemp{#1} + \ifx\@cftemp\cftchapname + \@cftpnumoff{chap} + \else + \ifx\@cftemp\cftsecname \@cftpnumoff{sec} + \else + \ifx\@cftemp\cftsubsecname \@cftpnumoff{subsec} + \else + \ifx\@cftemp\cftsubsubsecname \@cftpnumoff{subsubsec} + \else + \ifx\@cftemp\cftparaname \@cftpnumoff{para} + \else + \ifx\@cftemp\cftsubparaname \@cftpnumoff{subpara} + \else + \ifx\@cftemp\cftfigname \@cftpnumoff{fig} + \else + \ifx\@cftemp\cftsubfigname \@cftpnumoff{subfig} + \else + \ifx\@cftemp\cfttabname \@cftpnumoff{tab} + \else + \ifx\@cftemp\cftsubtabname \@cftpnumoff{subtab} + \else + \@cftpnumoff{#1} + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi +} + +\DeclareRobustCommand{\cftpagenumberson}[1]{% + \def\@cftemp{#1} + \ifx\@cftemp\cftchapname + \@cftpnumon{chap} + \else + \ifx\@cftemp\cftsecname \@cftpnumon{sec} + \else + \ifx\@cftemp\cftsubsecname \@cftpnumon{subsec} + \else + \ifx\@cftemp\cftsubsubsecname \@cftpnumon{subsubsec} + \else + \ifx\@cftemp\cftparaname \@cftpnumon{para} + \else + \ifx\@cftemp\cftsubparaname \@cftpnumon{subpara} + \else + \ifx\@cftemp\cftfigname \@cftpnumon{fig} + \else + \ifx\@cftemp\cftsubfigname \@cftpnumon{subfig} + \else + \ifx\@cftemp\cfttabname \@cftpnumon{tab} + \else + \ifx\@cftemp\cftsubtabname \@cftpnumon{subtab} + \else + \@cftpnumon{#1} + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi +} + +\newcommand{\@cftpnumon}[1]{% + \@namedef{cft#1fillnum}##1{% + {\@nameuse{cft#1leader}}\nobreak + \makebox[\@pnumwidth][\cftpnumalign]{\@nameuse{cft#1pagefont}##1}\@nameuse{cft#1afterpnum}\par + }% +} +\newcommand{\cftchapterprecis}[1]{% + \cftchapterprecishere{#1} + \cftchapterprecistoc{#1}} +\newcommand{\cftchapterprecishere}[1]{% + \vspace*{-2\baselineskip} + \begin{quote}\textit{#1}\end{quote}} +\newcommand{\cftchapterprecistoc}[1]{\addtocontents{toc}{% + {\leftskip \cftchapindent\relax + \advance\leftskip \cftchapnumwidth\relax + \rightskip \@tocrmarg\relax + \textit{#1}\protect\par}}} + +\newcommand{\cftlocalchange}[3]{% + \addtocontents{#1}{\protect\cftsetpnumwidth{#2} \protect\cftsetrmarg{#3}}} +\newcommand{\cftaddtitleline}[4]{\addtocontents{#1}{% + \protect\contentsline{#2}{#3}{#4}}} +\newcommand{\cftaddnumtitleline}[5]{\addtocontents{#1}{% + \protect\contentsline{#2}{\protect\numberline{#3}#4}{#5}}} +\AtBeginDocument{% + \@ifpackageloaded{hyperref}{% + \renewcommand{\cftaddtitleline}[4]{\addtocontents{#1}{% + \protect\contentsline{#2}{#3}{#4}{\@currentHref}}} + \renewcommand{\cftaddnumtitleline}[5]{\addtocontents{#1}{% + \protect\contentsline{#2}{\protect\numberline{#3}#4}{#5}{\@currentHref}}} + }{} +} + +\endinput +%% +%% End of file `tocloft.sty'. diff --git a/doc/latex-deps/trimclip.sty b/doc/latex-deps/trimclip.sty new file mode 100644 index 00000000..d0dcb815 --- /dev/null +++ b/doc/latex-deps/trimclip.sty @@ -0,0 +1,260 @@ +%% Copyright (C) 2011-2012 by Martin Scharrer +%% ---------------------------------------------------------------------- +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files trimclip.dtx, adjustbox.ins +%% and the derived files trimclip.sty, +%% tc-dvips.def, tc-pdftex.def, tc-pgf.def and tc-xetex.def. +%% Further author information are located in the .def files. +%% +\ProvidesPackage{trimclip}[% + 2012/05/16 + v1.0 + Trim and clip general TeX material] +\def\tc@driver{tc-\Gin@driver} +\DeclareOption{pgf}{\def\tc@driver{tc-pgf.def}\PassOptionsToPackage{pgf}{graphicx}} +\DeclareOption{pdftex}{\def\tc@driver{tc-pdftex.def}\PassOptionsToPackage{pdftex}{graphicx}} +\DeclareOption{xetex}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} +\DeclareOption{dvips}{\def\tc@driver{tc-dvips.def}\PassOptionsToPackage{dvips}{graphicx}} +\DeclareOption{dvipdfm}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} +\DeclareOption{dvipdf}{\def\tc@driver{tc-xetex.def}\PassOptionsToPackage{xetex}{graphicx}} +\DeclareOption*{% + \@ifpackageloaded{graphics}{% + \edef\tc@driver{tc-\CurrentOption.def}% + \begingroup + \edef\@tempa{\CurrentOption.def}% + \ifx\@tempa\Gin@driver\else + \let\on@line\@gobble + \PackageWarning{trimclip}{% + A different clipping driver was requested than the\MessageBreak + one used for 'graphics/x'! This is not recommended\MessageBreak + and can lead to defect output files.% + }% + \fi + \endgroup + }{% + \def\tc@driver{tc-\Gin@driver}% + \PassOptionsToPackage\CurrentOption{graphicx}% + }% +} +\ProcessOptions*\relax +\RequirePackage{graphicx}[1999/02/16] +\RequirePackage{collectbox}[2011/08/22] +\RequirePackage{adjcalc} +\def\tc@readvalues#1{% + \tc@@readvalues#1 {} {} {} \\% +} +\def\tc@@readvalues#1 #2 #3 #4 #5\\{% + \adjsetlengthdefault\tc@llx{#1}% + \ifx\@nnil#2\@nnil + \tc@lly\tc@llx + \tc@urx\tc@llx + \tc@ury\tc@llx + \else + \adjsetlengthdefault\tc@lly{#2}% + \ifx\@nnil#3\@nnil + \tc@urx\tc@llx + \tc@ury\tc@lly + \else + \adjsetlengthdefault\tc@urx{#3}% + \adjsetlengthdefault\tc@ury{#4}% + \fi + \fi +}% +\newdimen\tc@llx +\newdimen\tc@lly +\newdimen\tc@urx +\newdimen\tc@ury +\newcommand\trimbox{% + \collectboxcheckenv{trimbox}% + \@ifstar + \trimbox@s + \trimbox@ +} +\def\trimbox@#1{% + \collectbox{\@trimclip\@trimbox{#1}}% +} +\def\trimbox@s#1{% + \collectbox{\@trimclip\@viewportbox{#1}}% +} +\expandafter\newcommand\expandafter*\csname trimbox*\endcsname{% + \@collectboxisenv{trimbox*}% + \trimbox@s +} +\newcommand\clipbox{% + \collectboxcheckenv{clipbox}% + \@ifstar + \clipbox@s + \clipbox@ +} +\def\clipbox@#1{% + \collectbox{\@trimclip\@clipbox{#1}}% +} +\def\clipbox@s#1{% + \collectbox{\@trimclip\@clipvpbox{#1}}% +} +\expandafter\newcommand\expandafter*\csname clipbox*\endcsname{% + \@collectboxisenv{clipbox*}% + \clipbox@s +} +\newcommand\marginbox{% + \collectboxcheckenv{marginbox}% + \@ifstar + \marginbox@s + \marginbox@ +} +\def\marginbox@#1{% + \@collectbox{\@trimclip\@marginbox{#1}}% +} +\def\marginbox@s#1{% + \@collectbox{\@trimclip\@marginraisebox{#1}}% +} +\expandafter\newcommand\expandafter*\csname marginbox*\endcsname{% + \@collectboxisenv{marginbox*}% + \marginbox@s +} +\def\@trimclip#1#2{% + \tc@readvalues{#2}% + #1% + \collectedbox + \tc@llx + \tc@lly + \tc@urx + \tc@ury + \usebox\collectedbox +} +\def\tc@correctbaseline#1{% + \ifdim\dp#1<\z@ + \raise\dp#1% + \else + \ifdim\ht#1<\z@ + \lower\ht#1% + \fi\fi + \box#1% +}% +\def\tc@correctdims#1{% + \ifdim\dp#1<\z@ \dp#1=\z@ \fi + \ifdim\wd#1<\z@ \wd#1=\z@ \fi + \ifdim\ht#1<\z@ \ht#1=\z@ \fi +} +\def\@trimbox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + \tc@llx=#2\relax + \tc@lly=#3\relax + \advance\tc@lly-\dp#1% + \tc@urx=#4\relax + \advance\tc@urx-\wd#1% + \tc@ury=#5\relax + \advance\tc@ury-\ht#1% + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip-\tc@llx + \dp#1-\tc@lly + \wd#1-\tc@urx + \ht#1-\tc@ury + % + \tc@correctbaseline{#1}% + }% + \tc@correctdims{#1}% +} +\def\@marginbox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + \tc@llx=#2\relax + \tc@lly=#3\relax + \advance\tc@lly\dp#1% + \tc@urx=#4\relax + \advance\tc@urx\wd#1% + \tc@ury=#5\relax + \advance\tc@ury\ht#1% + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip\tc@llx + \dp#1\tc@lly + \wd#1\tc@urx + \ht#1\tc@ury + % + \box#1% + }% + \tc@correctdims{#1}% +} +\def\@marginraisebox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + \tc@llx=#2\relax + \tc@lly=#3\relax + \tc@urx=#4\relax + \advance\tc@urx\wd#1% + \tc@ury=#5\relax + \advance\tc@ury\ht#1% + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip\tc@llx + \wd#1\tc@urx + \ht#1\tc@ury + % Copy original tty values (ury is taken as temp dimension) + \tc@ury=\tc@lly + \advance\tc@lly\dp#1% + \dp#1\tc@lly + % Raise bu original tty value (now in ury) + \raise\tc@ury\box#1% + }% + \tc@correctdims{#1}% +} +\def\@viewportbox#1#2#3#4#5{% + \setbox#1=\hbox{% + % + % Assign values + \tc@llx=#2\relax + \tc@lly=#3\relax + \tc@urx=#4\relax + \tc@ury=#5\relax + % + % Set dimensions now. + % This allows that the arguments can refer + % to the original dimensions without issues. + \hskip-\tc@llx + \dp#1-\tc@lly + \wd#1\tc@urx + \ht#1\tc@ury + % + \tc@correctbaseline{#1}% + }% + \tc@correctdims{#1}% +} +\def\@clipbox#1#2#3#4#5{% + \@trimbox{#1}{#2}{#3}{#4}{#5}% + \@cliptoboxdim{#1}% +} +\def\@clipvpbox#1#2#3#4#5{% + \@viewportbox{#1}{#2}{#3}{#4}{#5}% + \@cliptoboxdim{#1}% +} +\InputIfFileExists{\tc@driver}{% + {\let\on@line\@gobble + \PackageInfo{trimclip}{Using driver '\tc@driver'.}}% +}{% + \input{tc-pgf.def}% + {\let\on@line\@gobble + \PackageInfo{trimclip}{No clipping driver '\tc@driver' available.\MessageBreak Using fall-back PGF driver.}}% +} +\endinput +%% +%% End of file `trimclip.sty'. diff --git a/doc/latex-deps/xtab.sty b/doc/latex-deps/xtab.sty new file mode 100644 index 00000000..650bb470 --- /dev/null +++ b/doc/latex-deps/xtab.sty @@ -0,0 +1,650 @@ +%% +%% This is file `xtab.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xtab.dtx (with options: `xtab') +%% +%% ----------------------------------------------------------------- +%% Author: Peter Wilson +%% Maintainer: Will Robertson (will dot robertson at latex-project dot org) +%% Copyright 1998 -- 2008 Peter R. Wilson +%% Copyright 2010 Will Robertson +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any +%% later version: +%% +%% This work has the LPPL maintenance status "maintained". +%% The Current Maintainer of this work is Will Robertson. +%% +%% This work consists of the files listed in the README file. +%% ----------------------------------------------------------------- +%% +\ProvidesPackage{xtab} + [2011/07/31 v2.3f Extended supertabular package] +\newcount\c@tracingst +\DeclareOption{errorshow}{\c@tracingst\z@} +%%%%\DeclareOption{pageshow}{\c@tracingst\tw@} +\DeclareOption{pageshow}{\c@tracingst\thr@@} +\DeclareOption{debugshow}{\c@tracingst5\relax} +\ProcessOptions +\newif\if@topcaption \@topcaptiontrue +\def\topcaption{\@topcaptiontrue\tablecaption} +\def\bottomcaption{\@topcaptionfalse\tablecaption} +\gdef\PWST@thecaption{} +\newdimen\PWSTcapht +\long\def\tablecaption{% + \refstepcounter{table}\@dblarg{\@xtablecaption}} +\long\def\@xtablecaption[#1]#2{% + \long\gdef\PWST@thecaption{#2}% + \long\gdef\@process@tablecaption{\ST@caption{table}[#1]{#2}}} +\global\let\@process@tablecaption\relax +\newif\ifST@star +\newif\ifST@mp +\newdimen\ST@wd +\newskip\ST@rightskip +\newskip\ST@leftskip +\newskip\ST@parfillskip +\@ifundefined{@initisotab}{% + \newcommand{\@initisotab}{}% + \newif\ifinfloat}{\typeout{xtab using iso captions}} +\long\def\ST@caption#1[#2]#3{\par% + \@initisotab + \addcontentsline{\csname ext@#1\endcsname}{#1}% + {\protect\numberline{% + \csname the#1\endcsname}{\ignorespaces #2}}% + \begingroup + \@parboxrestore + \normalsize + %% \if@topcaption \vskip -10\p@ \fi + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + %% \if@topcaption \vskip 10\p@ \fi + \endgroup + \global\advance\ST@pageleft -\PWSTcapht + \ST@trace\tw@{Added caption. Space left for xtabular: \the\ST@pageleft}} +\newcommand\tablehead[1]{% + \gdef\@tablehead{% + \noalign{% + \global\let\@savcr=\\% + \global\let\\=\org@tabularcr}% + #1% + \noalign{\global\let\\=\@savcr}}} +\tablehead{} +\newcommand\tablefirsthead[1]{\gdef\@table@first@head{#1}} +\newcounter{PWSTtable} +\newcount\PWSTlastpage +\newcount\PWSTpenultimate +\newcount\PWSTcurpage +\newcount\PWSTtempc +\newcount\PWSTlines +%%% \newcount\PWSThead +%%% \newcount\PWSTlasthead +\newif\iffirstcall +\newdimen\PWST@lastht +\newdimen\PWST@generalht +\newdimen\PWST@ht +\newcommand{\tablelasthead}[1]{\gdef\@table@last@head{#1}} +\newcommand{\notablelasthead}{\let\@table@last@head\relax} +\tablelasthead{} +\notablelasthead +\newcommand\tabletail[1]{% + \gdef\@tabletail{% + \noalign{% + \global\let\@savcr=\\% + \global\let\\=\org@tabularcr}% + #1% + \noalign{\global\let\\=\@savcr}}} +\tabletail{} +\newcommand\tablelasttail[1]{\gdef\@table@last@tail{#1}} +\tablelasttail{} +\newcommand\sttraceon{\c@tracingst5\relax} +\newcommand\sttraceoff{\c@tracingst\z@} +\newcommand\ST@trace[2]{% + \ifnum\c@tracingst>#1\relax + \GenericWarning{(xtab)\@spaces\@spaces}{Package xtab: #2}% + \fi} +\newdimen\ST@pageleft +\newcommand*\shrinkheight[1]{% + \noalign{\global\advance\ST@pageleft-#1\relax}} +\newcommand*\setSTheight[1]{% + \noalign{\global\ST@pageleft=#1\relax}} +\newcommand{\xentrystretch}[1]{\def\PWST@xentrystretch{#1}} +\xentrystretch{0.1} +\newdimen\ST@headht +\newdimen\ST@tailht +\newdimen\ST@pagesofar +\newdimen\ST@pboxht +\newdimen\ST@lineht +\newdimen\ST@stretchht +\newdimen\ST@prevht +\newdimen\ST@toadd +\newdimen\ST@dimen +\newbox\ST@pbox + +\def\ST@tabularcr{% + {\ifnum0=`}\fi + \@ifstar{\ST@xtabularcr}{\ST@xtabularcr}} +\def\ST@xtabularcr{% + \@ifnextchar[%] + {\ST@argtabularcr}% + {\ifnum0=`{\fi}\cr\ST@cr}} +\def\ST@argtabularcr[#1]{% + \ifnum0=`{\fi}% + \setlength\@tempdima{#1}% + \ifdim \@tempdima>\z@ + \unskip\ST@xargarraycr{#1}% + \else + \ST@yargarraycr{#1}% + \fi} +\def\ST@xargarraycr#1{% + \setlength\@tempdima{#1}% + \advance\@tempdima \dp \@arstrutbox + \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr + \noalign{\setlength{\global\ST@toadd}{#1}}\ST@cr +} +\def\ST@yargarraycr#1{% + \cr\noalign{% + \setlength{\global\ST@toadd}{#1}% + \vskip\ST@toadd + }\ST@cr +} +\def\ST@startpbox#1{% +%%%% \setbox\ST@pbox\vtop\bgroup\hsize#1\@arrayparboxrestore} + \setbox\ST@pbox\vtop\bgroup\setlength\hsize{#1}\@arrayparboxrestore} +\def\ST@astartpbox#1{% + \bgroup\setlength\hsize{#1}% +%%%% \setbox\ST@pbox\vtop\bgroup\hsize#1\@arrayparboxrestore} + \setbox\ST@pbox\vtop\bgroup\setlength\hsize{#1}\@arrayparboxrestore} +\def\ST@endpbox{% + \@finalstrut\@arstrutbox\par\egroup + \ST@dimen=\ht\ST@pbox + \advance\ST@dimen by \dp\ST@pbox + \ifnum\ST@pboxht<\ST@dimen + \global\ST@pboxht=\ST@dimen + \fi + \ST@dimen=\z@ + \box\ST@pbox\hfil} +\def\ST@aendpbox{% + \@finalstrut\@arstrutbox\par\egroup + \ST@dimen=\ht\ST@pbox + \advance\ST@dimen by \dp\ST@pbox + \ifnum\ST@pboxht<\ST@dimen + \global\ST@pboxht=\ST@dimen + \fi + \ST@dimen=\z@ + \unvbox\ST@pbox\egroup\hfil} +\def\estimate@lineht{% + \ST@lineht=\arraystretch \baselineskip + \global\advance\ST@lineht by 1\p@ + \ST@stretchht\ST@lineht\advance\ST@stretchht-\baselineskip + \ifdim\ST@stretchht<\z@\ST@stretchht\z@\fi + \ST@trace\tw@{Basic line height: \the\ST@lineht\MessageBreak% + Arrayed line height: \the\ST@stretchht}% + \global\advance\ST@lineht \PWST@xentrystretch\ST@lineht + \ST@trace\tw@{Stretched line height: \the\ST@lineht}} +\def\@calfirstpageht{% + \ST@trace\tw@{Calculating height of xtabular on first page}% + \global\ST@pagesofar\pagetotal + \global\ST@pageleft\@colroom + \ST@trace\tw@{Height of previous text = \the\pagetotal; \MessageBreak + Height of column = \the\ST@pageleft}% + \if@twocolumn + \ST@trace\tw@{two column mode}% + \if@firstcolumn + \ST@trace\tw@{First column}% + \ifnum\ST@pagesofar > \ST@pageleft + \global\ST@pageleft=2\ST@pageleft + \ifnum\ST@pagesofar > \ST@pageleft + \newpage\@calnextpageht + \ST@trace\tw@{starting new page}% + \else + \ST@trace\tw@{Second column}% + \global\advance\ST@pageleft -\ST@pagesofar + \global\advance\ST@pageleft -\@colroom + \fi + \else + \global\advance\ST@pageleft by -\ST@pagesofar + \global\ST@pagesofar\z@ + \fi + \else + \ST@trace\tw@{Second column}% + \ifnum\ST@pagesofar > \ST@pageleft + \ST@trace\tw@{starting new page}% + \newpage\@calnextpageht + \else + \global\advance\ST@pageleft by -\ST@pagesofar + \global\ST@pagesofar\z@ + \fi + \fi + \else + \ST@trace\tw@{one column mode}% + \ifnum\ST@pagesofar > \ST@pageleft + \ST@trace\tw@{starting new page}% + \newpage\@calnextpageht + \else + \global\advance\ST@pageleft by -\ST@pagesofar + \global\ST@pagesofar\z@ + \fi + \fi + \ST@trace\tw@{Available height: \the\ST@pageleft}% + \ifx\@@tablehead\@empty + \ST@headht=\z@ + \else + \setbox\@tempboxa=\vbox{\@arrayparboxrestore + \ST@restore + \expandafter\tabular\expandafter{\ST@tableformat}% + \@@tablehead\endtabular}% + \ST@headht=\ht\@tempboxa\advance\ST@headht\dp\@tempboxa + \fi + \ST@trace\tw@{Height of head: \the\ST@headht}% + \ifx\@tabletail\@empty + \ST@tailht=\z@ + \else + \setbox\@tempboxa=\vbox{\@arrayparboxrestore + \ST@restore + \expandafter\tabular\expandafter{\ST@tableformat}% + \@tabletail\endtabular}% + \ST@tailht=\ht\@tempboxa\advance\ST@tailht\dp\@tempboxa + \fi + \advance\ST@tailht by \ST@lineht + \ST@trace\tw@{Height of tail: \the\ST@tailht}% + \ST@trace\tw@{Maximum space for xtabular: \the\ST@pageleft}% + \@tempdima\ST@headht + \advance\@tempdima\ST@lineht + \advance\@tempdima\ST@tailht + \if@topcaption + \setbox\@tempboxa=\vbox{\PWST@thecaption}% + \PWSTcapht=\ht\@tempboxa\advance\PWSTcapht\dp\@tempboxa + \advance\PWSTcapht by 20\p@ + \else + \PWSTcapht = 10\p@ + \fi + \ST@trace\tw@{Caption height: \the\PWSTcapht}% + \advance\@tempdima\PWSTcapht + \ST@trace\tw@{Minimum height of xtabular: \the\@tempdima}% + \ifnum\@tempdima>\ST@pageleft + \ST@trace\tw@{starting new page}% + \newpage + \global\ST@pageleft\@colroom + \global\advance\ST@pageleft by -\PWSTcapht + \global\ST@pagesofar=\z@ + \fi} % end \@calfirstpageheight + +\def\@calnextpageht{% + \ST@trace\tw@{Calculating height of xtabular on next page}% + \global\ST@pageleft\@colroom + \global\ST@pagesofar=\z@ + \ST@trace\tw@{Maximum space for xtabular: \the\ST@pageleft}} +\newcommand{\PWSTcalchtlines}{% + \setbox\@tempboxa=\vbox{\@arrayparboxrestore + \ST@restore + \expandafter\tabular\expandafter{\ST@tableformat}% + \@table@last@tail\endtabular}% + \PWST@ht=\ht\@tempboxa\advance\PWST@ht\dp\@tempboxa + \global\PWST@lastht = \PWST@ht + \setbox\@tempboxa=\vbox{\@arrayparboxrestore + \ST@restore + \expandafter\tabular\expandafter{\ST@tableformat}% + \@table@last@head\endtabular}% + \PWST@ht = \ht\@tempboxa\advance\PWST@ht\dp\@tempboxa + \global\advance\PWST@lastht by \PWST@ht + \ST@trace\tw@{Height of empty xtabular on last page = \the\PWST@lastht}% + \setbox\@tempboxa=\vbox{\@arrayparboxrestore + \ST@restore + \expandafter\tabular\expandafter{\ST@tableformat}% + \@tabletail\endtabular}% + \PWST@ht=\ht\@tempboxa\advance\PWST@ht\dp\@tempboxa + \global\PWST@generalht = \PWST@ht + \setbox\@tempboxa=\vbox{\@arrayparboxrestore + \ST@restore + \expandafter\tabular\expandafter{\ST@tableformat}% + \@tablehead\endtabular}% + \PWST@ht = \ht\@tempboxa\advance\PWST@ht\dp\@tempboxa + \global\advance\PWST@generalht by \PWST@ht} +\newcommand{\PWSTcalnextpageht}{% + \ifnum\PWSTcurpage = \PWSTpenultimate + \ST@trace\tw@{Calculating height of xtabular on last page}% + \PWST@ht=\PWST@lastht + \else + \ST@trace\tw@{Calculating height of xtabular on next general page}% + \PWST@ht=\PWST@generalht + \fi + \global\ST@pageleft\@colroom + \global\advance\ST@pageleft -\PWST@ht + \global\ST@pagesofar=\z@ + \ST@trace\tw@{Available space for xtabular: \the\ST@pageleft}} +\def\x@supertabular{% + \let\org@tabular\tabular + \let\tabular\inner@tabular + \expandafter\let + \csname org@tabular*\expandafter\endcsname + \csname tabular*\endcsname + \expandafter\let\csname tabular*\expandafter\endcsname + \csname inner@tabular*\endcsname +%%%% \if@topcaption \@process@tablecaption \fi + \global\let\@oldcr=\\% + \def\baslineskp{\baselineskip}% + \ifx\undefined\@classix + \let\org@tabularcr\@tabularcr + \let\@tabularcr\ST@tabularcr + \let\org@startpbox=\@startpbox + \let\org@endpbox=\@endpbox + \let\@@startpbox=\ST@startpbox + \let\@@endpbox=\ST@endpbox + \else + \let\org@tabularcr\@arraycr + \let\@arraycr\ST@tabularcr + \let\org@startpbox=\@startpbox + \let\org@endpbox=\@endpbox + \let\@startpbox=\ST@astartpbox + \let\@endpbox=\ST@aendpbox + \fi + \ifx\@table@first@head\undefined + \let\@@tablehead=\@tablehead + \else + \let\@@tablehead=\@table@first@head + \fi + \let\ST@skippage\ST@skipfirstpart + \estimate@lineht + \@calfirstpageht + \PWSTinit + \if@topcaption \@process@tablecaption \fi + \noindent + \global\advance\ST@pageleft -\ST@headht% + \ST@trace\tw@{Available space after accounting for header: \the\ST@pageleft}% + \global\advance\ST@pageleft -\ST@tailht% + \ST@trace\tw@{Available space after accounting for tail: \the\ST@pageleft}} +\newcommand{\PWSTinit}{% + \global\advance\c@PWSTtable\@ne + \global\expandafter\let\expandafter\PWSTtempc + \csname PWST@\romannumeral\c@PWSTtable\endcsname + \ifx\PWSTtempc\relax + \ST@trace\tw@{Table \the\c@PWSTtable: Processing for the first time}% + \PWSTlastpage=\@m% = 1000 + \else + \PWSTlastpage=\PWSTtempc + \fi + \ST@trace\tw@{Table \the\c@PWSTtable: last page set to \the\PWSTlastpage}% + \PWSTcurpage=\@ne + \PWSTcalchtlines + \global\PWSTlines=\z@ + \global\firstcalltrue + \infloattrue} +\def\xtabular{% + \@ifnextchar[{\@supertabular}%] + {\@supertabular[]}} +\def\@supertabular[#1]#2{% + \def\ST@tableformat{#2}% + \ST@trace\tw@{Starting a new xtabular}% + \global\ST@starfalse + \global\ST@mpfalse + \x@supertabular + \expandafter\org@tabular\expandafter{\ST@tableformat}% + \@@tablehead} +\@namedef{xtabular*}#1{% + \@ifnextchar[{\@nameuse{@supertabular*}{#1}}% + {\@nameuse{@supertabular*}{#1}[]}%] + } +\@namedef{@supertabular*}#1[#2]#3{% + \ST@trace\tw@{Starting a new xtabular*}% + \def\ST@tableformat{#3}% + \ST@wd=#1\relax + \global\ST@startrue + \global\ST@mpfalse + \x@supertabular + \expandafter\csname org@tabular*\expandafter\endcsname + \expandafter{\expandafter\ST@wd\expandafter}% + \expandafter{\ST@tableformat}% + \@@tablehead} +\def\mpxtabular{% + \@ifnextchar[{\@mpsupertabular}%] + {\@mpsupertabular[]}} +\def\@mpsupertabular[#1]#2{% + \def\ST@tableformat{#2}% + \ST@trace\tw@{Starting a new mpxtabular}% + \global\ST@starfalse + \global\ST@mptrue + \ST@rightskip \rightskip + \ST@leftskip \leftskip + \ST@parfillskip \parfillskip + \x@supertabular + \minipage{\columnwidth}% + \parfillskip\ST@parfillskip + \rightskip \ST@rightskip + \leftskip \ST@leftskip + \noindent\expandafter\org@tabular\expandafter{\ST@tableformat}% + \@@tablehead} + +\@namedef{mpxtabular*}#1{% + \@ifnextchar[{\@nameuse{@mpsupertabular*}{#1}}% + {\@nameuse{@mpsupertabular*}{#1}[]}%] +} +\@namedef{@mpsupertabular*}#1[#2]#3{% + \ST@trace\tw@{Starting a new mpxtabular*}% + \def\ST@tableformat{#3}% + \ST@wd=#1\relax + \global\ST@startrue + \global\ST@mptrue + \ST@rightskip \rightskip + \ST@leftskip \leftskip + \ST@parfillskip \parfillskip + \x@supertabular + \minipage{\columnwidth}% + \parfillskip\ST@parfillskip + \rightskip \ST@rightskip + \leftskip \ST@leftskip + \noindent\expandafter\csname org@tabular*\expandafter\endcsname + \expandafter{\expandafter\ST@wd\expandafter}% + \expandafter{\ST@tableformat}% + \@@tablehead} +\def\endxtabular{% + \ifx\@table@last@tail\undefined + \@tabletail + \else + \@table@last@tail + \fi + \csname endtabular\ifST@star*\fi\endcsname + \x@endsupertabular + \ST@trace\tw@{Ended a xtabular\ifST@star*\fi}} +\expandafter\let\csname endxtabular*\endcsname\endxtabular +\newcommand{\x@endsupertabular}{% + \ST@restore + \if@topcaption + \else + \@process@tablecaption + \global\@topcaptiontrue + \fi + \global\let\\=\@oldcr + \global\let\@table@first@head\undefined +%%% \global\let\@table@last@tail\undefined + \global\let\@process@tablecaption\relax + \PWSToplastpagenum + \infloatfalse} +\newcommand{\PWSToplastpagenum}{% + \ifnum\PWSTcurpage=\PWSTlastpage + \iffirstcall % on last, no overflow +%% \ifnum\PWSTlines < \PWSTlasthead % this table is empty + \ifnum\PWSTlines < \@ne % this table is empty + \global\advance\PWSTcurpage \m@ne + \fi + \else % overflow +%% \ifnum\PWSTlines > \tw@ % enough for another page + \ifnum\PWSTlines > \z@ % enough for another page + \global\advance\PWSTcurpage \@ne + \fi + \fi + \else +%% \ifnum\PWSTlines < \PWSThead % empty table + \ifnum\PWSTlines < \@ne % empty table + \global\advance\PWSTcurpage \m@ne + \fi + \fi + \if@filesw\immediate\write\@auxout% + {\gdef\string\PWST@\romannumeral\c@PWSTtable{\the\PWSTcurpage}}% + \ST@trace\tw@{Table \the\c@PWSTtable:\MessageBreak + wrote \the\PWSTcurpage\space as the last page}% + \fi} + +\def\endmpxtabular{% + \ifx\@table@last@tail\undefined + \@tabletail + \else + \@table@last@tail + \fi + \csname endtabular\ifST@star*\fi\endcsname + \endminipage + \x@endsupertabular + \ST@trace\tw@{Ended an mpxtabular\ifST@star*\fi}} +\expandafter\let\csname endmpxtabular*\endcsname\endmpxtabular +\def\ST@restore{% + \ifx\undefined\@classix + \let\@tabularcr\org@tabularcr + \else + \let\@arraycr\org@tabularcr + \fi + \let\@startpbox\org@startpbox + \let\@endpbox\org@endpbox} +\def\inner@tabular{% + \ST@restore + \let\\=\@oldcr + \noindent + \org@tabular} +\@namedef{inner@tabular*}{% + \ST@restore + \let\\=\@oldcr + \noindent + \csname org@tabular*\endcsname} +\def\ST@cr{% + \noalign{% + \ST@trace\thr@@{Parbox height: \the\ST@pboxht\MessageBreak + Line height: \the\ST@lineht}% + \ifnum\ST@pboxht<\ST@lineht + \global\advance\ST@pageleft -\ST@lineht + \global\ST@prevht\ST@lineht + \else + \global\advance\ST@pboxht \PWST@xentrystretch\ST@pboxht + \global\advance\ST@pboxht \ST@stretchht + \ST@trace\thr@@{Added par box with height \the\ST@pboxht}% + \global\advance\ST@pageleft -\ST@pboxht + \global\ST@prevht\ST@pboxht + \global\ST@pboxht\z@ + \fi + \global\advance\ST@pageleft -\ST@toadd + \global\ST@toadd=\z@ + \ST@trace\thr@@{Space left for xtabular: \the\ST@pageleft}% + \global\advance\PWSTlines \@ne + \ST@trace\thr@@{Line counter incremented by one to: \the\PWSTlines}% + }% end of noalign + \ifnum\PWSTcurpage=\PWSTlastpage + \PWST@lastpagecr + \else + \ifnum\ST@pageleft<\z@ + \ST@skippage + \else + \noalign{\global\@tempdima\ST@tailht + \global\advance\@tempdima\ST@prevht + \ifST@mp + \ifvoid\@mpfootins\else + \global\advance\@tempdima\ht\@mpfootins + \global\advance\@tempdima 3pt + \fi + \fi}% end noalign + \ifnum\ST@pageleft<\@tempdima + \ST@newpage + \else + \noalign{\global\let\ST@next\@empty}% + \fi + \fi + \fi + \ST@next} + +\newcommand{\PWST@lastpagecr}{% + \noalign{% + \ifnum\ST@pageleft<\z@ + \PWST@setfirstcall + \fi + \global\@tempdima\ST@tailht + \global\advance\@tempdima\ST@prevht + \ifST@mp + \ifvoid\@mpfootins\else + \global\advance\@tempdima\ht\@mpfootins + \global\advance\@tempdima 3pt + \fi + \fi + \ifnum\ST@pageleft<\@tempdima + \PWST@setfirstcall + \fi + \global\let\ST@next\@empty + }} +\newcommand{\PWST@setfirstcall}{% + \iffirstcall + \global\firstcallfalse + \global\PWSTlines=\z@ + \ST@trace\thr@@{Overflow on last page. Line counter set to \the\PWSTlines}% + \fi} +\def\ST@skipfirstpart{% + \noalign{% + \ST@trace\tw@{Tabular too high, moving to next page}% + \global\advance\ST@pageleft\pagetotal + \global\ST@pagesofar\z@ + \newpage + \global\let\ST@skippage\ST@newpage + }} +\def\ST@newpage{% + \noalign{\ST@trace\tw@{Starting new page, writing tail}}% + \@tabletail + \ifST@star + \csname endtabular*\endcsname + \else + \endtabular + \fi + \ifST@mp + \endminipage + \fi + \global\let\ST@skippage\ST@newpage + \newpage\PWSTcalnextpageht + \ST@trace\tw@{writing head}% + \PWSTsethead + \ifST@mp + \noindent\minipage{\columnwidth}% + \parfillskip\ST@parfillskip + \rightskip \ST@rightskip + \leftskip \ST@leftskip + \fi + \noindent + \ifST@star + \expandafter\csname org@tabular*\expandafter\endcsname + \expandafter{\expandafter\ST@wd\expandafter}% + \expandafter{\ST@tableformat}% + \else + \expandafter\org@tabular\expandafter{\ST@tableformat}% + \fi} +\newcommand{\PWSTsethead}{% + \global\PWSTlines=\z@ + \ST@trace\thr@@{Newpage, line counter set to: \the\PWSTlines}% + \global\advance\PWSTcurpage\@ne + \ST@trace\tw@{Table \the\c@PWSTtable:\MessageBreak + current page = \the\PWSTcurpage,\MessageBreak + last page = \the\PWSTlastpage}% + \ifnum\PWSTcurpage=\PWSTlastpage + \ST@trace\tw@{Newpage is the last page}% + \ifnum\PWSTcurpage>\@ne + \ifx\@table@last@head\relax + \let\ST@next\@tablehead + \ST@trace\tw@{Set heading to tablehead}% + \else + \let\ST@next\@table@last@head + \ST@trace\tw@{Set heading to tablelasthead}% + \fi + \fi + \else + \let\ST@next\@tablehead + \ST@trace\tw@{Set heading to tablehead}% + \fi} + +\endinput +%% +%% End of file `xtab.sty'. From a3d57320faac31c45c7219187ceba255bb3c3a74 Mon Sep 17 00:00:00 2001 From: martin-mann Date: Wed, 3 May 2017 15:52:02 +0200 Subject: [PATCH 3/4] add latex dependencies to package distribution --- doc/Makefile.am | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/Makefile.am b/doc/Makefile.am index 674dbe95..322e9d93 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -5,6 +5,12 @@ EXTRA_DIST = \ conda.txt \ - doxygen.cfg - + doxygen.cfg \ + latex-deps/adjcalc.sty \ + latex-deps/adjustbox.sty \ + latex-deps/collectbox.sty \ + latex-deps/tc-pgf.def \ + latex-deps/tocloft.sty \ + latex-deps/trimclip.sty \ + latex-deps/xtab.sty From f8362597009ebeb5d362c91f72da1b8fda393586 Mon Sep 17 00:00:00 2001 From: martin-mann Date: Wed, 3 May 2017 16:06:21 +0200 Subject: [PATCH 4/4] bugfix : sanity check if ED was computed --- src/IntaRNA/InteractionEnergyBasePair.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/IntaRNA/InteractionEnergyBasePair.h b/src/IntaRNA/InteractionEnergyBasePair.h index 6761d42a..1aebbaae 100644 --- a/src/IntaRNA/InteractionEnergyBasePair.h +++ b/src/IntaRNA/InteractionEnergyBasePair.h @@ -333,7 +333,7 @@ getES1( const size_t i1, const size_t j1 ) const // sanity check if (i1>j1) throw std::runtime_error("InteractionEnergy::getES1(i1="+toString(i1)+" > j1="+toString(j1)); if (j1>=size1()) throw std::runtime_error("InteractionEnergy::getES1() : j1="+toString(j1)+" >= size1()="+toString(size1())); - if (logQ1.size() != size1()) throw std::runtime_error("InteractionEnergy::getES1() : ES wasn't computed yet."); + if (logQ1.size1() != size1()) throw std::runtime_error("InteractionEnergy::getES1() : ES wasn't computed yet."); #endif return logQ1(i1, j1); } @@ -349,7 +349,7 @@ getES2( const size_t i2, const size_t j2 ) const // sanity check if (i2>j2) throw std::runtime_error("InteractionEnergy::getES2(i2="+toString(i2)+" > j2="+toString(j2)); if (j2>=size2()) throw std::runtime_error("InteractionEnergy::getES2() : j2="+toString(j2)+" >= size2()="+toString(size2())); - if (logQ2.size() != size2()) throw std::runtime_error("InteractionEnergy::getES2() : ES wasn't computed yet."); + if (logQ2.size1() != size2()) throw std::runtime_error("InteractionEnergy::getES2() : ES wasn't computed yet."); #endif return logQ2(i2, j2); }