summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ltxdockit
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ltxdockit
Initial commit
Diffstat (limited to 'macros/latex/contrib/ltxdockit')
-rw-r--r--macros/latex/contrib/ltxdockit/README23
-rw-r--r--macros/latex/contrib/ltxdockit/btxdockit.sty87
-rw-r--r--macros/latex/contrib/ltxdockit/ltxdockit.cfg90
-rw-r--r--macros/latex/contrib/ltxdockit/ltxdockit.cls142
-rw-r--r--macros/latex/contrib/ltxdockit/ltxdockit.def38
-rw-r--r--macros/latex/contrib/ltxdockit/ltxdockit.sty579
6 files changed, 959 insertions, 0 deletions
diff --git a/macros/latex/contrib/ltxdockit/README b/macros/latex/contrib/ltxdockit/README
new file mode 100644
index 0000000000..574f451e9c
--- /dev/null
+++ b/macros/latex/contrib/ltxdockit/README
@@ -0,0 +1,23 @@
+$Id: README,v 1.2d 2011/03/25 20:33:14 lehman stable $
+
+ABOUT
+
+This bundle consisting of a simple wrapper class and some packages
+forms a small LaTeX/BibTeX documentation kit. Please note that there
+is no support whatsoever for this software. There is also no
+documentation at all. The sole purpose of releasing this software is
+to make sure that the source of the manuals which ship with the
+csquotes, etoolbox, and biblatex packages may be compiled using a
+toolchain which is DFSG-free from end to end. There is no guarantee
+that these packages can be used for anything beyond that. They are
+not meant to be an all-purpose LaTeX documentation kit.
+
+LICENSE
+
+Copyright (c) 2008-2011 Philipp Lehman. This software is author-
+maintained. Permission is granted to copy, distribute and/or modify
+this software under the terms of the LaTeX Project Public License
+(LPPL), version 1.3. This software is provided 'as is', without
+warranty of any kind, either expressed or implied, including, but
+not limited to, the implied warranties of merchantability and
+fitness for a particular purpose.
diff --git a/macros/latex/contrib/ltxdockit/btxdockit.sty b/macros/latex/contrib/ltxdockit/btxdockit.sty
new file mode 100644
index 0000000000..9a0a9b5c06
--- /dev/null
+++ b/macros/latex/contrib/ltxdockit/btxdockit.sty
@@ -0,0 +1,87 @@
+% $Id: btxdockit.sty,v 1.2d 2011/03/25 20:33:14 lehman stable $
+%
+% Copyright (c) 2008-2011 Philipp Lehman.
+%
+% Permission is granted to copy, distribute and/or modify this
+% software under the terms of the LaTeX Project Public License
+% (LPPL), version 1.3.
+%
+% The LPPL maintenance status of this software is
+% 'author-maintained'.
+%
+% This software is provided 'as is', without warranty of any kind,
+% either expressed or implied, including, but not limited to, the
+% implied warranties of merchantability and fitness for a
+% particular purpose.
+
+\def\ltd@rcsid$#1: #2 #3 #4 #5${#4 v#3}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{btxdockit}
+[\ltd@rcsid $Id: btxdockit.sty,v 1.2d 2011/03/25 20:33:14 lehman stable $
+ BibTeX documentation kit]
+
+\RequirePackage{etoolbox}
+\RequirePackage{ltxdockit}
+
+% environments
+
+\newenvironment*{fieldlist}
+ {\list{}{%
+ \setlength{\labelwidth}{\marglistwidth}%
+ \setlength{\labelsep}{\marglistsep}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{\hss\marglistfont##1}}%
+ \def\fielditem##1##2{%
+ \item[##1]%
+ \ltd@pdfbookmark{##1}{##1}%
+ field (##2)\par\nobreak
+ \vspace{\itemsep}}%
+ \def\listitem##1##2{%
+ \item[##1]%
+ \ltd@pdfbookmark{##1}{##1}%
+ list (##2)\par\nobreak
+ \vspace{\itemsep}}}
+ {\endlist}
+
+\newenvironment*{typelist}
+ {\list{}{%
+ \setlength{\labelwidth}{\marglistwidth}%
+ \setlength{\labelsep}{\marglistsep}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{\hss\marglistfont##1}}%
+ \def\typeitem##1{%
+ \item[{##1}]%
+ \ltd@pdfbookmark{##1}{##1}}%
+ \def\reqitem{%
+ \par\begingroup\itemsep0.5\itemsep\item
+ Required fields: \btd@fieldloop}
+ \def\optitem{%
+ \par\begingroup\itemsep0.5\itemsep\item
+ Optional fields: \btd@fieldloop}}
+ {\endlist}
+
+\def\btd@fieldloop#1{%
+ \interlinepenalty\@M\raggedright
+ \def\@tempa{\def\@tempa{, }}
+ \def\do##1{\@tempa\bibfield{##1}}%
+ \docsvlist{#1}%
+ \par\endgroup}
+
+% verbatim
+
+\lstdefinestyle{bibtex}{%
+ moredelim=[is][\spotcolor]{<<}{>>}}
+
+% markup
+
+\newrobustcmd*{\bibfield}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\bibtype}[1]{\mbox{\verbatimfont @#1}}
+
+\ifpdf
+ \pdfstringdefDisableCommands{%
+ \def\bibfield#1{'#1'}%
+ \def\bibtype#1{@#1}}
+\fi
+
+\endinput
diff --git a/macros/latex/contrib/ltxdockit/ltxdockit.cfg b/macros/latex/contrib/ltxdockit/ltxdockit.cfg
new file mode 100644
index 0000000000..270f0e76bd
--- /dev/null
+++ b/macros/latex/contrib/ltxdockit/ltxdockit.cfg
@@ -0,0 +1,90 @@
+% $Id: ltxdockit.cfg,v 1.2d 2011/03/25 20:33:14 lehman stable $
+
+\ProvidesFile{ltxdockit.cfg}
+[\ltd@rcsid $Id: ltxdockit.cfg,v 1.2d 2011/03/25 20:33:14 lehman stable $
+ ltxdockit configuration (DFSG-free)]
+
+\RequirePackage[T1]{fontenc}
+\RequirePackage{lmodern}
+\RequirePackage{helvet}
+\RequirePackage{charter}
+
+\catcode`\"=\active
+\AtEndPreamble{%
+ \@ifpackageloaded{babel}
+ {\iflanguage{american}
+ {\expandafter\initiate@active@char\expandafter{\string"}%
+ \declare@shorthand{american}{"=}{\penalty\@M-\hskip\z@skip}%
+ \addto\extrasamerican{\languageshorthands{american}\bbl@activate{"}}%
+ \addto\noextrasamerican{\bbl@deactivate{"}}}
+ {}}
+ {}}
+\catcode`\"=12
+
+\newrobustcmd*{\tex}{TeX\xspace}
+\newrobustcmd*{\etex}{\mbox{e-TeX}\xspace}
+\newrobustcmd*{\pdftex}{pdf\-\tex}
+\newrobustcmd*{\xetex}{Xe\-\tex}
+\newrobustcmd*{\luatex}{Lua\-\tex}
+\newrobustcmd*{\latex}{La\kern-0.07em TeX\xspace}
+\newrobustcmd*{\pdflatex}{pdf\-\latex}
+\newrobustcmd*{\xelatex}{Xe\-\latex}
+\newrobustcmd*{\lualatex}{Lua\-\latex}
+\newrobustcmd*{\bibtex}{Bib\kern-0.07em TeX\xspace}
+\newrobustcmd*{\lppl}{\latex Project Public License\xspace}
+\newrobustcmd*{\pdf}{\acr{PDF}\xspace}
+\newrobustcmd*{\utf}{\mbox{\acr{UTF}-8}\xspace}
+\newcommand*{\ie}{i.\,e.,\xspace}
+\newcommand*{\eg}{e.\,g.,\xspace}
+
+\pdfstringdefDisableCommands{%
+ \def\tex{TeX\xspace}%
+ \def\etex{e-TeX\xspace}%
+ \def\xetex{XeTeX\xspace}%
+ \def\latex{LaTeX\xspace}%
+ \def\xelatex{XeLaTeX\xspace}%
+ \def\bibtex{BibTeX\xspace}%
+ \def\lppl{LaTeX Project Public License\xspace}%
+ \def\pdf{PDF\xspace}%
+ \def\utf{UTF-8\xspace}%
+ \def\ie{i.e.,\xspace}%
+ \def\eg{e.g.,\xspace}%
+}
+
+% tables
+
+\newcommand*{\tablesetup}{%
+ \let\verbatim@font\displayverbfont
+ \footnotesize}
+
+% layout
+
+\setcounter{totalnumber}{1}
+\setcounter{secnumdepth}{3}
+\setcounter{tocdepth}{2}
+\AtBeginToc{\setcounter{tocdepth}{2}}
+\AtEndToc{\setcounter{tocdepth}{5}}
+\addtolength{\oddsidemargin}{1cm}
+\setlength{\columnsep}{2em}
+\setlength{\multicolsep}{0pt}
+\clubpenalty6000\relax
+\widowpenalty\@M
+
+\renewcommand*{\labelenumi}{\theenumi.}
+\renewcommand*{\labelenumii}{\theenumii)}
+
+\renewcommand*{\verbatimfont}{\ttfamily}
+\renewcommand*{\displayverbfont}{\ttfamily}
+\renewcommand*{\marglistfont}{\spotcolor\sffamily\small}
+\renewcommand*{\margnotefont}{\sffamily\small}
+\renewcommand*{\optionlistfont}{\spotcolor\sffamily\displayverbfont}
+\renewcommand*{\ltxsyntaxfont}{\ttfamily}
+\renewcommand*{\ltxsyntaxlabelfont}{\spotcolor\displayverbfont}
+\renewcommand*{\changelogfont}{\normalfont}
+\renewcommand*{\changeloglabelfont}{\spotcolor\sffamily\bfseries}
+
+% no-ops
+
+\providecommand*{\textln}[1]{#1}
+
+\endinput
diff --git a/macros/latex/contrib/ltxdockit/ltxdockit.cls b/macros/latex/contrib/ltxdockit/ltxdockit.cls
new file mode 100644
index 0000000000..43fcb3bfde
--- /dev/null
+++ b/macros/latex/contrib/ltxdockit/ltxdockit.cls
@@ -0,0 +1,142 @@
+% $Id: ltxdockit.cls,v 1.2d 2011/03/25 20:33:14 lehman stable $
+%
+% Copyright (c) 2008-2011 Philipp Lehman.
+%
+% Permission is granted to copy, distribute and/or modify this
+% software under the terms of the LaTeX Project Public License
+% (LPPL), version 1.3.
+%
+% The LPPL maintenance status of this software is
+% 'author-maintained'.
+%
+% This software is provided 'as is', without warranty of any kind,
+% either expressed or implied, including, but not limited to, the
+% implied warranties of merchantability and fitness for a
+% particular purpose.
+
+\def\ltd@rcsid$#1: #2 #3 #4 #5${#4 v#3}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{ltxdockit}
+[\ltd@rcsid $Id: ltxdockit.cls,v 1.2d 2011/03/25 20:33:14 lehman stable $
+ LaTeX documentation kit]
+
+\input{ltxdockit.def}
+
+\RequirePackage{etoolbox}
+\RequirePackage{multicol}
+\RequirePackage{keyval}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{textcomp}
+\RequirePackage{ltxdockit}
+\RequirePackage{hyperref}
+\RequirePackage[all]{hypcap}
+
+\newrobustcmd*{\fnurl}[1][]{\hyper@normalise\ltd@fnurl{#1}}
+\def\ltd@fnurl#1#2{\footnote{#1\hyper@linkurl{\Hurl{#2}}{#2}}}
+
+\newrobustcmd*{\email}{\hyper@normalise\ltd@email}
+\def\ltd@email#1{\href{mailto:#1}{#1}}
+
+\hypersetup{%
+ colorlinks=true,
+ linkcolor=spot,
+ urlcolor=spot,
+ bookmarks=true,
+ bookmarksopen=false,
+ bookmarksnumbered=false,
+ hyperfootnotes=false,
+ plainpages=false,
+ pdfpagelabels=true,
+ pdfpagemode=UseOutlines,
+ pdfview=FitH,
+ pdfstartview=FitH}
+
+% title
+
+\providecommand*{\titlepage}{}
+\providecommand*{\titlefont}{}
+\renewrobustcmd*{\titlepage}[1]{\setkeys{ltd@ttp}{#1}}
+\renewcommand*{\titlefont}{\bfseries}
+\define@key{ltd@ttp}{title}{\def\ltd@title@title{#1}}
+\define@key{ltd@ttp}{subtitle}{\def\ltd@title@subtitle{#1}}
+\define@key{ltd@ttp}{url}{\def\ltd@title@url{#1}}
+\define@key{ltd@ttp}{author}{\def\ltd@title@author{#1}}
+\define@key{ltd@ttp}{email}{\def\ltd@title@email{#1}}
+\define@key{ltd@ttp}{revision}{\def\ltd@title@revision{#1}}
+\define@key{ltd@ttp}{date}{\def\ltd@title@date{#1}}
+
+\providecommand*{\printtitlepage}{}
+\renewrobustcmd*{\printtitlepage}{%
+ \begingroup
+ \centering\titlefont
+ \begingroup\LARGE
+ \ifundef\ltd@title@url
+ {\ltd@title@title}
+ {\href{\ltd@title@url}{\ltd@title@title}}%
+ \par
+ \endgroup
+ \vspace{0.25\baselineskip}
+ \begingroup\large
+ \ltd@title@subtitle\par
+ \endgroup
+ \vspace{0.25\baselineskip}
+ \begin{multicols}{2}
+ \raggedleft
+ \ltd@title@author\par
+ \expandafter\email\expandafter{\ltd@title@email}\par
+ \raggedright
+ Version \ltd@title@revision\par\ltd@title@date
+ \end{multicols}
+ \endgroup}
+
+% rcs tags
+
+\providecommand*{\rcsfile}{[rcsfile]}
+\providecommand*{\rcsrevision}{[revision]}
+\providecommand*{\rcsdate}{[date]}
+\providecommand*{\rcstime}{[time]}
+\providecommand*{\rcsstate}{[state]}
+\providecommand*{\rcsauthor}{[author]}
+\providecommand*{\rcslocker}{[unlocked]}
+\providecommand*{\rcstoday}{\today}
+
+\providecommand*{\rcsid}[1]{%
+ \ifblank{#1}{}{\ltd@rcsid@i#1}}
+\def\ltd@rcsid@i$Id#1${%
+ \ifblank{#1}{}{\ltd@rcsid@ii#1&}}
+\def\ltd@rcsid@ii#1#2&{%
+ \ifblank{#1}{}{\ltd@rcsid@iii#2&}}
+\def\ltd@rcsid@iii#1 #2 #3 #4&{%
+ \write\@auxout{%
+ \detokenize{\gdef\rcsfile{#2}}^^J%
+ \detokenize{\gdef\rcsrevision{#3}}}%
+ \ltd@rcsid@iv#4&}
+\def\ltd@rcsid@iv#1/#2/#3 #4:#5:#6 #7&{%
+ \write\@auxout{%
+ \detokenize{\gdef\rcsdate{#1/#2/#3}}^^J%
+ \detokenize{\gdef\rcstime{#4:#5:#6}}^^J%
+ \detokenize{\ltd@setdate{#1}{#2}{#3}{#4}{#5}}}%
+ \ltd@rcsid@v#7&}
+\def\ltd@rcsid@v#1 #2 #3&{%
+ \write\@auxout{%
+ \detokenize{\gdef\rcsauthor{#1}}^^J%
+ \detokenize{\gdef\rcsstate{#2}}}%
+ \ifblank{#3}{}{\ltd@rcsid@vi#3&}}
+\def\ltd@rcsid@vi#1 &{%
+ \write\@auxout{%
+ \detokenize{\gdef\rcslocker{#1}}}}
+
+\def\ltd@setdate#1#2#3#4#5{%
+ \global\year=#1
+ \global\month=#2
+ \global\day=#3
+ \global\time=#4
+ \global\multiply\time by 60
+ \global\advance\time by #5}
+
+% config file
+
+\InputIfFileExists{ltxdockit.cfg}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/ltxdockit/ltxdockit.def b/macros/latex/contrib/ltxdockit/ltxdockit.def
new file mode 100644
index 0000000000..d4ba31f4e4
--- /dev/null
+++ b/macros/latex/contrib/ltxdockit/ltxdockit.def
@@ -0,0 +1,38 @@
+% $Id: ltxdockit.def,v 1.2d 2011/03/25 20:33:14 lehman stable $
+
+\ProvidesFile{ltxdockit.def}
+[\ltd@rcsid $Id: ltxdockit.def,v 1.2d 2011/03/25 20:33:14 lehman stable $
+ ltxdockit pre-configuration (DFSG-free)]
+
+\RequirePackage{etoolbox}
+
+\PassOptionsToClass{11pt,a4paper,DIV9,listof=totoc,listof=flat}{scrartcl}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions*
+\LoadClass{scrartcl}
+
+% patches
+
+\newcommand*{\AtBeginToc}{\g@addto@macro\@begintochook}
+\newcommand*{\AtEndToc}{\g@addto@macro\@endtochook}
+\@onlypreamble\AtBeginToc
+\@onlypreamble\AtEndToc
+\newcommand*{\@begintochook}{}
+\newcommand*{\@endtochook}{}
+
+\newcommand*{\AtBeginLot}{\g@addto@macro\@beginlothook}
+\newcommand*{\AtEndLot}{\g@addto@macro\@endlothook}
+\@onlypreamble\AtBeginLot
+\@onlypreamble\AtEndLot
+\newcommand*{\@beginlothook}{}
+\newcommand*{\@endlothook}{}
+
+\pretocmd\@starttoc{\csuse{@begin#1hook}}{}{}
+\apptocmd\@starttoc{\csuse{@end#1hook}}{}{}
+
+\AtBeginToc{\multicolsep\z@\begin{multicols}{2}}
+\AtEndToc{\end{multicols}}
+\AtBeginLot{\multicolsep\z@\begin{multicols}{2}}
+\AtEndLot{\end{multicols}}
+
+\endinput
diff --git a/macros/latex/contrib/ltxdockit/ltxdockit.sty b/macros/latex/contrib/ltxdockit/ltxdockit.sty
new file mode 100644
index 0000000000..fe20f10445
--- /dev/null
+++ b/macros/latex/contrib/ltxdockit/ltxdockit.sty
@@ -0,0 +1,579 @@
+% $Id: ltxdockit.sty,v 1.2d 2011/03/25 20:33:14 lehman stable $
+%
+% Copyright (c) 2008-2011 Philipp Lehman.
+%
+% Permission is granted to copy, distribute and/or modify this
+% software under the terms of the LaTeX Project Public License
+% (LPPL), version 1.3.
+%
+% The LPPL maintenance status of this software is
+% 'author-maintained'.
+%
+% This software is provided 'as is', without warranty of any kind,
+% either expressed or implied, including, but not limited to, the
+% implied warranties of merchantability and fitness for a
+% particular purpose.
+
+\def\ltd@rcsid$#1: #2 #3 #4 #5${#4 v#3}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ltxdockit}
+[\ltd@rcsid $Id: ltxdockit.sty,v 1.2d 2011/03/25 20:33:14 lehman stable $
+ LaTeX documentation kit]
+
+\RequirePackage{etoolbox}
+\RequirePackage{listings}
+\RequirePackage{color}
+\RequirePackage{xspace}
+\RequirePackage{ifpdf}
+\RequirePackage{hyperref}
+
+\newcount\ltd@tempcnta
+\newlength{\ltd@tempdima}
+\newlength{\marglistwidth}
+\newlength{\marglistsep}
+
+\AtEndPreamble{%
+ \deflength{\marglistwidth}{(\oddsidemargin+1in)*85/100}%
+ \deflength{\marglistsep}{10pt}}
+
+\newcommand*{\marglistfont}{\bfseries}
+\newcommand*{\margnotefont}{}
+\newcommand*{\optionlistfont}{\bfseries}
+\newcommand*{\ltxsyntaxfont}{\ttfamily}
+\newcommand*{\ltxsyntaxlabelfont}{\bfseries}
+\newcommand*{\changelogfont}{\normalfont}
+\newcommand*{\changeloglabelfont}{\bfseries}
+\newcommand*{\verbatimfont}{\ttfamily}
+\newcommand*{\displayverbfont}{\ttfamily}
+\renewcommand*{\verbatim@font}{\verbatimfont}
+
+\definecolor{spot}{rgb}{0,0.2,0.6}
+\definecolor{boxframe}{gray}{0.8}
+\definecolor{boxfill}{rgb}{0.95,0.95,0.99}
+\newcommand*{\defaultcolor}{\color{black}}
+\newcommand*{\spotcolor}{\color{spot}}
+
+% markup
+
+\newrobustcmd*{\cs}[1]{\mbox{\verbatimfont\textbackslash#1}}
+\newrobustcmd*{\cmd}[1]{\mbox{\verbatimfont\textbackslash#1}}
+\newrobustcmd*{\env}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\len}[1]{\mbox{\verbatimfont\textbackslash#1}}
+\newrobustcmd*{\cnt}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\prm}[1]{%
+ \ifblank{#1}
+ {}
+ {\mbox{%
+ \ensuremath\langle
+ \normalfont\textit{#1}%
+ \ensuremath\rangle}}}
+\newrobustcmd*{\mprm}[1]{%
+ \mbox{%
+ {\verbatimfont\{}\prm{#1}%
+ {\verbatimfont\}}}}
+\newrobustcmd*{\oprm}[1]{%
+ \mbox{%
+ {\verbatimfont[}\prm{#1}%
+ {\verbatimfont]}}}
+\newrobustcmd*{\opt}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\kvopt}[2]{{%
+ \verbatimfont#1\penalty\@M
+ \hskip 0em plus 0.15em\relax
+ =\penalty\hyphenpenalty
+ \hskip 0em plus 0.15em\relax #2}}
+
+\csdef{*}{\textasteriskcentered}
+\newrobustcmd*{\file}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\sty}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\bin}[1]{\mbox{\verbatimfont#1}}
+\newrobustcmd*{\acr}[1]{\mbox{%
+ \ifx\f@family\rmdefault
+ \textsc{\MakeLowercase{#1}}%
+ \else
+ #1%
+ \fi}}
+\newrobustcmd*{\keyval}{%
+ \begingroup\verbatimfont
+ \prm{key}=\penalty\hyphenpenalty
+ \prm{value}\endgroup
+ \xspace}
+
+\ifpdf
+ \pdfstringdefDisableCommands{%
+ \def\cs#1{\textbackslash#1}%
+ \def\cmd#1{\textbackslash#1}%
+ \def\env#1{'#1'}%
+ \def\len#1{\textbackslash#1}%
+ \def\cnt#1{'#1'}%
+ \def\prm#1{'#1'}%
+ \def\mprm#1{\{#1\}}%
+ \def\oprm#1{[#1]}%
+ \def\opt#1{'#1'}%
+ \def\kvopt#1#2{'#1'='#2'}%
+ \def\keyval{'key'='value'}%
+ \let\file\@firstofone
+ \let\sty\@firstofone
+ \let\bin\@firstofone
+ \let\acr\@firstofone}%
+ \def\ltd@pdfbookmark#1#2{%
+ \edef\ltd@pdfanchor{%
+ \the\c@part\ifundef\c@chapter{}{\the\c@chapter}%
+ \the\c@section\the\c@subsection\the\c@subsubsection
+ \the\c@paragraph\the\c@subparagraph
+ \string:\detokenize{#1}}%
+ \belowpdfbookmark{#2}{\ltd@pdfanchor}}
+\else
+ \let\ltd@pdfbookmark\@gobbletwo
+\fi
+
+\newenvironment*{marglist}
+ {\list{}{%
+ \setlength{\labelwidth}{\marglistwidth}%
+ \setlength{\labelsep}{\marglistsep}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{\hss\marglistfont##1}}}
+ {\endlist}
+
+\newenvironment*{keymarglist}
+ {\marglist
+ \setlength{\itemsep}{0pt}%
+ \raggedright}
+ {\endmarglist}
+
+% references
+
+\newcommand*{\secref}{\refs{\S}{\S\S}}
+\newcommand*{\Secref}{\refs{\S}{\S\S}}
+\newcommand*{\apxref}{\refs{appendix}{appendices}}
+\newcommand*{\Apxref}{\refs{Appendix}{Appendices}}
+\newcommand*{\tabref}{\refs{table}{tables}}
+\newcommand*{\Tabref}{\refs{Table}{Tables}}
+
+\newrobustcmd*{\refs}[3]{%
+ \begingroup
+ \@tempcnta\z@
+ \def\do##1{\advance\@tempcnta\@ne}%
+ \docsvlist{#3}%
+ \@tempcntb\@ne
+ \def\@tempa{\def\@tempa{%
+ \advance\@tempcntb\@ne
+ \ifnumequal{\@tempcnta}{2}
+ { and }
+ {, }}}%
+ \def\do##1{\@tempa\ref{##1}}%
+ \ifnumgreater{\@tempcnta}{1}{#2}{#1}~\docsvlist{#3}%
+ \endgroup}
+
+% syntax
+
+\newenvironment*{ltxsyntax}
+ {\list{}{%
+ \setlength{\labelwidth}{\marglistwidth}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{%
+ \hss\ltxsyntaxfont\ltxsyntaxlabelfont##1}}%
+ \let\csitem\ltd@csitem
+ \let\cmditem\ltd@cmditem
+ \let\envitem\ltd@envitem
+ \let\lenitem\ltd@csitem
+ \let\boolitem\ltd@boolitem
+ \let\cntitem\ltd@item
+ \let\optitem\ltd@item}
+ {\endlist}
+
+\def\ltd@itemsave{%
+ \ltd@tempcnta\@itempenalty
+ \ltd@tempdima\itemsep
+ \@itempenalty\@M}
+\def\ltd@itemrest{%
+ \@itempenalty\ltd@tempcnta
+ \itemsep\ltd@tempdima}
+
+\def\ltd@syntaxsetup{%
+ \@makeother\[%
+ \@makeother\]%
+ \@makeother\<%
+ \@makeother\>%
+ \@makeother\|}%
+
+\def\ltd@itembreak{%
+ \ltd@goodbreak
+ \let\ltd@goodbreak\goodbreak}
+\let\ltd@goodbreak\relax
+
+\def\ltd@item{%
+ \@ifstar
+ {\boolfalse{@tempswa}\ltd@item@i}
+ {\booltrue{@tempswa}\ltd@item@i}}
+\def\ltd@item@i#1{%
+ \ifbool{@tempswa}
+ {\ltd@item@ii{#1\hspace\marglistsep}{#1}}
+ {\ltd@item@ii{#1\hspace\marglistsep}{}}}
+\def\ltd@item@ii#1#2{%
+ \ltd@itemsave
+ \ifhmode
+ \itemsep\z@
+ \else
+ \ltd@itembreak
+ \fi
+ \item[#1]%
+ \ltd@itemrest
+ \ifblank{#2}{}{\ltd@pdfbookmark{#2}{#1}}}
+
+\def\ltd@csitem{%
+ \@ifstar
+ {\boolfalse{@tempswa}\ltd@csitem@i}
+ {\booltrue{@tempswa}\ltd@csitem@i}}
+\def\ltd@csitem@i#1{%
+ \ifbool{@tempswa}
+ {\ltd@item@ii{\textbackslash#1\hspace\marglistsep}{#1}}
+ {\ltd@item@ii{\textbackslash#1\hspace\marglistsep}{}}}
+
+\def\ltd@boolitem#1{%
+ \ltd@item@ii{\textbackslash#1true\hspace\marglistsep}{}%
+ \leavevmode\vspace{-\parsep}%
+ \ltd@item@ii{\textbackslash#1false\hspace\marglistsep}{}%
+ \leavevmode\vspace{\numexpr-2\baselineskip}}
+
+\def\ltd@cmditem{%
+ \@ifstar
+ {\boolfalse{@tempswa}\ltd@cmditem@i}
+ {\booltrue{@tempswa}\ltd@cmditem@i}}
+\def\ltd@cmditem@i#1{%
+ \ifbool{@tempswa}
+ {\ltd@cmditem@ii{\textbackslash#1}{#1}}
+ {\ltd@cmditem@ii{\textbackslash#1}{}}}
+\def\ltd@cmditem@ii#1#2{%
+ \ltd@itemsave
+ \ifhmode
+ \itemsep-\topsep
+ \else
+ \ltd@itembreak
+ \fi
+ \item[#1]%
+ \ltd@itemrest
+ \ifblank{#2}{}{\ltd@pdfbookmark{#2}{#1}}%
+ \begingroup
+ \ltd@syntaxsetup
+ \ltxsyntaxfont
+ \let\@tempa\@empty
+ \ltd@parseargs}
+
+\def\ltd@envitem#1{%
+ \ltd@itembreak
+ \item[\textbackslash begin]\{{\ltxsyntaxfont\ltxsyntaxlabelfont#1}\}%
+ \ltd@pdfbookmark{#1}{#1}%
+ \begingroup
+ \ltd@syntaxsetup
+ \ltxsyntaxfont
+ \def\@tempa{%
+ \ltd@itemsave
+ \itemsep\z@
+ \item[\textbackslash end]\{{\ltxsyntaxfont\ltxsyntaxlabelfont#1}\}%
+ \ltd@itemrest}%
+ \ltd@parseargs}
+
+\def\ltd@parseargs{%
+ \leavevmode
+ \futurelet\@let@token\ltd@parseargs@space}
+\def\ltd@parseargs@space{%
+ \ifx\@let@token\@sptoken
+ \expandafter\ltd@gobblespace
+ \else
+ \expandafter\ltd@parseargs@i
+ \fi}
+\def\ltd@parseargs@i{%
+ \ifx\@let@token\\%
+ \expandafter\ltd@printarg@i
+ \else
+ \expandafter\ltd@parseargs@ii
+ \fi}
+\def\ltd@parseargs@ii{%
+ \ifx\@let@token*%
+ \expandafter\ltd@printarg@ii
+ \else
+ \expandafter\ltd@parseargs@iii
+ \fi}
+\def\ltd@parseargs@iii{%
+ \ifx\@let@token[%]
+ \expandafter\ltd@printarg@iii
+ \else
+ \expandafter\ltd@parseargs@iv
+ \fi}
+\def\ltd@parseargs@iv{%
+ \ifx\@let@token(%)
+ \expandafter\ltd@printarg@iv
+ \else
+ \expandafter\ltd@parseargs@v
+ \fi}
+\def\ltd@parseargs@v{%
+ \ifx\@let@token<%>
+ \expandafter\ltd@printarg@v
+ \else
+ \expandafter\ltd@parseargs@vi
+ \fi}
+\def\ltd@parseargs@vi{%
+ \ifx\@let@token|%
+ \expandafter\ltd@printarg@vi
+ \else
+ \expandafter\ltd@parseargs@vii
+ \fi}
+\def\ltd@parseargs@vii{%
+ \ifx\@let@token\bgroup
+ \expandafter\ltd@printarg@vii
+ \else
+ \expandafter\ltd@parseargs@end
+ \fi}
+\def\ltd@parseargs@end{%
+ \@tempa\endgroup
+ \nobreak\vspace*{\itemsep}}
+
+\def\ltd@printarg@i#1{\%\nobreak\par\ltd@parseargs}
+\def\ltd@printarg@ii#1{{\ltxsyntaxfont\ltxsyntaxlabelfont#1}\ltd@parseargs}
+\def\ltd@printarg@iii[#1]{[\prm{#1}]\ltd@parseargs}
+\def\ltd@printarg@iv(#1){(\prm{#1})\ltd@parseargs}
+\def\ltd@printarg@v<#1>{\prm{#1}\ltd@parseargs}
+\def\ltd@printarg@vi|#1|{#1\ltd@parseargs}
+\def\ltd@printarg@vii#1{\{\prm{#1}\}\ltd@parseargs}
+\csdef{ltd@gobblespace} {\ltd@parseargs}
+
+% options
+
+\newenvironment*{optionlist}
+ {\list{}{%
+ \setlength{\labelwidth}{\marglistwidth}%
+ \setlength{\labelsep}{\z@}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{\hss\optionlistfont##1}}%
+ \ltd@optionlist}
+ {\endlist}
+
+\newenvironment*{optionlist*}
+ {\list{}{%
+ \setlength{\labelwidth}{0pt}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{\hss\optionlistfont##1}}%
+ \ltd@optionlist
+ \let\ltd@pdfbookmark\@gobbletwo
+ \let\ltd@option@i\ltd@option@ii
+ \def\legitem##1{\item[##1]\item\relax}}
+ {\endlist}
+
+\def\ltd@optionlist{%
+ \let\optitem\ltd@ol@optitem
+ \let\varitem\ltd@ol@varitem
+ \let\valitem\ltd@ol@valitem
+ \let\choitem\ltd@ol@choitem
+ \let\boolitem\ltd@ol@boolitem
+ \let\intitem\ltd@ol@intitem
+ \let\legitem\ltd@ol@legitem}
+
+\newcommand*{\ltd@ol@optitem}[3][]{%
+ \ifblank{#1}
+ {\ltd@option{#2}{#2}{#3}{}}
+ {\ltd@option{#2}{#2}{#3}{\ltd@textverb{#1}}}}%
+
+\newcommand*{\ltd@ol@varitem}[3][]{%
+ \ifblank{#1}
+ {\ltd@option{#2}{\prm{#2}}{#3}{}}
+ {\ltd@option{#2}{\prm{#2}}{#3}{\ltd@textverb{#1}}}}%
+
+\newcommand*{\ltd@ol@valitem}[3][]{%
+ \ifblank{#1}
+ {\ltd@option{#2}{#2}{\prm{#3}}{}}
+ {\ltd@option{#2}{#2}{\prm{#3}}{\ltd@textverb{#1}}}}%
+
+\newcommand*{\ltd@ol@choitem}[3][]{%
+ \ifblank{#1}
+ {\ltd@option{#2}{#2}{\ltd@verblist{#3}}{}}
+ {\ltd@option{#2}{#2}{\ltd@verblist{#3}}{\ltd@textverb{#1}}}}%
+
+\newcommand*{\ltd@ol@boolitem}[2][]{%
+ \ifblank{#1}
+ {\ltd@option{#2}{#2}{\ltd@verblist{true,false}}{}}
+ {\ltd@option{#2}{#2}{\ltd@verblist{true,false}}{\ltd@textverb{#1}}}}%
+
+\newcommand*{\ltd@ol@intitem}[2][]{%
+ \ifblank{#1}
+ {\ltd@option{#2}{#2}{\prm{integer}}{}}
+ {\ltd@option{#2}{#2}{\prm{integer}}{\ltd@textverb{#1}}}}%
+
+\def\ltd@ol@legitem#1{%
+ \item[#1\hspace{\marglistsep}]%
+ \ltd@pdfbookmark{#1}{#1}}%
+
+\def\ltd@textverb#1{{\displayverbfont#1}}
+
+\def\ltd@verblist#1{%
+ \begingroup
+ \let\@tempa\@empty
+ \def\do##1{\@tempa\ltd@textverb{##1}\def\@tempa{, }}%
+ \docsvlist{#1}%
+ \endgroup}
+
+\def\ltd@option#1#2#3#4{%
+ \@ifnextchar[%]
+ {\ltd@option@i{#1}{#2}{#3}{#4}}
+ {\ltd@option@i{#1}{#2}{#3}{#4}[]}}
+
+\def\ltd@option@i#1#2#3#4[#5]{%
+ \item[#2]%
+ \ltd@pdfbookmark{#1}{#1}%
+ \begingroup\raggedright
+ \ltd@textverb{=}%
+ \settowidth\@tempdimb{\ltd@textverb{=}}%
+ \@tempdima=\dimexpr\linewidth-\@tempdimb\relax
+ \ifblank{#4}
+ {}
+ {\settowidth\@tempdimb{default: #4}%
+ \@tempdima=\dimexpr\@tempdima-\@tempdimb-2em\relax}%
+ \parbox[t]{\@tempdima}{\raggedright #3}%
+ \ifblank{#4}
+ {}
+ {\hfill default:~#4}%
+ \ifblank{#5}
+ {}
+ {\marginpar{\margnotefont #5}}%
+ \par\endgroup
+ \nobreak\vspace{\itemsep}}
+
+\def\ltd@option@ii#1#2#3#4[#5]{%
+ \item[#2]%
+ \ltd@pdfbookmark{#1}{#1}%
+ \begingroup\raggedright
+ \ltd@textverb{=}%
+ \settowidth\@tempdimb{{\optionlistfont#2}\ltd@textverb{=}}%
+ \@tempdima=\dimexpr\linewidth-\@tempdimb\relax
+ \ifblank{#4}
+ {}
+ {\settowidth\@tempdimb{default: #4}%
+ \@tempdima=\dimexpr\@tempdima-\@tempdimb-2em\relax}%
+ \parbox[t]{\@tempdima}{\raggedright #3}%
+ \ifblank{#4}
+ {}
+ {\hfill default:~#4}%
+ \ifblank{#5}
+ {}
+ {\marginpar{\margnotefont #5}}%
+ \par\endgroup
+ \nobreak\vspace{\itemsep}}
+
+\newenvironment*{valuelist}[1][]
+ {\list{}{%
+ \ifblank{#1}
+ {\setlength{\labelwidth}{5em}}
+ {\settowidth{\labelwidth}{\optionlistfont#1}}%
+ \setlength{\labelsep}{1em}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{0pt}%
+ \renewcommand*{\makelabel}[1]{\optionlistfont##1\hss}}}
+ {\endlist}
+
+\newenvironment*{valuelist*}
+ {\list{}{%
+ \setlength{\labelwidth}{0pt}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \renewcommand*{\makelabel}[1]{\hss\optionlistfont##1}%
+ \let\@@item\item
+ \def\item[##1]{%
+ \@itempenalty-\@highpenalty
+ \@@item[##1]%
+ \@itempenalty\@M
+ \@@item\relax}}}
+ {\endlist}
+
+\newenvironment*{argumentlist}[1]
+ {\list{}{%
+ \settowidth{\labelwidth}{\displayverbfont#1}%
+ \setlength{\labelsep}{1em}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{0pt}%
+ \renewcommand*{\makelabel}[1]{\displayverbfont##1\hss}}}
+ {\endlist}
+
+% changelog
+
+\newenvironment*{changelog}
+ {\list{}{%
+ \setlength{\leftmargin}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \renewcommand*{\makelabel}[1]{##1\hss}%
+ \raggedright\changelogfont}%
+ \def\release##1##2{%
+ \@release{##1}{##2}%
+ \list{}{%
+ \setlength{\leftmargin}{1.5em}%
+ \setlength{\itemindent}{-1.5em}%
+ \setlength{\itemsep}{0pt}}%
+ \samepage
+ \begingroup
+ \def\item{\endgroup\item\@itempenalty\z@}}%
+ \def\endrelease{\endlist}%
+ \def\@release##1##2{%
+ \begingroup
+ \changeloglabelfont
+ \item\relax
+ \ltd@pdfbookmark{##1}{##1 (##2)}%
+ ##1\quad##2\par\nobreak
+ \endgroup}
+ \def\see##1{%
+ \leaders\hbox{$\m@th\mkern4.5mu\hbox{.}\mkern4.5mu$}%
+ \hfill\makebox[3em][l]{\ref{##1}}}}
+ {\endlist}
+
+% verbatim
+
+\newlength{\lstenvsep}
+\setlength{\lstenvsep}{\partopsep}
+\addtolength{\lstenvsep}{\topsep}
+
+\lstset{%
+ aboveskip=\lstenvsep,
+ belowskip=\lstenvsep,
+ basicstyle=\displayverbfont\small,
+ commentstyle=\itshape,
+ keywordstyle=\spotcolor,
+ emphstyle=\spotcolor,
+ numbers=none,
+ basewidth=0.5em,
+ fontadjust=true,
+ flexiblecolumns=true,
+ keepspaces=false}
+
+\lstdefinestyle{plain}{%
+ escapechar={\#}}
+\lstdefinestyle{highlight}{%
+ moredelim=[is][\spotcolor]{<<}{>>}}
+\lstdefinestyle{latex}{%
+ alsoletter={\\},
+ moredelim=[is][\spotcolor]{<<}{>>}}
+\lstdefinestyle{ifthen}{%
+ alsoletter={\\},
+ keywords={\\and,\\or,\\not,\\AND,\\OR,\\NOT},
+ otherkeywords={=,<,>,\\(,\\)}}
+
+\lstnewenvironment{ltxcode}[1][]
+ {\lstset{style=latex,#1}}
+ {}
+
+\lstnewenvironment{ltxexample}[1][]
+ {\lstset{%
+ aboveskip=1.5\lstenvsep,
+ xleftmargin=3pt,
+ xrightmargin=3pt,
+ frame=single,
+ backgroundcolor=\color{boxfill},
+ fillcolor=\color{white},
+ rulecolor=\color{boxframe},
+ framesep=2.5pt,
+ framerule=0.5pt,
+ style=latex,#1}}
+ {}
+
+\endinput