From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/ltxdockit/README | 23 ++ macros/latex/contrib/ltxdockit/btxdockit.sty | 87 ++++ macros/latex/contrib/ltxdockit/ltxdockit.cfg | 90 +++++ macros/latex/contrib/ltxdockit/ltxdockit.cls | 142 +++++++ macros/latex/contrib/ltxdockit/ltxdockit.def | 38 ++ macros/latex/contrib/ltxdockit/ltxdockit.sty | 579 +++++++++++++++++++++++++++ 6 files changed, 959 insertions(+) create mode 100644 macros/latex/contrib/ltxdockit/README create mode 100644 macros/latex/contrib/ltxdockit/btxdockit.sty create mode 100644 macros/latex/contrib/ltxdockit/ltxdockit.cfg create mode 100644 macros/latex/contrib/ltxdockit/ltxdockit.cls create mode 100644 macros/latex/contrib/ltxdockit/ltxdockit.def create mode 100644 macros/latex/contrib/ltxdockit/ltxdockit.sty (limited to 'macros/latex/contrib/ltxdockit') 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 -- cgit v1.2.3