summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ltxdockit/ltxdockit.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ltxdockit/ltxdockit.sty')
-rw-r--r--macros/latex/contrib/ltxdockit/ltxdockit.sty579
1 files changed, 579 insertions, 0 deletions
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