summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/fcltxdoc
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/fcltxdoc
Initial commit
Diffstat (limited to 'macros/latex/contrib/fcltxdoc')
-rw-r--r--macros/latex/contrib/fcltxdoc/fcltxdoc.dtx1757
-rw-r--r--macros/latex/contrib/fcltxdoc/fcltxdoc.ins89
-rw-r--r--macros/latex/contrib/fcltxdoc/fcltxdoc.pdfbin0 -> 721679 bytes
3 files changed, 1846 insertions, 0 deletions
diff --git a/macros/latex/contrib/fcltxdoc/fcltxdoc.dtx b/macros/latex/contrib/fcltxdoc/fcltxdoc.dtx
new file mode 100644
index 0000000000..5570bb1846
--- /dev/null
+++ b/macros/latex/contrib/fcltxdoc/fcltxdoc.dtx
@@ -0,0 +1,1757 @@
+% \iffalse meta-comment
+% fcltxdoc : 2011/03/12 v1.0 - Private additional ltxdoc support (FC)]
+%
+% 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
+%
+% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package fcltxdoc: 2011/03/12 v1.0 - Private additional ltxdoc support (FC)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\let\MetaPrefix \relax
+\preamble
+
+This is a generated file.
+Copyright (FC) 2010-2011 - lppl
+
+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
+
+This work consists of the main source file fcltxdoc.dtx
+and the derived files
+ fcltxdoc.sty, fcltxdoc.pdf, fcltxdoc.ins, fcltxdoc.drv.
+
+
+fcltxdoc: 2011/03/12 v1.0 - Private additional ltxdoc support (FC)
+
+This package is not intended for public use.
+It is required to compile some of my documentations files.
+
+------------------------------------------------------------------------------
+\endpreamble
+\let\MetaPrefix \DoubleperCent
+{
+\catcode164=9
+\generate{%
+ \file{fcltxdoc.ins}{\from{fcltxdoc.dtx}{install}}%
+ \file{fcltxdoc.sty}{\from{fcltxdoc.dtx}{package}}%
+}
+}
+\askforoverwritefalse
+\generate{%
+ \file{fcltxdoc.drv}{\from{fcltxdoc.dtx}{driver}}%
+}
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* fcltxdoc.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file `copypaste.dtx' *}
+\Msg{* through pdfLaTeX. *}
+\Msg{* *}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\def\thisinfo {Private additional ltxdoc support}
+\def\thisversion {1.0}
+\PassOptionsToPackage{}{hyperref}
+\PassOptionsToPackage{linegoal,full}{tabu}
+\RequirePackage [latin1]{inputenc}
+\RequirePackage [\detokenize{§§},scrartcl]{fcltxdoc}
+\RequirePackage {calc}
+\csname endofdump\endcsname
+\let\microtypeYN=n
+\RequirePackage {tabu}
+\CheckDates {interfaces=2011/02/12,linegoal=2011/02/25}
+\documentclass[a4paper,oneside]{ltxdoc}
+\AtBeginDocument{\catcode164=14}
+\RequirePackage{ragged2e,lmodern,pifont,upgreek}
+\ifx y\microtypeYN
+ \usepackage[expansion=all,stretch=20,shrink=60]{microtype}\fi % font (microtype)
+\usepackage {logbox}
+\lstset{
+backgroundcolor=\color{GhostWhite!200},
+commentstyle=\ttfamily\color{violet},
+keywordstyle=[3]{\color{black}\bfseries},
+morekeywords=[3]{&,\\},
+keywordstyle=[4]{\color{red}\bfseries},
+%% morekeywords=[4]{red},
+keywordstyle=[5]{\color{blue}\bfseries},
+morekeywords=[5]{blue},
+keywordstyle=[6]{\color{green}\bfseries},
+morekeywords=[6]{green},
+keywordstyle=[7]{\color{yellow}\bfseries},
+morekeywords=[7]{yellow},
+keywordstyle=[8]{\color{FireBrick!80}\bfseries},
+morekeywords=[8]{
+},
+keywordstyle=[9]{\color{pkgcolor}\bfseries},
+morekeywords=[9]{
+},
+keywordstyle=[10]{\color{pkgcolor}\bfseries\slshape},
+morekeywords=[10]{},
+extendedchars={true},
+alsoletter={&},
+}
+\CodelineNumbered
+\RequirePackage {geometry}
+\geometry {top=0pt,includeheadfoot,headheight=.6cm,headsep=.6cm,bottom=.6cm,footskip=.5cm,left=30mm,right=1.5cm}
+\hypersetup{%
+ pdfsubject={Private additional ltxdoc support},
+ pdfauthor={Florent CHERVET},
+ pdfstartview=FitH 0,
+ pdfkeywords={tex, e-tex, latex, package, doc, doc.sty, dtx, documentation},
+ }
+\begin{document}
+ \DocInput{\thisfile.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{-0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \DoNotIndex{\tabu@AtEnd,\tabu@,\tabu@@,\tracingtabu,\LNGL@setlinegoal,\tabu@msgalign@PT}
+% \DoNotIndex{\tabu@l@@d@rs,\@length,\@thick,\@skip,\@box,\@unbox,\@ss,\@therule,\tabu@color,\tabu@stack,\tabu@spaces,}
+% \DoNotIndex{\tabu@fornoopORI,\tabu@m@ybesiunitx,\tabu@multic@lumn,\tabu@multicolumnORI,\tabu@s@ved,\tabu@startpboxORI,\tabucline@sc@n}
+% \DoNotIndex{\o,\P,\T,\O,\0,\@cdr,\@currenvir,\active,\next,\leavevmode,\star,\space,\textasteriskcentered}
+% \DoNotIndex{\escapechar,\endlinechar}
+% \DoNotIndex{\cr,\crcr,\copy,\box,\hbox,\vbox,\vtop,\wd,\ht\,\dp,\hrule,\vrule,\fbox,\fboxsep,\voidb@x,\hb@xt@}
+% \DoNotIndex{\hss,\vss,\hfil,\hfill,\hskip,\hspace,\vskip,\vspace,\kern,\hsize,\vsize,\par,\endgraf}
+% \DoNotIndex{\nobreak,\break,\penalty,\width,\@width,\@height,\@depth}
+% \DoNotIndex{\if,\fi,\ifnum,\ifodd,\ifdim,\ifcsname,\ifdefined,\ifcat,\ifcase,\iftrue,\iffalse,\ifmmode,\ifhmode,\ifvmode}
+% \DoNotIndex{\global,\advance,\multiply,\divide,\dimexpr,\glueexpr}
+% \DoNotIndex{\the,\toks,\number}
+% \DoNotIndex{\string,\protect,\@unexpandable@protect,\@typeset@protect}
+% \DoNotIndex{\begingroup,\endgroup,\bgroup,\egroup,\color@begingroup,\color@egroup}
+% \DoNotIndex{\newcommand,\providecommand,\renewcommand,\renewenvironment,\newrobustcmd,\renewrobustcmd,\providerobustcmd}
+% \DoNotIndex{\@namedef,\@nameuse,\@ifstar,\@ifnextchar,\kernel@ifnextchar}
+% \DoNotIndex{\stepcounter,\usecounter,\count@,\toks@,\dimen@,\dimen@i,\dimen@ii}
+% \DoNotIndex{\if@tempswa,\@tempswatrue,\@tempswafalse,\@tempdima,\@tempdimb,\@tempdimc,\@tempcnta,\@tempcntb,\@tempboxa}
+% \DoNotIndex{\@lowpenalty,\@medpenalty,\maxdimen,\@listctr,\@mpfn}
+% \DoNotIndex{\@empty,\@gobble,\@ifundefined,\g@addto@macro,\verb,}
+% \DoNotIndex{\@for,\@tfor,\@nil,\@nnil,\in@@}
+% \DoNotIndex{\@currentHref,\@currentlabel,\@currentlabelname,\Hy@footnote@currentHref,\Hy@raisedlink,\hyper@@anchor,\ifHy@nesting}
+% \DoNotIndex{\color,\set@color,\@frameb@x,}
+% \DoNotIndex{\Command,\FrameCommand,\MakeFramed,\FrameRestore,\endMakeFramed}
+% \DoNotIndex{\CT@arc@,\CT@drsc@,\CT@end}
+% \DoNotIndex{\col@sep,\NC@list,\NC@do,\NC@,\NC@rewrite@,\@nextchar,\@startpbox,\@endpbox,\@addtopreamble,\@lastchclass,\@chnum,\@chclass}
+% \DoNotIndex{\@preamerr}
+% \DoNotIndex{\adl@array,\@preamerror,\adl@xarraydashrule,\adl@ncol,\adl@box,\adl@vlineR,\adl@vlineL,\adl@leftrulefalse,\adl@dashgapcolor,^^A <arydshln>
+% \adl@colhtdp,\adl@class@start,\adl@arrayrestore\ifadl@inactive,\ifadl@leftrule,\ifadl@zwvrule,\adl@act@@endpbox,\adl@act@endpbox,^^A
+% \tabu@adl@act@endpbox,\tabu@adl@xarraydashrule,\tabu@adl@endtrial}
+% \DoNotIndex{\FV@RightListNumber,\FV@RightListFrame,\FancyVerbFormatLine}
+% \DoNotIndex{\tabu@FV@@@CheckEnd,\tabu@FV@@CheckEnd,\tabu@FV@DefineCheckEnd,\tabu@FV@ListProcessLine}
+% \DoNotIndex{\cellspacetoplimit,\bcolumn}
+% \makeatletter
+%
+% \colorlet {pkgcolor}{RoyalBlue!100!Indigo!170} \colorlet{csrefcolor}{pkgcolor}
+% \colorlet {linkcolor}{RoyalBlue!100!Indigo!170}
+% \AtBeginEnvironment {declcs}{\changefont{size+=1pt}\tabusetup* {everyrow=\rowcolor{WhiteSmoke!60},rule width=\heavyrulewidth,line style= }}
+% \AtBeginEnvironment {declcs*}{\changefont{size+=1pt}\tabusetup* {everyrow=\rowcolor{WhiteSmoke!60},rule width=\heavyrulewidth , line style= }}
+% \AtBeginEnvironment {declenv}{\changefont{size+=1pt}\tabusetup* {everyrow=\rowcolor{WhiteSmoke!60},rule width=\heavyrulewidth, line style= }}
+% \parindent\z@\parskip.4\baselineskip \topsep\parskip \partopsep\z@skip ^^A\leftmargini =.5\dimexpr\nGm@lmargin \relax
+%
+% \colorlet{macrocode}{black}
+% \def\macro@font{\def\Cr@scale{.85}\changefont{fam=pcrs,siz=9pt,ser=m,color=macrocode,spread=1}\let\AltMacroFont\macro@font}
+% \def\meta@font@select {\ttfamily\itshape}
+% \def\MacroFont{\def\Cr@scale{.85}\changefont{fam=pcrs,siz=10pt,ser=b,color=macrocode}}
+%
+% ^^A% \newlist{itempunct}{itemize}{1}
+% ^^A% \setlist[itempunct]{nolistsep,font=\smaller,leftmargin=1.7em,label=\textbullet}
+% \def\ttdefault{lmvtt}
+% \providerobustcmd*\FC[1][\color{copper}]{{#1\usefont{T1}{fts}xn FC}}
+% \newrobustcmd*\thisyear{\begingroup
+% \def\thisyear##1/##2\@nil{\endgroup
+% \oldstylenums{\ifnum##1=2011\else 2011\,\textendash\,\fi ##1}^^A
+% }\expandafter\thisyear\thisdate\@nil
+% }
+% \newsavebox\tempbox
+%
+% \bookmarksetup{open=true,openlevel=2}
+% \pagesetup{%
+% head/rule/width=.0pt,
+% left/offset=2cm,foot/left/offset+=.5cm,right/offset=1cm,
+% head/font=\scriptsize,
+% head/color=RoyalBlue!80!Indigo!40,
+% head/left=\moveleft1cm\vbox to\z@{\vss\setbox0=\null\ht0=\z@\wd0=\paperwidth\dp0=\headheight\rlap{\colorbox{AliceBlue!55}{\box0}}}\vskip-\headheight\thispackage,
+% head/right=\thisinfo,
+% foot/font=\color{gray!80}\scriptsize,
+% foot/left=\vbox to\baselineskip{\vss{{\rotatebox[origin=l]{90}{\thispackage\,[rev.\thisversion]\,\copyright\,\thisyear\,\lower.4ex\hbox{\pkgcolor\NibRight}\,\FC}}}},
+% foot/right=\oldstylenums{\arabic{page}} / \oldstylenums{\pageref{LastPage}}%
+% }
+% \pagesetup[plain]{%
+% norules,font=\scriptsize,
+% foot/right=\oldstylenums{\arabic{page}} / \oldstylenums{\pageref{LastPage}},
+% left/offset=3cm,foot/left/offset+=.5cm,right/offset=1cm,
+% foot/left=\vbox to\baselineskip{\vss{{\rotatebox[origin=l]{90}{\thispackage\,[rev.\thisversion]\,\copyright\,\thisyear\,\lower.4ex\hbox{\pkgcolor\NibRight}\,\FC\quad \xemail{florent.chervet at free.fr}}}}},
+% }
+% \pagestyle{fancy}
+% \bottomtitles=.15\textheight
+% \sectionformat\section {
+% mark=\marksthe* {section}{#1},
+% left=\declmarginwidth,
+% top=\medskipamount,
+% bottom=\smallskipamount,
+% font=\normalfont\LARGE\bfseries,
+% bookmark={bold,color=[rgb]{0.02,0.05,.2}},
+% break=\goodbreak}
+% \sectionformat\subsection{%
+% top=\medskipamount,
+% bottom=.5\smallskipamount,
+% left=.5\declmarginwidth,
+% bookmark={color=[rgb]{0.02,0.05,.1}},
+% font=\normalfont\Large\bfseries,
+% break=\addpenalty{-\@highpenalty}}
+% \sectionformat\subsubsection{
+% bookmark={italic=false,color=lk},
+% font=\normalfont\large\bfseries\color{lk},
+% label=,
+% top=\medskipamount,
+% bottom=.5\smallskipamount,
+% break=\addpenalty{-\@medpenalty}}
+% ^^A% \setitemize{itemsep=\parskip,topsep=0pt,labelsep=1em,parsep=0pt,beginpenalty=10000}
+% \tikzset{every picture/.add style={}{/utils/exec=\changefont{spread=1}}}
+% \newrobustcmd*\IMPLEMENTATION{%
+% ^^A\geometry{top=0pt,includeheadfoot,headheight=.6cm,headsep=.6cm,bottom=.6cm,footskip=.5cm,left=4cm,right=1.5cm}
+% \newgeometry {top=0.8cm,headheight=.5cm,headsep=.3cm,bottom=1.2cm,footskip=.5cm,left=30mm,right=3mm }
+% \pagesetup*{
+% ^^Aleft/offset-=10mm,
+% right/offset-=12mm,
+% foot/left=\vbox to\baselineskip{\vss{{\rotatebox[origin=l]{90}{\thispackage\,[rev.\thisversion]}}}},
+% }%
+% \clearpage
+% \tocsetup{depth-=1}
+% \addtocontents{toc}{\tocsetup{subsection/font+=\string\smaller,subsection/skip=-2pt plus2pt minus2pt}}
+% \sectionformat\section{bookmark/color=black}\sectionformat\subsection{bookmark/color=black}
+% \bookmarksetup{bold*,openlevel=3} \hfuzz=3mm
+% \section(IMPLEMENTATION)[\scshape{Implementation}]{\textlarger{Implementation}}\label{implementation}}
+%
+% \new\def\paragraphcolumns{\texttbf p,\, \texttbf m,\, \texttbf b\, and\, \texttbf X\, columns}
+%
+% \new\def\abovebelow{\@ifstar {\@above@below{}}{\@above@below\smaller\color{black!75}}}
+% \new\def\@above@below #1^#2_#3 {\textmd{\^{ }\textsuperscript{\scriptsize#1\textt{#2}}\,\myunderscore\textsubscript{\scriptsize#1\textt{#3}}}}
+% \new\def\lk{\color{lk}}
+% \makeatother
+%
+% \deffootnote{1em}{0pt}{\rlap{\textsuperscript{\thefootnotemark}}\kern1em}
+%
+% \newtabulinestyle{ a =.7pt on 3pt Crimson off4pt yellow,
+% b =.7pt on 3pt LawnGreen off3pt,
+% c =1.4pt on 3pt DarkSlateBlue off3pt,
+% test =1pt blue,
+% testdash =.7pt on1.2pt off 2pt blue,
+% }
+% \def\dash{\hbox{$\scriptscriptstyle\cdotp$}}
+%
+% \title{\vspace*{-36pt}The \thispackage\unskip\Footnotemark{*}\kern.5em package\vspace*{6pt}}
+% \date{}
+% \author{\small\thisdate~--~\hyperref[\thisversion]{version \thisversion}}
+% \subtitle{\tabubox {X[c]} { \lsstyle Private additional ltxdoc support.\\ \small\FC }}
+%
+% \maketitle
+%
+% \Footnotetext{*}{This documentation is produced with the \textt{DocStrip} utility.\par
+% \begin{tabu} {X[-3]X[-1]X}
+% \smex To get the package, &run: &\textt{etex \thisfile.dtx} \\
+% \smex To get the documentation &run (thrice): &\textt{pdflatex \thisfile.dtx} \\
+% \leavevmode\hphantom\smex To get the index, &run: &\textt{makeindex -s gind.ist \thisfile.idx}
+% \end{tabu}§
+% The \xext{dtx} file is embedded into this pdf file thank to \Xpackage{embedfile} by H. Oberdiek.
+% }
+%
+% \deffootnote{1em}{0pt}{\rlap{\thefootnotemark.}\kern1em}
+%
+% \begin{Abstract}[\leftmargin=2em\rightmargin\leftmargin]\parindent0pt\lastlinefit0\noindent\parskip\medskipamount
+%
+% \thispackage provides some facilities to print documentation (\xext{dtx}) files. Most of them
+% are further development of commands defined in the undocumented package \xpackage{holtxdoc}.
+%
+% The package makes a strong use of \Xpackage{hyperref} and the syntax has been thought to be easy.
+%
+% \thispackage is not intended for public use... {\quad\color{llk}...but it may be used -- or copied -- by the public!}
+%
+% It is required to compile -- with \hologo{pdfTeX} -- some of my documentation files.
+%
+% \end{Abstract}
+%
+% \tocsetup{
+% depth=3,
+% dot=$\scriptscriptstyle\ldotp$,
+% dotsep=1mu,
+% title/top=8pt plus2pt minus4pt,
+% title/bottom=4pt,
+% title=Contents\quad\leaders\vrule height3.1pt depth-3pt\hfill\null,
+% bookmark={text=Contents,bold},
+% after=\leavevmode\hrule height3.1pt depth-3pt,
+% twocolumns=false,
+% section/skip=2pt plus2pt minus2pt,
+% section/leaders=\leaders\hbox{$\mathsurround=0pt\mkern1mu\hbox{$\mathbf\ldotp$}\mkern1mu$}\hfill,
+% section/dotsep,
+% subsection/skip=0pt plus2pt minus 2pt,
+% subsection/numwidth+=5pt,
+% subsubsection/font=\slshape,
+% subsubsection/pagenumbers=off,
+% subsubsection/skip-=1pt,subsubsection/numwidth-=4pt,
+% }
+%
+% {%
+% \hypersetup{linkcolor=black}
+% \tableofcontents
+% }
+%
+% \section(The main macros){The main macros: \cs{cs}, \cs{env}, \cs{M}, \cs{stform}, \env{declcs}, \env{declenv}}
+%
+% \begin{declcs}[ *4 l ]\cs\M*{Command} &\cs\cs*\M*{Command}&\cs\cs\M[font]\M*{Command}&\cs\cs*\M[font]\M*{Command} \\
+% \cs\cs\cs\Command &\cs\cs*\cs\Command &\cs\cs\M[font]\cs\Command &\cs\cs*\M[font]\cs\command \\
+% \multicolumn2c{\cs\cs\cs\Command*} & \multicolumn-c{\cs\cs\M*{Command}*} \\
+% \end{declcs}
+%
+% The control sequence \cs\cs prints a control sequence.
+% Both syntaxes are possible, with star form for the presented command:\par
+% \begin{shorttabu} { >{\columncolor{GhostWhite!200}}X[-4] !{$\longrightarrow$} X[c] } \savetabu{present} \toprule \rowfont[c]\slshape
+% \multicolumn1c{Source file} & Result (typesetting) \\
+% \cs\cs\M*{Command} or \cs\cs\cs\Command &\cs\Command \\
+% \cs\cs\M*{Command}\stform* or \cs\cs\cs\Command\stform* &\cs\Command* \\ \bottomrule
+% \end{shorttabu}
+%
+% If the control sequence has been declared with the \env{declcs}* then a hyperlink is created automatically
+% (\cs\cs\M*{Command} becomes the same as \Verb+\ref{declcs.\string\Command}+ and \cs\cs* the same as
+% \Verb+\ref*{\declcs.\string\Command}+: in other words, \cs*\cs* avoids the hyperlink).
+%
+% With the syntax \cs\cs\cs\Command, the argument (\cs\Command) is collected in a context
+% where \texttbf @ is a letter. This syntax does not work in moving arguments: inside the
+% title of a \cs\section for example, the only syntax \cs*\cs\M*{Command} shall be used.
+%
+% \cs\begin and \cs\end have a natural special behaviour: if followed by\, \{ \, the sequence:§
+% \shorttabubox { X } {
+% \cs\cs\cs{begin}\M*{environment} \\
+% \noindent\llap{is replaced by: }\cs\cs\cs{begin}\cs\M*\M*{\cs\env\M*{environment}} }
+%
+%
+% \cs\cs\M*[\cs\textbf]\cs\Command allows to print the control sequence
+% in boldface: \cs[\textbf]\Command and \cs\cs\M*[\cs\color\M*{red}]\cs\Command
+% prints it red: \cs[\color{red}]\Command.
+% This extension and the star form should be avoided in moving arguments. In the process of \textsc{pdf} string encoding,
+% \cs\cs is redefined to be equal to \cs\string with the possibility to write \cs\cs\cs\Command as well. Useful for
+% \textsc{pdf} comments or bookmarks.
+% To disable hyperlinks inside section titles for example, a hook must be set, for example in the \meta{font} key of
+% a package that provides formatting for sectioning commands (example with \xpackage{titlesec}:§§
+% \shorttabubox {X} {
+% \cs\sectionformat\cs\section\keyvalue{font$+=$\cs\def\cs\csref\M*{\cs\ref*}} \\
+% \noindent\llap{or :\quad }\cs\sectionformat\cs\section\keyvalue{before$+=$\cs\def\cs\csref\M*{\cs\ref*}} }\par
+%
+% or in the table of contents only with the \xpackage{tocloft}*:§§
+% \shorttabubox {X} {
+% \cs\tocsetup \keyvalue{before$+=$\cs\def\cs\csref \M*{\cs\ref*}} \rlap{\quad ). }}
+%
+% More generally, the font in which the control sequence is displayed is stored in the macro \cs\cs@font,
+% by default: \M*{\cs\hypersetup \keyvalue{linkcolor=csrefcolor}\cs\textt}.
+%
+% \begin{declcs}[ *4 l ]\env\M*{environment} & \cs\env*\M*{environment} & \cs\env\M[font]\M*{envir} & \cs\env*\M[font]\M*{envir} \\
+% \cs\env\M*{environment}\stform* & \cs\env*\M*{environment}\stform* &\cs\env\M[font]\M*{envir}\stform* & \cs\env*\M[font]\M*{envir}\stform* \\
+% \end{declcs}
+%
+% The control sequence \cs\env prints the name of an environment (in \cs\ttfamily font). When followed by a star
+% the word ``\textt{environment}'' is inserted after the name:§
+% \begin{shorttabu}{ \preamble{present} } \toprule \rowfont[c]\slshape
+% \multicolumn1c{Source file} & Result (typesetting) \\
+% \cs\env\M*{name} or \cs\env\M*{name}\stform* & \env{name} or \env{name}* \\ \bottomrule
+% \end{shorttabu}
+%
+% If the environment has been declared (with the \env{declenv}*) then a hyperlink is created automatically
+% (\cs\env\M*{name} becomes the same as \Verb+\ref{declcs.\string\name}+, with \cs\env* it becomes the same as
+% \Verb+\ref*{declcs.\string\name}+: in other words, \cs*\env* avoids the hyperlink).
+%
+% Moreover, \cs\env\M*[\cs\itshape]\M*{environment} will print the name in italic: \env[\itshape]{environment}. This extension,
+% as well as the star form should be avoided in moving arguments.
+%
+% \begin{declcs}[ *4l ]\M\M {arg} & \cs\M\M[arg] & \cs\M\M(arg) & \cs\M\M|arg| \\
+% \cs\M*\M*{arg} & \cs\M*\M*[arg] & \cs\M*\M*(arg) & \cs\M*\M*|arg| \\
+% \end{declcs}
+%
+% \cs\M is a general command to typeset arguments: the star form \cs\M* removes the ``angle brackets''
+% around. Braces, square brackets, parenthesis and vertical bar \stform| are supported, whatever there
+% category code are and even if they change alongside the document.
+%
+% \cs\M is not allowed in pdf strings (an explicit \cs\texorpdfstring construction is required).
+%
+% \begin{declcs}[ *5 l ]\stform* & \cs\stform\stform+ & \cs\stform\stform- & \cs\stform\stform| & \etc
+% \end{declcs}
+%
+% \cs\stform is named for ``\emph{starred form}''. The star \cs\stform* is printed with \cs\textasteriskcentered,
+% and for the other symbols \cs\stform expands to \cs\string. The font is \cs\ttfamily\cs\bfseries.
+%
+% \cs\stform is robust (\ie can be used inside moving arguments) and can be used inside pdf strings: in this case
+% it expands to \cs\string.
+%
+% Example: \shorttabubox {X} { a vertical bar \stform| can be printed with \cs\stform\stform|. }
+%
+% \begin{declenv}[ ll ]{declcs}\M*[preamble]\M[font]\M*{Command}& \cs\\ \\
+% \qquad Other \cs\cs or \cs\csanchor ... & \\
+% \cs{end}{declcs}\csanchor\declcsbookmark\cs\Command & \\
+% \multicolumn2c{\normalfont\itshape or} \\[^-1mm _1mm]
+% \cs{begin}{declcs}\M*[preamble]\M[font]\cs\Command & \cs\\ \\
+% \end{declenv}
+%
+% The \env{declcs}* (also defined in \xpackage{holtxdoc}) presents a control sequence.
+% Like for \cs\cs, both syntaxes for the argument are allowed:\par
+% \begin{shorttabu} {*3{X[-1c]}}
+% \cs{begin}\M*{declcs}\M*{Command} & or & \cs{begin}\M*{declcs}\cs\Command.
+% \end{shorttabu}
+%
+% The environment is typeset inside a single-framed \env{tabu} with only one column whose preamble is \M*{ l }.
+% It is possible to change the preamble, add columns \etc with the optional argument. The second optional argument
+% allows to change the font of \cs\Command. Finally if the first optional argument is empty, it defaults to \M*[ l ] so that:\par
+% \begin{shorttabu}{X}
+% \cs{begin}\M*{declenv}\M*[]\M*[\cs\itshape]\cs\Command \\
+% \noindent\llap{is the same as: }\cs{begin}\M*{declenv}\M*[ l ]\M*[\cs\itshape]\cs\Command \\
+% \end{shorttabu}
+%
+% \cs\declcsbookmark can be used at the end of the \env{declcs}* to add a bookmark whose text is \cs\Command,
+% whose level is \keyvalue*{rellevel=1, keeplevel}: see the \Xpackage{bookmark} package.
+%
+% Further formatting of the \env{tabu}* can be obtained easily with the \Xpackage{etoolbox} hook:§
+% \shorttabubox{XcX} {\cs\AtBeginEnvironment & and & \cs\tabusetup* }
+%
+% For example,
+% in this very documentation the setting is:§
+% \tabusetup* {line style=.4pt gray!50 on2pt off1pt, linesep=1mm, frame=tabu}
+% \begin{shorttabu}{ X[l] }
+% \cs\AtBeginEnvironment\M*{declcs} \{ \cs\changefont\M*{size\stform+=$1pt$} \\
+% \rowfont[r]{}
+% \cs\tabusetup* \keyvalue{everyrow=\cs\rowcolor\M*{WhiteSmoke!60},rule width=\cs\heavyrulewidth}
+% \\
+% \end{shorttabu} \par
+%
+% An anchor and a label are set, for further references by the \cs\cs command. The anchor is set by the command
+% \cs\csanchor, which share the same syntax as \cs\cs and can be used alone if required.
+%
+% \begin{declenv}[ ll ]{declcs\stform*}\M*[preamble]\M[font]\M*{Command}& \cs\\ \\
+% \qquad Other \cs\cs or \cs\csanchor ... & \\
+% \cs{end}\M*{\env{declcs\stform*}} & \\
+% \multicolumn-c{\normalfont\itshape or} \\[^-1mm _1mm]
+% \cs{begin}\M*{\env{declcs\stform*}}\M*[preamble]\M[font]\cs\Command & \cs\\ \\
+% \end{declenv}
+%
+% \env{declcs\stform*} is a variant of \env{declcs} which is based on \env{longtabu} instead of \env{tabu}.
+%
+% Used to present a command with a long list of keys for example, for page breaks are allowed.
+%
+% \begin{declenv}{declenv}\M*[preamble]\M*{name of the environment}\cs\M*\M*[options]\cs\M*\M*{parameter} \cs\\ \\
+% \qquad content of the environment (optional)
+% \end{declenv}
+%
+% The \env{declenv}* is designed to present an environment. Just like \env{declcs} an anchor and a label are set,
+% for references by the \cs\env command. The anchor is set by the \cs\envanchor command which share the same syntax
+% as \cs\env and can be used alone if required.
+%
+% \csname @gobble\endcsname {
+% \subsection{Extra spacing}
+%
+% \cs\extra@sf is defined with \cs\mathchardef to be $2999$.
+%
+% \begin{declcs}\ensurespaceextra \\
+% \csanchor\xspaceextra
+% \end{declcs}
+%
+% \cs\ensurespaceextra controls the extra space on the left: if there is a space on the left, then replaces
+% it by a new on with \cs\spacefactor$=$ \cs\extra@sf.
+%
+% \cs\xspaceextra does \cs\xspace (if not in verbatim mode) with \cs\spacefactor$=$\cs\extra@sf.
+% }
+%
+% \section{Some other macros and extensions}
+%
+% \begin{declcs}[ *2l ]\xext\M{file extension} &\cs\xext\M{file extension}\stform* \\
+% \csanchor\xpackage\M*{package name} &\cs\xpackage\M*{package name}\stform* \\
+% \csanchor\xclass\M*{class name} &\cs\xclass\M*{class name}\stform* \\
+% \csanchor\xfile\M*{file name} &\cs\xfile\M*{file name}\stform* \\
+% \csanchor\xmodule\M*{module name} &\cs\xmodule\M*{module name}\stform* \\
+% \end{declcs}
+%
+% \cs\xext is defined by \xpackage{holtxdoc} to print -- in \cs\ttfamily -- a file extension preceded by a dot:§
+% \shorttabubox { *2 X[c] }{ \cs\xext\M*{aux} & \xext{aux} }
+%
+% \thispackage redefines the command with the same \stform* extension the \cs\env command provides:§
+% \tabusetup* {frame=booktabs}
+% \begin{shorttabu} { X[-4 _GhostWhite!200] !{$\longrightarrow$} X[c] } \savetabu{present} \rowfont[c]\slshape
+% \multicolumn1c{Source file} &Result (typesetting) \\
+% \cs\xext\M*{aux} &\xext{aux} \\
+% \cs\xext\M*{aux}\stform* &\xext{aux}* \\
+% \cs\xpackage\M*{package}\stform* &\xpackage{package}* \\
+% \cs\xclass\M*{class}\stform* &\xclass{class}* \\
+% \cs\xfile\M*{filename}\stform* &\xfile{filename}* \\
+% \cs\xmodule\M*{module}\stform* &\xmodule{module}* \\
+% \end{shorttabu}
+%
+% \section{The package options}
+% \label{The package options.sec}
+%
+% \subsection{The \texorpdfstring{\M*[nopackages]}{[nopackages]} option}
+% \label{The nopackages option.subsec}
+%
+% Every command is defined with \cs\providecommand, \cs\providerobustcmd or \cs\provide (from \Xpackage{ltxnew}).
+%
+% The package option \M*[nopackages] avoids the loading of the packages. Nevertheless, the commands provided
+% by \thispackage are provided and some of them will certainly lead to an \textt{undefined control sequence}
+% if a package is missing: this option is only usefull if one loads (some of) the required packages
+% at a later or previous time, or if only a ``chosen set'' of the commands provided here are used.
+%
+% {\makeatletter
+% \newcommand*\packageInfo [1][]{\packageInfobis}
+% \def\packageInfobis #1#{\getpackageinfo{#1}}
+% \def\packages {etex,ltxnew,etexcmds,ltxcmds,etoolbox}
+% \tabusetup* {colsep=.5pt,frame=^{\tabucline[\heavyrulewidth]-} _{\tabucline[\heavyrulewidth]-},everyrow=\tabucline[tabudotted]-}
+% \begin{longtabu}{ >{\sffamily\bfseries} X[-1] >\ttfamily X }
+% \rowbackground{fill=AliceBlue!500,cell fading=o}\rowfont\bfseries
+% \multicolumn -{>\centering p*}{Packages loaded by \thispackage with the \M*[nopackages] option}
+% \\[=1mm] \everyrow*{\hline}\endfirsthead
+% \repeatcell \packages {rows=2,transpose,
+% text/row1=\c,
+% text/row2=\expandafter \packageInfo \c{},
+% }
+% \end{longtabu}
+%
+% \appto\packages{,[T1]fontenc,graphicx,grffile,{[svgnames,table]xcolor},needspace,moresize,relsize,manfnt,[official]eurosym,fancyhdr,lastpage,marginnote,framed,%
+% newgeometry,[explicit]titlesec,tocloft,[hyperfoonotes]hyperref,bookmark,hypbmsec,enumitem-zref,fancyvrb,listings,%
+% nccfoots,nccstretch,linegoal,delarray,multirow,makecell,booktabs,embedfile,interfaces,pgf,tikz}
+%
+% \tabusetup* {tracing level=0, everyrow=\tabucline[tabudotted]-, frame=tabubooktabs }
+%
+% \begin{longtabu}{>{\sffamily\bfseries} X[-1]>\ttfamily X} \rowbackground{fill=AliceBlue!500,cell fading=o}
+% \rowfont[c]\bfseries
+% \multicolumn -{ p*}{Packages loaded by \thispackage without the \M*[nopackages] option}
+% \\[=1mm] \hline \endfirsthead
+% \repeatcell \packages
+% {rows=2,transpose,
+% text/row1=\c,
+% text/row2=\expandafter \packageInfo \c{},
+% }
+% \end{longtabu}
+% }
+%
+% \subsection(The ... package option){The \M*[\protect\S\protect\S] package option}
+% ^^A\label{The \detokenize{§§} package option.subsec}
+%
+% The \M*[\S\S] option makes \S an active character whose meaning is \cs\par\cs\nobreak.
+%
+% \S\S\, is defined as \cs\par\cs\nobreak\cs\vskip$-$\cs\parskip.
+%
+% {
+% \setbox0=\vbox{
+% \section{Colors provided and general setup}
+%
+% \thispackage provides (with \cs\providecolorlet -- an addition to the \Xpackage{xcolor} package) the following \emph{named} colors:}
+%
+% \logbox0
+%
+%
+% \newtabucellcommand\MyColor {\cellcolor{#1 ^FloralWhite }#1}
+% \tabusetup* {frame=tabubooktabs}
+% \begin{tabu} { >{\ttfamily\MyColor} X[-1 m ] X }
+% pkgcolor &color for the package name printed with \cs\thispackage \\
+% csrefcolor &color for the references to the commands defined by the package (\cs\cs) \\
+% macrocode &color for the code in the \emph{implementation} part. \\
+% linkcolor &\cs\hypersetup \keyvalue{linkcolor=linkcolor}: \cs\colorlet\M*{linkcolor}\M*{green} has generally the same effect as \cs\hypersetup \keyvalue{linkcolor=green} \\
+% urlcolor &\emph{Idem}: \cs\hypersetup\keyvalue{urlcolor=urlcolor} \\
+% filecolor &\emph{Idem}: \cs\hypersetup\keyvalue{filecolor=filecolor} \\
+% menucolor &\emph{Idem}: \cs\hypersetup\keyvalue{menucolor=menucolor} \\
+% runcolor &\emph{Idem}: \cs\hypersetup\keyvalue{runcolor=runcolor} \\
+% \end{tabu}
+%
+% Those colors shall be chosen after \cs\begin{document}: \cs\colorlet\M*{pkgcolor}\M*{blue} for example.
+%
+%
+% \clearpage
+% }
+%
+% \IMPLEMENTATION
+%
+% \subsection{Identification, Options and Requirements}
+% \label{Identification and Requirements}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{fcltxdoc}
+ [2011/03/12 v1.0 - Private additional ltxdoc support (FC)]
+\RequirePackage {etex}\def\etex@loggingall {\tracingall \tracingonline\z@ }
+\reserveinserts 3
+\RequirePackage {filehook}
+\RequirePackage {ltxnew,etexcmds,ltxcmds,etoolbox} % general tools (commands)
+% \end{macrocode}
+%
+% Minimal catcode ascertaining for loading \thispackage* in good conditions:
+%
+% \begin{macrocode}
+\AtEndOfPackage{\fcltx@AtEnd \let\fcltx@AtEnd \@undefined}
+\def\fcltx@AtEnd {}
+\def\TMP@EnsureCode#1={%
+ \edef\fcltx@AtEnd{\fcltx@AtEnd
+ \catcode#1 \the\catcode#1}%
+ \catcode#1=%
+}% \TMP@EnsureCode
+\TMP@EnsureCode 33 = 12 % !
+\TMP@EnsureCode 58 = 12 % :
+\TMP@EnsureCode124 = 12 % | = text bar
+\TMP@EnsureCode 36 = 3 % $ = math shift
+\TMP@EnsureCode 38 = 4 % & = tab alignmment character
+\TMP@EnsureCode 32 = 10 % space
+\TMP@EnsureCode 94 = 7 % ^
+\TMP@EnsureCode 95 = 8 % _
+% \end{macrocode}
+%
+% \subsubsection{Options}
+%
+% \begin{macrocode}
+\DeclareOption {amsmath}{\AtEndOfPackage{%
+ \RequirePackage{amsmath,amsfonts,amsopn,amssymb}
+ \newrobustcmd*\dpartial [2]{\displaystyle\genfrac{}{}{}{}
+ {\partial\mkern.2\thinmuskip#1}
+ {\partial\mkern.2\thinmuskip#2}}
+ \newrobustcmd*\dtotal [2]{\displaystyle\genfrac{}{}{}{}
+ {\text d\mkern.2\thinmuskip#1}
+ {\text d\mkern.2\thinmuskip#2}}}
+}% amsmath (package option)
+\def\fcltx@articleclass {article}
+\DeclareOption {scrartcl}{\def\fcltx@articleclass{scrartcl}\let\loadclass \LoadClass
+ \def\LoadClass #1{\let\tablename \relax \let\c@table \relax \let\fnum@table \relax
+ \let\abovecaptionskip \relax \let\belowcaptionskip \relax \let\@makecaption \relax
+ \loadclass[abstracton]{scrartcl}\let\scrmaketitle =\maketitle
+ \AtEndOfClass{\let\maketitle =\scrmaketitle}}}
+\DeclareOption {nopackages}{%
+ \let\fcltx@nopackages \relax}
+\DeclareOption {activepar}{\AtBeginDocument{\fcltx@activepar}}
+\DeclareOption {\detokenize{§§}}{\ExecuteOptions{activepar}}
+{\catcode`\§=\active
+\gdef\fcltx@activepar{\catcode`\§=\active
+ \def §{\@ifnextchar §{\par\nobreak \vskip-\parskip \ignorespaces }
+ {\par\nobreak \ignorespaces }}%
+}% \fcltx@activepar
+}% \catcode
+\DeclareOption {hyperlistings}{%
+ \AtBeginEnvironment {lstlisting}{\let\lsthk@OutputBox \lsthk@OutputBox@fcltxH@@k }%
+ \AtEndOfPackageFile*{listings}{\preto\lst@InitFinalize {\let\lsthk@OutputBox \lsthk@OutputBox@fcltxH@@k }}%
+}% hyperlistings
+\ProcessOptions*
+% \end{macrocode}
+%
+% \subsubsection{Packages loading}
+%
+% \begin{macrocode}
+\PassOptionsToPackage {svgnames}{xcolor}
+\RequirePackage {xspace}
+%% Opacity problem with current pgf version...
+\ifdefined\pdfpageattr \pdfpageattr{/Group <</S /Transparency /I true /CS /DeviceRGB>>}\fi
+\csname \ifdefined\fcltx@nopackages iffalse\else
+ iftrue\fi \endcsname
+\PassOptionsToPackage {T1}{fontenc}
+\PassOptionsToPackage {normalem}{ulem}
+\PassOptionsToPackage {pdfencoding=auto,hyperfootnotes}{hyperref}
+\PassOptionsToPackage {official}{eurosym}
+\PassOptionsToPackage {explicit}{titlesec}
+\RequirePackage {fontenc}
+\RequirePackage {hologo} % before graphicx (bug)
+\RequirePackage {graphicx,grffile,needspace} % general tools
+\RequirePackage {Escan}
+\RequirePackage {moresize,manfnt,bbding,eurosym} % fonts
+\RequirePackage {fancyhdr,lastpage,marginnote,framed} % empagement
+\RequirePackage {ulem}
+\RequirePackage {nccfoots,nccstretch} % \Footnote / \stretchwith
+\RequirePackage {linegoal} % \linegoal
+\RequirePackage {array,delarray,makecell,booktabs} % tabulars
+\RequirePackage {embedfile} % .dtx enclosed in .pdf
+\RequirePackage {interfaces} % interfaces
+\usetikz {basic,chains,positioning,patterns,fadings} % TikZ
+\AtEndOfClassFile* \fcltx@articleclass{%
+ \RequirePackage {relsize,titlesec,tocloft} % other general tools
+ \RequirePackage [numbered]{hypdoc}[2010/03/26]
+ \RequirePackage {hyperref}[2010/03/30]
+ \RequirePackage {pdftexcmds}[2010/04/01]
+ \RequirePackage {enumitem}
+ \setitemize{parsep=\parskip,topsep=0pt,partopsep=0pt,itemsep=0pt}
+ \RequirePackage {bookmark,hypbmsec} % bookmarks and hyper-links
+%% \RequirePackage {enumitem-zref}
+ \RequirePackage {fancyvrb} % verbatim and listings
+ \catcode`\&=7
+ \RequirePackage {listings}
+ \catcode`\&=4
+ \AtBeginDocument{%
+%% \let\c@lstlisting \relax
+%% \newlistof {lstlisting}{lol}{List of listings}
+ \listofsetup {lol}{before=\def\csref {\ref*}}}%
+}% \AfterClass
+\lastlinefit100\widowpenalty=5000\clubpenalty=8000
+\else % <[nopackages] option>
+ \RequirePackage {xcolor}
+\fi % <[nopackages] option>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\AtEndOfPackageFile* {interfaces-tocloft}{
+ \tocsetup {before+=\def\csref {\ref*}}%
+}% \AfterPackage interfaces-tocloft
+\AtEndOfPackageFile* {hyperref}{\pdfstringdefDisableCommands{%
+ \def\\{\textCR\ignorespaces}% <for pdfcomment to insert ..
+ \def\par{\textCR\ignorespaces}}% .. a line break inside a comment>
+}% \AfterPackage
+\AtEndOfPackageFile*{fancyvrb}{%
+\fvset {gobble=1,framesep=6pt,fontfamily=cmtt,listparameters={\topsep=0pt}}% verbatim basic settings
+}
+\AtEndOfPackageFile*{listings}{%
+\lstset{gobble=1, % listings basic settings
+ language=[LaTeX]TeX,
+ basicstyle=\usefont{T1}{cmtt}mn\footnotesize,
+ breaklines=true,
+ alsoletter={*},
+ commentstyle=\ttfamily\color{violet},
+ moretexcs=[1]{tikz},
+ keywordstyle=[2]{\color{ForestGreen}\slshape},
+ keywords=[2]{tabular,caption,tabu*,shorttabu*,shorttabu,table,tabu,tabularx,longtable,%
+ Verbatim,lstlisting,Escan-left,Escan-right,Escan-bottom,Escan-top,%
+ align*,align,equation*,equation,split,multline*,multline},
+%% texcsstyle=[3]{\color{ForestGreen}\slshape},
+%% moretexcs=[3]{tabubox*,tabubox,shorttabubox*,shorttabubox},
+ texcsstyle=[55]{\color{DarkBlue}},
+ texcs=[55]{hline,hhline,firsthline,lasthline,arrayrulewidth,arrayrulecolor},
+ texcsstyle=[90]\color{Fuchsia},
+ moretexcs=[90]{section*,section,subsection*,
+ subsection,subsubsection*,
+ subsubsection,paragraph*,paragraph,
+ subparagraph*,subparagraph},
+ deletetexcs=[1]{section,subsection,subsubsection,paragraph,subparagraph},
+ keywordstyle=[100]\color{red},
+ texcsstyle=[100]\color{red},
+ texcsstyle=[77]{\color{pkgcolor}},
+ texcs=[77]{},
+}
+\define@key{lst}{red}[]{\kvsetkeys{lst}{morekeywords={[100]{#1}}}}
+\define@key{lst}{csred}[]{\kvsetkeys{lst}{moretexcs={[100]{#1}}}}
+\define@key{lst}{font}[]{\kvsetkeys{lst}{basicstyle={#1}}}
+\define@key{lst}{font+}[]{\appto\lst@basicstyle{#1}}
+\define@key{lst}{color}[]{\@expandtwoargs\kvsetkeys {lst}%
+ {backgroundcolor=\ifcat$\detokenize{#1}$\else\noexpand\color{#1}\fi}}
+\gdef\lst@DefineKeywords#1#2#3{% overwrites to the last definition
+ \lst@ifsensitive
+ \def\lst@next{\lst@for#2}%
+ \else
+ \def\lst@next{\uppercase\expandafter{\expandafter\lst@for#2}}%
+ \fi
+ \fcltx@iflstclass {#2}>{90}
+ {\lst@next\do {\global\expandafter\let\csname\@lst#1@##1\endcsname#3}}% <no test>
+ {\lst@next\do {\expandafter \ifx \csname \@lst #1@##1\endcsname\relax \global\expandafter\let\csname \@lst #1@##1\endcsname #3\fi }}%
+}% After package listings
+\def\fcltx@iflstclass #1\@nil {\def\fcltx@iflstclass ##1##2##3{%
+ \expandafter\fcltx@ifclass@filter \string##1\@nil
+ \ifnum \@tempcnta ##2##3 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }%
+}\expandafter\fcltx@iflstclass \string\lst@keywords \@nil
+\def\fcltx@ifclass@filter #1#2{\def\fcltx@ifclass@filter ##1\@nil
+ {\fcltx@ifcl@ss@filter ##1#1{}##1#2\@nil }%
+}\@expandtwoargs \fcltx@ifclass@filter {\string\lst@keywords }{\string\lst@texcs }
+\def\fcltx@ifcl@ss@filter #1#2{\def\fcltx@ifcl@ss@filter ##1#1##2#2##3\@nil
+ {\@defaultunits \@tempcnta \number0##2==\@nnil
+ \ifnum \@tempcnta =\z@ \@defaultunits \@tempcnta \number 0##3==\@nnil \fi }%
+}\@expandtwoargs \fcltx@ifcl@ss@filter {\string\lst@keywords }{\string\lst@texcs }
+\def\lstset {\begingroup \lst@setcatcodes \expandafter\endgroup \lstset@ }
+\def\lstset@ #1{\kvsetkeys {lst}{#1}}
+}% \AfterPackage listings
+% \end{macrocode}
+%
+% \subsection{Generic macros}
+%
+% \begin{macro}{\pdfstringDisableCommands}
+%
+% Does it At BeginDocument !
+%
+% \begin{macrocode}
+\providecommand\pdfstringDisableCommands [1]{\AtBeginDocument{%
+ \ifdefined \pdfstringdefDisableCommands
+ \let\pdfstringDisableCommands =\pdfstringdefDisableCommands
+ \pdfstringdefDisableCommands{#1}\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection(TabU logo)[TabU logo]{The \TabU logo}
+%
+% \begin{macro}{\TabU}
+%
+%
+% \begin{macrocode}
+\providerobustcmd*\TabU [1][\TabUcolor]{\leavevmode
+ {#1{{\fontsize{1.618\dimexpr\f@size\p@}{1.618\dimexpr\f@size\p@}\usefont U{eur}mn\char"1C}%
+ $_\aleph \mkern.1666mu b\mskip3mu\mathsurround\z@$\lower.261ex\hbox{\rotatebox[origin=c]{-90}{\usefont{T1}{lmss}mn U}}}}%
+ \ifmmode\else\ifhmode \spacefactor3000 \xspaceverb \fi\fi }
+\def\TabUcolor {\color{copper}}
+\pdfstringDisableCommands{\def\TabU {TabU }}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Control}
+%
+% \begin{macro}{\CheckDates}
+%
+% \cs\CheckDates\M*{package=date, package=date,...}
+%
+% \begin{macrocode}
+{\endlinechar`\^^J\obeyspaces%
+\gdef\ErrorUpdate#1=#2,{\@ifpackagelater{#1}{#2}\relax%
+ {\let\CheckDates=\errmessage%
+ \toks@=\expandafter{\the\toks@
+ \thisfile-documentation: updates required !
+ package #1 must be later than #2
+ to compile this documentation.}}%
+}% \ErrorUpdate
+\gdef\CheckDates#1{\AtBeginDocument{{%
+ \toks@{}\let\CheckDates=\relax%
+ \@for\x:=\thisfile=\thisdate,#1\do{\expandafter\ErrorUpdate\x,}%
+ \CheckDates\expandafter{\the\toks@}}}%
+}% \CheckDates
+}% \catcode
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\showfile}
+% \begin{macrocode}
+\providerobustcmd*\showfile{\makeatletter \show\@currname }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\currentenvir}
+% \begin{macro}{\ifcurrenvir}
+% \begin{macrocode}
+\providecommand*\currentenvir {\@currenvir}
+\providecommand*\ifcurrenvir [1]{\expandafter
+ \ifx \csname #1\expandafter\endcsname \csname \@currenvir\endcsname
+ \expandafter\@firstoftwo
+ \else \expandafter\@secondoftwo
+ \fi
+}% \ifcurrenvir
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifrefundefined}
+%
+% \cs\ifincsname (\hologo{pdfTeX}) is buggy: inside \cs\ifcsname ... \cs\endcsname
+% \cs\ifincsname evaluates to \textt{false} !
+%
+% \begin{macrocode}
+\providerobustcmd*\ifrefundefined [1]{\begingroup \csname @safe@activestrue \endcsname %<babel>
+ \expandafter\endgroup \csname @\ifcsname r@#1\endcsname second\else
+ first\fi oftwo\endcsname
+}% \ifrefundefined
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Fonts and spacing}
+%
+% \begin{macro}{\texorpdf}
+%
+% \cs\texorpdf\cs\textt\M*{some text} $\Longleftrightarrow$ \cs\texorpdfstring\M*{\cs\textt\M*{some text}}\M*{some text}
+%
+% \begin{macro}{\xspaceverb}
+%
+% Disable \cs\xspace inside \env{Verbatim}*.
+%
+% \begin{macrocode}
+\providecommand\texorpdf[2] {\texorpdfstring{{#1{#2}}}{#2}}
+\providerobustcmd*\xspaceverb {\ifnum \catcode 32=\active \else \expandafter\xspace \fi}
+\provide\let\fcltx@NormalSharpChar \#
+\renewrobustcmd \#{%
+ \ifnum \catcode 32=\active \expandafter\fcltx@NormalSharpChar
+ \else \expandafter\fcltx@SharpChar \fi
+}% \#
+\provide\def\fcltx@SharpChar #1{{\usefont{T1}{pcr}{bx}{n}\char`\##1}}
+\providecommand\textt {\texttt}
+\providecommand\textsfbf [1]{\textsf{\textbf{#1}}} \provide\let\textbfsf =\textsfbf
+\providecommand\textttbf [1]{\texttt{\textbf{#1}}} \provide\let\textbftt =\textttbf
+ \provide\let\texttbf =\textttbf
+\providecommand\textitbf [1]{\textit{\textbf{#1}}} \provide\let\textbfit =\textitbf
+\providecommand\textslbf [1]{\textsl{\textbf{#1}}} \provide\let\textbfsl =\textslbf
+\providecommand\textscbf [1]{\textsc{\textbf{#1}}} \provide\let\textbfsc =\textscbf
+\providecommand\textscit [1]{\textsc{\textit{#1}}} \provide\let\textitsc =\textscit
+\providecommand\textscsl [1]{\textsc{\textsl{#1}}} \provide\let\textslsc =\textscsl
+\providerobustcmd*\abs[1]{\left\lvert#1\right\rvert}
+\provide\protected\def\Underbrace #1_#2{$\underbrace{\vtop to2ex{}\hbox{#1}}_{\footnotesize\hbox{#2}}$}
+\provide\let\cellstrut=\bottopstrut
+\AtBeginDocument {%
+\providerobustcmd*\ie {\ifmmode \mbox{\emph{ie.}}\else \emph{ie.}\spacefactor\@cclv \xspaceverb \fi}
+\providerobustcmd*\eg {\ifmmode \mbox{\emph{e.g.}}\else \emph{e.g.}\spacefactor\@cclv \xspaceverb \fi }
+\providerobustcmd*\etc {\ifmmode \mbox{\emph{etc.}}\else
+ \ifhmode \ifdim\lastskip>\z@ \unskip\spacefactor\@cclv\space \fi\fi
+ \emph{etc.}\fi \@ifnextchar .{\expandafter\xspaceverb\@gobble}\xspaceverb
+}% \etc
+}% \AtBeginDocument
+\pdfstringDisableCommands {\let\textt \@empty
+ \let\textbftt \@firstofone \let\textttbf \@firstofone \let\texttbf \@firstofone
+ \let\textsfbf \@firstofone \let\textbfsf \@firstofone \let\textitbf \@firstofone
+ \let\textbfit \@firstofone \let\textslbf \@firstofone \let\textbfsl \@firstofone
+ \let\textscbf \@firstofone \let\textbfsc \@firstofone \let\textscit \@firstofone
+ \let\textitsc \@firstofone \let\textscsl \@firstofone \let\textslsc \@firstofone
+ \def\ie {ie.}\def\etc {etc.}\let\textcolor \@secondoftwo
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\MathVersion}
+%
+% A version of \LaTeX{} \cs\mathversion that also works in mathematical mode !
+%
+% \begin{macrocode}
+\providerobustcmd*\MathVersion [1]{\ifcsundef{mv@#1}
+ {\@latex@error{Math version `#1' is not defined}\@eha}
+ {\edef\math@version{#1}\gdef\glb@currsize{}\aftergroup\glb@settings
+ \ifmmode \check@mathfonts \fi}%
+}% \MathVersion
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\xspaceverb}
+%
+% When used inside a \env{Verbatim}* with special command chars (typically \,\texttbf(\, and \,\texttbf)\, used as group delimiters)
+% \cs\xspace breaks because of \cs\scantokens.
+%
+% \cs\xspaceverb checks whether the catcode of the space is active, and does nothing in this case.
+%
+% \cs\, is allowed inside pdf strings.
+%
+% \begin{macrocode}
+%%\provide\mathchardef\extra@sf =2999 % "extra" spacefactor
+%%\providecommand*\extrasf{\ifmmode\else\ifhmode \unskip \spacefactor\extra@sf \space \fi\fi }
+\providecommand*\xspaceverb {\ifnum\catcode`\ =\active\else \expandafter\xspace \fi}
+%%\providerobustcmd*\xspaceextra {%
+%% \ifhmode\ifmmode\else \ifdim \fontdimen4\font>\z@ \spacefactor\extra@sf \fi \xspaceverb \fi\fi }
+\xspacesetup {exceptions+=\xspaceverb}
+\providerobustcmd*\ensurespaceextra {%
+ \ifhmode\ifmmode\else \ifdim\fontdimen4\font>\z@
+ \ifdim \lastskip>100sp \ifdim \lastskip>\fontdimen4\font \else % \ifnum \spacefactor<\extra@sf
+ \unskip
+ \hskip \glueexpr \fontdimen4\font+.1666em\relax
+ \fi\fi\fi\fi\fi }
+\pdfstringDisableCommands{\let\, \@empty}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\cs\cs, hyper links and \textt{key=value}}
+%
+% \subsubsection{\cs{cs}, \cs{csanchor} and \cs{env}}
+%
+% \begin{macro}{\cs}
+% \begin{macro}{\csanchor}
+%
+% \cs\cs prints a control sequence: both syntaxes: \cs\M*{name} and \cs\name are allowed.
+%
+% \cs\csanchor puts an anchor (generally made inside the \env{declcs}*) and a label.
+%
+% If the label exists, then \cs\cs puts a hyperlink to this label: in this case, \cs\cs is just \cs\ref\M*{declcs.name}.
+%
+% Spacing around the control sequences are adjusted by \cs\spacefactor$=2999$ (for a fixed width font,
+% the space is not stretchable: \cs\spacefactor$=2999$ will double the space, and this is too much).
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifdefined\cs \expandafter\renewrobustcmd
+ \else \expandafter\providerobustcmd \fi
+ *\cs {\ensurespaceextra \leavevmode \begin@grabcs \cs@ }
+ \xspacesetup {exceptions+=\cs}
+ \pdfstringDisableCommands {\let\cs \cs@pdf }
+ \providerobustcmd\meta [1]{\ensuremath\langle \hbox{#1}\/\ensuremath\rangle }
+}% \AtBeginDocument
+\providerobustcmd*\csbf {\cs [\textbf ]}
+\providerobustcmd\cs@ [2][]{\cs@getrefname {#2}\@tempa
+ \edef\@tempc {\detokenize \expandafter{\@tempa }}%
+ \edef\@tempb {\string\begin}\ifx \@tempc\@tempb \aftergroup\@ne \else
+ \edef\@tempb {\string\end}\ifx \@tempc\@tempb \aftergroup\@ne \else
+ \aftergroup\z@ \fi\fi
+ \def\x ##1\@nnil {\cs@hyper {##1} {\cs@font {#1{\string ##1}}}
+ {\cs@font {#1{\csref {declcs.\string ##1}}}}%
+ }\expandafter \x \@tempa \@nnil \egroup
+}% \cs@
+\def\cs@string {\string\\\string }% for \env => \cs@string becomes only \string (no addition of \ )
+\providerobustcmd*\csref {\ref}
+\long\def\cs@getrefname #1#2{\begingroup \escapechar\m@ne \csname @safe@activestrue\endcsname
+ \let\stform \string
+ \let\lst@UM \string
+ \let\meta \@firstofone
+ \protected@edef #2{\endgroup \def\noexpand #2{\cs@string #1}}#2%
+}% \cs@getrefname
+\def\begin@grabcs #1{\hbox\bgroup\bgroup \aftergroup\cs@next
+ \makeatletter \@ifstar {\def\csref {\ref*}#1}{#1}}
+\provide\def\cs@next #1{\egroup \ifnum #1=\z@ \expandafter\cs@nextnormal \else \expandafter\cs@nextbeginend \fi }
+\provide\def\cs@nextnormal {\@ifstar {\stform*\xspaceverb}\xspaceverb }
+\provide\def\cs@nextbeginend{\@ifnextchar\bgroup \cs@nextenv \xspaceverb }
+\provide\def\cs@nextenv #1{\M*{\env{#1}}}
+\provide\def\cs@font {\ifdefined\hypersetup \hypersetup {linkcolor=csrefcolor}\fi\textt }
+\providerobustcmd*\cs@hyper [1]{\ifrefundefined {declcs.#1}}
+\providerobustcmd*\csanchor [2][]{\begingroup \def\cs@next {\egroup \endgroup \bgroup \cs@next}%
+ \let\cs@hyper \cs@anchor \cs[{#1}]{#2}}
+\providerobustcmd*\cs@anchor [3] {%
+ \ifodd \expandafter\ifx \csname \@gobble #1\endcsname\begin 0 \fi
+ \expandafter\ifx \csname \@gobble #1\endcsname\end 0 \fi
+ 1 \def\@currentHref {declcs.\string\string\space #1}\def\@currentlabel {\protecting{#2}}%
+ \settoheight \dimen@ {#2}\advance\dimen@ \dimexpr \dp\strutbox+\arrayrulewidth \relax
+ \raisedhyperdef [\dimen@ ]{declcs}{#1}{\ifrefundefined{declcs.#1}{#2}{#3}%
+ \label{declcs.\string\string\space #1}}%
+ \ifdefined\SpecialUsageIndex \expandafter\SpecialUsageIndex \csname \@gobble #1\endcsname \fi
+ \else #2\fi
+}% \cs@anchor
+\providecommand*\cs@pdf[1]{\string\\\if\@backslashchar\string#1 \else\string#1\fi}% <note the spaces!>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\env}
+%
+% \cs\env displays an environment in \cs\ttfamily font. \cs\env\stform* adds the word ``\textt{environment}'' after.
+%
+% \begin{macrocode}
+\providerobustcmd*\env {\leavevmode \begingroup \let\cs@string \string
+ \def\cs@next ##1{\egroup \endgroup \@ifstar{ environment\xspaceverb}\xspaceverb}\begin@grabcs \cs@ }
+\providerobustcmd*\envanchor {\leavevmode \begingroup \let\cs@hyper \cs@anchor \let\cs@string \string
+ \def\cs@next ##1{\egroup \endgroup }\begin@grabcs \cs@ }
+\pdfstringDisableCommands{\let\env \@firstofone }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\env {lstlisting} hyperlinks}
+%
+% This correspond to the \M*[hyperlistings] option of \thispackage.
+%
+% \begin{macro}{\lsthk@OutputBox@fcltxH@@k }
+%
+% The \xpackage{listings}* allow to define an arbitrary hook before the building of the box to be ouput:
+% \cs\@tempboxa contains the word to print.
+%
+% \begin{macrocode}
+\def\lsthk@OutputBox@fcltxH@@k {\begingroup \let\lst@UM \@empty
+ \edef \@tempc {\the\lst@token }\edef \@tempc {\@tempc }%
+ \expandafter \cs@getrefname \expandafter {\@tempc }\@tempa
+ \ifrefundefined {declcs.\@tempa}
+ {\let\cs@string =\string % <environments>
+ \expandafter \cs@getrefname \expandafter {\@tempc }\@tempa
+ \ifrefundefined {declcs.\@tempa }{\endgroup }\fcltx@sethyperlistings
+ }
+ \fcltx@sethyperlistings
+}% \lsthk@OutputBox@fcltxH@@k
+\def\fcltx@sethyperlistings {\global\let \fcltx@hyperlistinganchor =\@tempa
+ \endgroup \aftergroup \fcltx@dohyperlistings }% after \hbox
+\def\fcltx@dohyperlistings {\def\lst@alloverstyle ##1{\fcltx@hyperlistings ##1}}
+\def\fcltx@hyperlistings {\setbox\@tempboxa
+ \hbox \bgroup
+ \rlap {\hypersetup {linkcolor=.}\relax \fboxrule \z@
+ \hyperref {}{declcs}\fcltx@hyperlistinganchor
+ {\boxframe {\wd\@tempboxa}{\ht\@tempboxa}{\dp\@tempboxa}}}%
+ \unhbox\@tempboxa
+ \egroup
+}% \fcltx@hyperlistings
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{The \env{declcs} and \env{declenv} environments}
+%
+% \begin{environment}{declcs}
+% \begin{environment}{declcs*}
+%
+% The \env{declcs}* is defined in \xpackage{holtxdoc} and redefined here in order to allow both syntaxes:§
+% \begin{tabu}{X[r]X[-1c]X[l]}
+% \cs{begin}\M*{declcs}\M*{command} & and & \cs{begin}\M*{declcs}\cs\command
+% \end{tabu}
+%
+% \env{declcs\stform*} is based on \env{longtabu} instead of \env{tabu}.
+%
+% \begin{macrocode}
+\newenvironment{declcs} [1][ l ]{%
+ \@testopt {\declcs@twoopt{#1}}{}}
+ {\crcr
+ \end{tabu}\par \nobreak \ignorespacesafterend }
+\def\declcs@twoopt #1[#2]#3{%
+ \if@nobreak \par\nobreak
+ \else \needspace{.08\textheight}\vskip2\parskip \fi
+ \changefont{spread=1,fam=\ttdefault }%
+ \tabusetup {tabu target=\dimexpr\linewidth-\declmarginwidth , frame=tabu }%
+ \declmargin
+ \ifblank {#1}{\begin{tabu} { l }}{\begin{tabu}spread0pt { #1 }}
+ \csanchor [{#2}]{#3}}%
+\newenvironment{declcs*} [1][ l ]{%
+ \@testopt {\declcs@s@twoopt{#1}}{}}
+ {\crcr
+ \end{longtabu}\nobreak \ignorespacesafterend }
+\def\declcs@s@twoopt #1[#2]#3{%
+ \if@nobreak \par\nobreak
+ \else \needspace{.08\textheight}\vskip2\parskip \fi
+ \changefont{spread=1,fam=\ttdefault }%
+ \tabusetup {longtabu = <\declmarginwidth , frame=tabu }
+ \ifblank {#1}{\begin{longtabu} { l }}{\begin{longtabu}spread0pt { #1 }}
+ \csanchor [{#2}]{#3}}%
+\def\declmarginwidth {\dimexpr -\leftmargini +\arrayrulewidth +\tabcolsep\relax}
+\def\declmargin {\hspace*\declmarginwidth }
+\AtBeginDocument{\ifdefined\nGm@lmargin \leftmargini = .5\dimexpr \nGm@lmargin \relax
+ \else \ifdefined\Gm@lmargin \leftmargini = .5\dimexpr \Gm@lmargin \relax \fi\fi }
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \begin{macro}{\declcsbookmark}
+%
+% Insert a bookmark for the \env{declcs} or \env{declenv} environments.
+%
+% \begin{macrocode}
+\providecommand*\declcsbookmark {\@ifstar \declcsbookmark@star \declcsbookmark@nost }
+\providecommand*\declcsbookmark@nost [2][]{\bookmark [{dest=declcs.\string#2,rellevel=1,keeplevel,color=lk,#1}] {\cs#2}}
+\providecommand*\declcsbookmark@star [2][]{\bookmark [{rellevel=1,keeplevel,color=lk,#1}] {#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{declenv}
+%
+% This is \env{declcs} but for an environment.
+%
+% \begin{macrocode}
+\newenvironment{declenv} [1][ l ]%
+ {\@testopt {\declenv@twoopt {#1}}{}}
+ {\crcr \multicolumn -{p*}{\declenv@AtEnd}
+ \\ \end{tabu}\nobreak \par \nobreak \noindent
+ \ignorespacesafterend}
+\def\declenv@twoopt #1[#2]#3{%
+ \if@nobreak \par\nobreak
+ \else \par\addvspace\parskip
+ \Needspace{.08\textheight}\fi
+ \changefont{spread=1,fam=\ttdefault}\hskip-\leftmargini
+ \def\declenv@AtEnd{\cs{end}\M*{\env [{#2}]{#3}}}%
+ \tabusetup* {framed=tabu}%
+ \ifblank {#1}{\begin{tabu}{ l }}{\begin{tabu}{ #1 }}\cs{begin}\M*{\envanchor [{#2}]{#3}}}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\keyvalue}
+%
+% To typeset a \keyvalue{key=value} pair, with extra spacing around.
+% \cs\keyvalue points to \cs\textt: \cs\keyvalue is not in the list of \cs\pdfstringdefDisableCommands.
+%
+% This is a test.
+%
+% \begin{macrocode}
+\providerobustcmd*\keyvalue {\@ifstar {\@testopt{\fcltx@keyvalue {}{}}\textt }
+ {\@testopt{\fcltx@keyvalue \{\}}\textt }}
+\provide\def\fcltx@keyvalue #1#2[#3]#4{#3{#1#4#2}\xspaceverb }
+\pdfstringDisableCommands{\let\keyvalue \@firstofone}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xext}
+% \begin{macro}{\xpackage}
+% \begin{macrocode}
+\providerobustcmd*\fcltx@xfiles [4]{\@ifstar{#1{#2#4}#3}{#1{#2#4}}}
+\def\fcltx@xx #1#2#3#4{\provide\def #1{\fcltx@xfiles {#2}{#3}{#4}}}
+\fcltx@xx \xext \textt .{ file}
+\fcltx@xx \xfile \textt {}{ file}
+\fcltx@xx \xpackage \textsf {}{ package}
+\fcltx@xx \xmodule \textsf {}{ module}
+\fcltx@xx \xclass \textsf {}{ class}
+\providecommand*\xemail[1]{\textless\textt{#1}\textgreater }
+\pdfstringDisableCommands{%
+ \let\xext \@firstofone \let\xpackage \@firstofone
+ \let\xmodule \@firstofone \let\xclass \@firstofone
+ \let\xemail \@firstofone
+}%
+\xspaceaddexceptions {\Footnotemark }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\CTANhref}
+%
+% \cs\CTANhref\M*{package} or \cs\CTANhref\M*[package]\M{general text}.
+%
+% \cs\Xpackage\M{package} is \cs\CTANhref\M[package]\M*{\cs\xpackage\M{package}}%
+%
+% \begin{macrocode}
+\providerobustcmd*\CTANhref [2][]{\ifblank{#1}
+ {\href {http://www.ctan.org/tex-archive/help/Catalogue/entries/#2.html}
+ {\nolinkurl{CTAN:help/Catalogue/entries/#2.html}}}
+ {\href {http://www.ctan.org/tex-archive/help/Catalogue/entries/#1.html}{#2}}%
+}% \CTANhref
+\pdfstringDisableCommands{\let\CTANhref \@firstofone }
+\providerobustcmd*\Xpackage [1]{\@ifstar {\CTANhref [{#1}]{\xpackage {#1}} package\xspaceverb }
+ {\CTANhref [{#1}]{\xpackage {#1}}\xspaceverb }}
+\pdfstringDisableCommands{\let\Xpackage \@firstofone }
+\providerobustcmd*\thispackage {\@ifstar {\xpackage\thisfile \xspaceverb}%
+ {{\color {pkgcolor}\xpackage\thisfile}\xspaceverb}}
+\pdfstringDisableCommands {\let\thispackage \thisfile }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\M}
+%
+% Displays parameters with braces, bracket, parenthesis or textbar around.
+%
+% \begin{macrocode}
+\providerobustcmd*\M {\scan@char *\M@ifstar }
+\providerobustcmd*\M@ifstar [1]{\@ifnextchar #1{\@firstoftwo
+ {\let\M@meta \@firstofone \scan@char {|[]()}\M@i }}
+ {\let\M@meta \meta \scan@char {|[]()}\M@i }}
+\xspacesetup {exceptions+=\M\}]}
+\providerobustcmd*\scan@char [2]{\begingroup \endlinechar \m@ne
+ \scantokens{\def\:{#1}}\expandafter \endgroup \expandafter #2\:}
+\providerobustcmd*\M@i [5]{\begingroup \@ifnextchar [% ]
+ {\iftrue\M@char [][]\fi }
+ {\ifcase \ifx #1\@let@token \z@ \else
+ \ifx #2\@let@token \@ne \else
+ \ifx #4\@let@token \tw@ \else
+ \m@ne \fi\fi\fi
+ \M@char{#1}{#1}{\stform|}{\stform|}%
+ \or \M@char{#2}{#3}[]%
+ \or \M@char{#4}{#5}()%
+ \else \M@char{}{}\{\}%
+ \fi }%
+}% \M@i
+\provide\def\M@square #1[#2]{\M@Bracket [{#1}{#2}]}
+\provide\def\M@char #1#2#3#4#5\fi {\fi \def\M@char #1##1#2{\M@ch@r {#3}{##1}{#4}}\M@char }
+\provide\def\M@ch@r #1#2#3{\endgroup {\ttfamily #1\ifblank{#2}{{\,}}{\M@meta{#2}}#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\cs{stform} and some symbols}
+%
+% \begin{macro}{\CopyRight}
+% \begin{macrocode}
+\providerobustcmd*\CopyRight {\begingroup \@ifnextchar \bgroup
+ {\afterassignment\Copy@Right \count@ =\@firstofone }
+ {\afterassignment\Copy@Right \count@ =}%
+}% \CopyRight
+\provide\def\Copy@Right {%
+ \def\Copy@Right ##1!##2/##3\@nil {\endgroup \copyright\,%
+ \oldstylenums {\ifnum ##2=##1\relax \else ##1\,\textendash\,\fi ##2}%
+ }\expandafter\Copy@Right \the\expandafter\count@\expandafter!\thisdate \@nil
+}% \Copy@Right
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\stform}
+%
+% \cs\stform* displays a centered star using \cs\textasteriskcentered
+% from the \xpackage{textcomp} package.
+%
+% \begin{macrocode}
+\pretocmd\textasteriskcentered {\usefont{OMS}{cmsy}mn}{}{}
+\ifdefined\ifincsname
+ \providecommand*\stform {\ifincsname \expandafter\string \else \expandafter\@stform \fi}
+\else \providerobustcmd*\stform {\@stform }
+\fi
+\providerobustcmd*\@stform {\ensurespaceextra \@ifnextchar*
+ {\@@stform[]\textasteriskcentered\@gobble }
+ {\ifx -\@let@token \@@stform[]\textendash\expandafter\@gobble
+ \else \expandafter\@@stform
+ \fi}}
+\providecommand*\@@stform [2][\string]{\texttbf{\stform@font #1#2}\xspaceverb }
+\def\stform@font{}
+\pdfstringDisableCommands{\let\stform =\string }
+\xspacesetup {exceptions+=\stform}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\myunderscore}
+%
+% Unable to find any underscore character suitable to me, I provide \cs\myunderscore
+% as a simple \cs\vrule...
+%
+% \begin{macrocode}
+\providerobustcmd*\myunderscore {\ifvmode \noindent \fi \vrule height-\p@ depth1.6\p@ width.4em}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\smex}
+%
+% A long right arrow inside a box of width $2em$ \smex I don't remember why i called it \cs\smex ???
+%
+% \begin{macrocode}
+\providerobustcmd*\smex {\leavevmode \hb@xt@2em{\hss $\longrightarrow$\hss }}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\providerobustcmd*\CheckOK {\textsmaller[2]{\textcolor{ForestGreen}\CheckmarkBold}}
+\providerobustcmd*\CheckFAIL {\textsmaller[2]{\textcolor{Crimson}\XSolidBrush}}
+\providerobustcmd*\CheckTODO{\textsmaller[2]{\textcolor{MediumBlue}\Peace}}
+% \end{macrocode}
+%
+% \subsection{Some colors definitions}
+%
+% All those colors can be redefined later if wanted.
+%
+% \begin{macrocode}
+\providecommand*\ifcolorundef[3]{\romannumeral0\ifcsundef{\string\color@#1}{ #2}{ #3}}%
+\providerobustcmd*\providecolorlet [2]{\ifcolorundef{#1}{\colorlet{#1}{#2}}{}}
+\providecolorlet {pkgcolor}{teal}
+\providecolorlet {csrefcolor}{pkgcolor}
+\providecolor {macrocode}{rgb}{0.07,0.03,0.10}
+\providecolor {copper}{rgb}{0.67,0.33,0.00}
+\providecolor {dg}{rgb}{0.02,0.29,0.00} % dg = dark green
+\providecolor {db}{rgb}{0,0,0.502} % db = dark blue
+\providecolor {dr}{rgb}{0.75,0.00,0.00} % dr = dark red
+\providecolor {lk}{rgb}{0.25,0.25,0.25} % lk = 'light' black
+\providecolor {llk}{rgb}{0.40,0.40,0.40} % llk = 'even more light' black
+\provide\def\db {\color{db}} \provide\def\dg {\color{dg}}
+\provide\def\red {\color{dr}} \provide\def\rred {\color{red}}
+\providerobustcmd*\pkgcolor {\color {pkgcolor}}
+\pdfstringDisableCommands{\let\pkgcolor \relax }
+\AtEndOfPackageFile*{hyperref}{%
+ \providecolorlet {linkcolor}{CornflowerBlue!40!Indigo}
+ \providecolorlet {urlcolor}{magenta}
+ \providecolorlet {filecolor}{cyan}
+ \providecolorlet {menucolor}{red}
+ \providecolorlet {runcolor}{filecolor}
+ \hypersetup {linkcolor=linkcolor,
+ urlcolor=urlcolor,
+ filecolor=filecolor,
+ menucolor=menucolor,
+ runcolor=runcolor,
+ pdfpagemode=UseOutlines}
+}% \AfterPackage
+% \end{macrocode}
+%
+% \begin{environment}{Abstract}
+% \begin{environment}{quotation}
+%
+%
+%
+% \begin{macrocode}
+\newenvironment{Abstract}
+ {\small\begin{center}\bfseries \abstractname\vspace{-.5em}\vspace{\z@}\end{center}\quotation}
+ \endquotation
+\AtEndOfClassFile*{ltxdoc}{
+\renewenvironment{quotation}[1][\leftmargin=1.5em]
+ {\list{}{\listparindent 1.5em
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@ \@plus\p@ #1}%
+ \item\relax}
+ {\endlist}
+}% At End Of Class
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \subsection{the \env{History} environment}
+%
+% \begin{macro}{History}
+%
+%
+% \begin{macrocode}
+\newenvironment{History}{%
+ \section {History}%
+ \def\Version ##1##2{\HistVersion {##1}{##2}\itemize }
+ \let\endVersion =\enditemize
+}{}
+\providecommand*\HistVersion [2]{%
+ \subsection* {[#1 v#2]}% hash-ok
+ \addcontentsline {toc}{subsection}{\protect\numberline{v#2}[#1]}% hash-ok
+ {\protected@edef \@currentlabel {#1}\label {#2}}%
+}% \HistVersion
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{the \env{macro} environment}
+%
+% \begin{macro}{macro}
+%
+% Here we set an hanging indentation of the paragraph in front of the macro name, if the macro name
+% is too wide. This is achieved by the hooks provided by \xpackage{etoolbox}: \cs\AtBeginEnvironment
+% and \cs\AtEndEnvironment.
+%
+% \begin{macrocode}
+\let\plainllap =\llap
+\newdimen \maxlabelwidth
+\newrobustcmd\macro@llap [1]{\begingroup \global\let\llap =\plainllap
+ \setbox0=\hbox{\setbox\strutbox =\hbox{\vrule height\ht\strutbox depth\z@ width\z@}% <height only>
+ #1}%
+ \toks@ ={\ifdim \maxlabelwidth>\z@ \setbox\@labels
+ =\llap{\hbox to\maxlabelwidth {\unhbox \@labels \hss}}\fi}%
+ \toks@ =\expandafter%
+ {\the\expandafter\toks@ \the\everypar \relax
+ \ifdim \dimexpr \maxlabelwidth-\Gm@lmargin+(\Gm@rmargin+5mm)>\z@
+ \hangindent \dimexpr \maxlabelwidth-\Gm@lmargin+(\Gm@rmargin+5mm)\relax
+ \hangafter -\macro@cnt
+ \fi
+ \global\maxlabelwidth \z@
+ \global\everypar \expandafter{\the\everypar \hangindent \z@ \hangafter \z@}}%
+ \ifdim \wd0>\maxlabelwidth \global\maxlabelwidth \wd0 \fi
+ \rlap{\unhbox0}\global\everypar \toks@
+ \endgroup
+}% \macro@llap
+\AtEndOfClassFile* {ltxdoc}{\MacrocodeTopsep\z@skip \MacroTopsep\z@skip }
+\AtBeginEnvironment {macro}{\if@nobreak\else \Needspace{2\baselineskip}\fi
+ \let\llap =\macro@llap \topsep\z@skip \itemsep\z@skip
+ \partopsep\z@skip \parsep\z@skip
+ \parskip=2pt plus2pt minus2pt\relax
+}
+\AtEndEnvironment{macro}{\goodbreak \vskip.3\parskip }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\cs{getpackagedate} and \cs{getpackageinfo}}
+%
+% \begin{macro}{\getpackagebanner}
+%
+% Extract the banner of a loaded package.
+%
+% \begin{macro}{\getpackagedate}
+%
+% Extract the date from the banner of a loaded package.
+%
+% \begin{macro}{\getpackageinfo}
+%
+% Extract the info from the banner of a loaded package.
+%
+% \begin{macrocode}
+\providecommand*\getpackagebanner [1]{\ltx@ifpackageloaded{#1}
+ {\csname ver@#1.\ltx@pkgextension\endcsname}
+ {}%
+}% \getpackagebanner
+\providecommand*\getpackagedate [1]{\ltx@ifpackageloaded{#1}
+ {\expandafter \expandafter % <-note: only required if \pdfmatch undefined>
+ \expandafter\fcltx@ParseVersionAsDate
+ \csname ver@#1.\ltx@pkgextension\endcsname \@nil}%
+ 0%
+}% \getpackagedate
+\providecommand*\getpackageinfo [1]{\ltx@ifpackageloaded{#1}
+ {\expandafter \expandafter % <-note: only required if \pdfmatch undefined>
+ \expandafter\LTXcmds@@ParseInfo
+ \csname ver@#1.\ltx@pkgextension\endcsname \@nil}%
+ {}%
+}% \getpackageinfo
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\ltx@IfUndefined{pdfmatch}{%
+ \provide\def\LTXcmds@ParseInfo#1{%
+ \LTXcmds@@ParseInfo#10000/00/00\@nil
+ }%
+ \provide\def\LTXcmds@@ParseInfo#1/#2/#3#4#5\@nil{%
+ \if\space#5\else #5\fi
+ }%
+ \provide\def\fcltx@ParseVersionAsDate #1\@nil {%
+ \fcltx@@ParseVersionAsDate #10000/00/00\@nil
+ }%
+ \provide\def\fcltx@@ParseVersionAsDate#1#2#3#4/#5#6/#7#8#9\@nil {#1#2#3#4/#5#6/#7#8}%
+}{%
+ \provide\def\LTXcmds@ParseInfo#1{%
+ \ifnum\pdfmatch{%
+ ^%
+ (199[4-9]|[2-9][0-9][0-9][0-9])/%
+ (0[1-9]|1[0-2])/%
+ (0[1-9]|[1-2][0-9]|3[0-1])[[:space:]]*(.*$)%
+ }{#1}=1 %
+ \ltx@StripPrefix\pdflastmatch4 %
+ \fi
+ }%
+ \provide\def\LTXcmds@@ParseInfo #1\@nil {\LTXcmds@ParseInfo {#1}}%
+ \provide\def\fcltx@ParseVersionAsDate #1\@nil {
+ \ifnum\pdfmatch{%
+ ^%
+ (199[4-9]|[2-9][0-9][0-9][0-9])/%
+ (0[1-9]|1[0-2])/%
+ (0[1-9]|[1-2][0-9]|3[0-1])%
+ }{#1}=1 %
+ \ltx@StripPrefix\pdflastmatch1 %
+ /\ltx@StripPrefix\pdflastmatch2 %
+ /\ltx@StripPrefix\pdflastmatch3 %
+ \else
+ 0000/00/00%
+ \fi}
+}
+% \end{macrocode}
+%
+% \subsection{Verbatim support inside \cs{output} routine}
+%
+% \begin{macro}{\FC@DefineCommandChars}
+%
+% The \env{Verbatim}* provided by package \xpackage{fancyvrb} allow to define some
+% special command chars for \textt{escape char character} (\cs\catcode$=0$),
+% \textt{open group character} (\cs\catcode$=1$) and \textt{close group character} (\cs\catcode$=2$),
+% by the mean of the key:
+%
+% \centerline{\keyvalue*{commandchars=\meta{escapechar}\meta{opengroup}\meta{closegroup}}.}
+%
+% If a page break occurs while inside the \env{Verbatim}*, the standard category codes are not
+% restored, and the \cs\output routine may break (if for example, a file is read during the output routine).
+%
+% Here, \cs\FV@DefineCommandChars is redefined in order to ignore the special category codes of
+% verbatim command chararacters category codes
+%
+% \begin{macrocode}
+\AtEndOfPackageFile*{fancyvrb}{%
+\renewcommand*\FV@DefineCommandChars [3]{%
+ \edef\FV@restoreCommandChars{\catcode`\noexpand#1 =\the\catcode`#1
+ \catcode`\noexpand#2 =\the\catcode`#2
+ \catcode`\noexpand#3 =\the\catcode`#3\relax}%
+ \def \FV@CommandChars {\catcode `#1 =0 \catcode `#2 =1 \catcode `#3 =2\relax }%
+ \output =\expandafter{\expandafter\FV@restoreCommandChars \the\output }}%
+\DefineVerbatimEnvironment{Verb*}{Verbatim}{commandchars=$()}
+}% \AfterPackage
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Indexing: Do Not Index in general}
+%
+% \begin{macrocode}
+\AtEndOfClassFile* {ltxdoc}{%\message{Now DONOTINDEX !!!^^J}%
+\DoNotIndex{%
+ \begin,\end,\makeatletter,\makeatother,\@makeother,\filename,\fileversion,\filedate,\frenchspacing,%
+ \CodelineIndex,\CodelineNumbered,\OnlyDescription,\RecordChanges,%
+ \DisableCrossrefs,\EnableCrossrefs,\GetFileInfo,%
+ \def,\gdef,\xdef,\let,\csname,\endcsname,\outer,%
+ \newcommand,\newrobustcmd,\providecommand,\providerobustcmd,%
+ \newif,\@testopt,\endinput,\expandafter,\else,\relax,%
+ \csdef,\csgdef,\csxdef,\cslet,\csletcs,\csundef,\csuse,%
+ \csappto,\csgappto,\csxappto,\cseappto,\cspreto,\csxpreto,\csepreto,\csgpreto,%
+ \preto,\appto,\epreto,\eappto,\xappto,\xpreto,\gpreto,\xpreto,%
+ \~,\\,\&,\;,\,,\:,\[,\],\{,\},\^,\ ,%
+ \@ifpackagelater,\@ifpackagewith,\@ifpackageloaded,%
+ \m@ne,\z@,\z@skip,\@ne,\p@,\tw@,\thr@@,\@M,\m,\@,\@@,\@elt,\do,\@let@token,\@undefined,%
+ \@tempa,
+ \@firstofone,\@firstoftwo,\@secondoftwo,%
+ \@eha,\@ehd,\on@line,%
+ \DocInput,\documentclass,\NeedsTeXFormat,\ProvidesClass,\ProvidesPackage,\ProvidesFile,%
+ \RequirePackage,\usepackage,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument,\ProcessOptions,%
+ \PackageWarningNoLine,\PackageInfoNoLine,%
+ \DefineShortVerb,\DeleteShortVerb,\UndefineShortVerb,\MakeShortVerb,
+ \title,\subtitle,\author,\date,\maketitle,\chapter,\section,\subsection,\subsubsection,%
+ \paragraph,\subparagraph,\parindent,\parskip,%
+ \TMP@EnsureCode,\nobibliography,\nocite,\bibitem,\item,%
+ \MessageBreak,\@spaces,%
+ \stform,\x,%
+}
+\CodelineIndex
+\EnableCrossrefs
+\IndexPrologue{%
+ \section*{Index}%
+ \markboth{Index}{Index}%
+ Numbers written in italic refer to the page %
+ where the corresponding entry is described; %
+ numbers underlined refer to the %
+ \ifcodeline@index
+ code line of the %
+ \fi
+ definition; plain numbers refer to the %
+ \ifcodeline@index
+ code lines %
+ \else
+ pages %
+ \fi
+ where the entry is used.%
+}
+}% \AtEndOfClassFile
+% \end{macrocode}
+%
+% \subsection{Other miscellaneous (personal) commands}
+%
+% \begin{macro}{\ClearPage}
+%
+% \cs\ClearPage does nothing and \cs\ClearPage* does \cs\clearpage. This way it's possible to
+% clear a page or not, keeping trace of what we intended to do...
+%
+% \begin{macrocode}
+\providerobustcmd*\ClearPage {\@ifstar \clearpage \relax }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uline}
+%
+% \cs\uline (from the \Xpackage{ulem}*) has an optional argument to set the color
+% of the line.
+%
+% \begin{macrocode}
+\AtEndOfPackageFile*{ulem}{%
+\renewcommand*\ULset[1][]{\UL@setULdepth
+ \def\UL@leadtype{#1\leaders \hrule \@height\dimen@ \@depth\ULdepth }%
+ \ifmmode \ULdepth-4\p@ \fi
+ \dimen@-\ULdepth \advance\dimen@\ULthickness \ULon}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HighLight}
+% \begin{macrocode}
+\providerobustcmd*\HighLight [1][]{\begingroup \bgroup \aftergroup\endgroup
+ \ULdepth=\dp\strutbox
+ \edef\ULthickness{\the\dimexpr \ht\strutbox+\dp\strutbox }%
+ \UL@setULdepth
+ \ifcat$\detokenize{#1}$\let\fcltx@HL =\@gobble
+ \else \let\fcltx@HL =\color \fi
+ \def\UL@leadtype {\dimen@ii\dimen@\fcltx@HL{#1}\dimen@\dimen@ii
+ \leaders \hrule \@depth\ULdepth \@height\dimen@ }%
+ \dimen@-\ULdepth \advance\dimen@ \ULthickness
+ \ULon
+}% \HighLight
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textsubscript }
+% \begin{macrocode}
+\AtBeginDocument{%
+ \providerobustcmd*\textsubscript [1]{\@textsubscript {\selectfont #1}}
+ \providerobustcmd*\@textsubscript [1]{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Setup At Begin Document}
+%
+% \begin{macrocode}
+\AtBeginDocument{\provide\let\lsstyle =\relax
+ \errorcontextlines=10\relax
+ \provide\let\thisfile =\jobname
+ \provide\let\thisversion =\@empty
+ \provide\edef\thisdate {\getpackagedate\thisfile}%
+ \provide\let\thisversion =\@empty
+ \ifdefined\hypersetup
+ \ifdefvoid\@pdftitle
+ {\hypersetup {pdftitle=The \jobname\space package}}
+ {}%
+ \fi
+ \ifdefined\embedfile
+ \IfFileExists{\jobname.dtx}{\embedfile{\jobname.dtx}}{}\fi
+}% \AtBeginDocument
+\AtEndOfPackageFile*{doc}{\AfterEndPreamble {\DeleteShortVerb {\|}}}
+% \end{macrocode}
+%
+%
+% \subsection{Other stuff (patches) to remove after some package updates}
+%
+% \begin{macro}{\marginnote}
+%
+% Modification to get a correct positionning of the marginnote at first compilation time:
+%
+% \begin{macrocode}
+%\let\@mn@atthispage \@empty
+%\AtEndOfPackageFile*{marginnote}{%
+%\renewcommand\mn@zbox [1]{%
+% \bgroup
+% \ifcsname mn@note.\@mn@thispage.\@mn@atthispage\endcsname \h@false
+% \else \h@true
+% \fi
+% \ifh@
+% \vbox to\z@{\vss \@mn@margintest}\let\@mn@margintest \relax % Just set the label (\pdfsavepos)
+% \edef\marginnotevadjust {\the\dimexpr \marginnotevadjust-\baselineskip }%
+% \setbox\@tempboxa \hbox
+% \else
+% \setbox\@tempboxa \vbox
+% \fi {#1}%
+% \ht\@tempboxa =\ht\strutbox \dp\@tempboxa =\dp\strutbox \wd\@tempboxa =\z@
+% \ifh@ \unhbox \else \box \fi \@tempboxa
+% \egroup
+%}% \mn@zbox
+%}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \restoregeometry
+% \bookmarksetup{bold*}
+% \pagesetup*{
+% ^^Aleft/offset+=5mm,right/offset+=12mm,
+% head/color=LightSteelBlue,
+% }
+%
+% \begin{thebibliography}{9}^^A <- maximum width of labels
+%
+% \makeatletter
+% \bibitem{doc}
+% \textitbf{The \xpackage{doc} and \xpackage{shortvbr} packages} \\
+% 2006/02/02 v2.1d -- Standard LaTeX documentation package (FMi) \\
+% Franck Mittelbach \\
+% \getpackagedate{doc}
+% {\smaller\CTANhref{doc}}
+%
+% \bibitem{hypdoc}
+% \textitbf{The \xpackage{hypdoc} package} \\
+% 2010/03/26 v1.9 Hyper extensions for doc.sty (HO) \\
+% Heiko Oberdiek \\
+% {\smaller\CTANhref{hypdoc}}
+%
+% \bibitem{holtxdoc}
+% \textitbf{The \xpackage{holtxdoc} package} \\
+% 2010/04/24 v0.19 Private additional ltxdoc support (HO) \\
+% {\smaller\CTANhref{holtxdoc}}
+%
+% \end{thebibliography}
+%
+% \begin{History}
+%
+% \addtocontents{toc}{\tocsetup{subsection/font+=\string\smaller}}
+% \sectionformat\subsection[hang]{
+% font=\normalsize\bfseries\pkgcolor,
+% top=\smallskipamount,
+% bottom=0pt,
+% break=\addpenalty{-\csname @medpenalty\endcsname},
+% }
+% \robustify\textbf \robustify\xfile ^^A\HistLabel does \edef on \@currentlabel (\protected@edef required !!)
+%
+% \begin{Version}{2011/02/27}{1.0}
+% \item First version.
+% \end{Version}
+%
+%
+% \end{History}
+%
+% ^^A\PrintIndex
+%
+% \Finale \ No newline at end of file
diff --git a/macros/latex/contrib/fcltxdoc/fcltxdoc.ins b/macros/latex/contrib/fcltxdoc/fcltxdoc.ins
new file mode 100644
index 0000000000..f45855e140
--- /dev/null
+++ b/macros/latex/contrib/fcltxdoc/fcltxdoc.ins
@@ -0,0 +1,89 @@
+%%
+%% This is file `fcltxdoc.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fcltxdoc.dtx (with options: `install')
+%%
+%% This is a generated file.
+%% Copyright (FC) 2010-2011 - lppl
+%%
+%% 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
+%%
+%% This work consists of the main source file fcltxdoc.dtx
+%% and the derived files
+%% fcltxdoc.sty, fcltxdoc.pdf, fcltxdoc.ins, fcltxdoc.drv.
+%%
+%%
+%% fcltxdoc: 2011/03/12 v1.0 - Private additional ltxdoc support (FC)
+%%
+%% This package is not intended for public use.
+%% It is required to compile some of my documentations files.
+%%
+%% ------------------------------------------------------------------------------
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package fcltxdoc: 2011/03/12 v1.0 - Private additional ltxdoc support (FC)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\let\MetaPrefix \relax
+\preamble
+
+This is a generated file.
+Copyright (FC) 2010-2011 - lppl
+
+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
+
+This work consists of the main source file fcltxdoc.dtx
+and the derived files
+ fcltxdoc.sty, fcltxdoc.pdf, fcltxdoc.ins, fcltxdoc.drv.
+
+fcltxdoc: 2011/03/12 v1.0 - Private additional ltxdoc support (FC)
+
+This package is not intended for public use.
+It is required to compile some of my documentations files.
+
+------------------------------------------------------------------------------
+\endpreamble
+\let\MetaPrefix \DoubleperCent
+{
+\catcode164=9
+\generate{%
+ \file{fcltxdoc.ins}{\from{fcltxdoc.dtx}{install}}%
+ \file{fcltxdoc.sty}{\from{fcltxdoc.dtx}{package}}%
+}
+}
+\askforoverwritefalse
+\generate{%
+ \file{fcltxdoc.drv}{\from{fcltxdoc.dtx}{driver}}%
+}
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* fcltxdoc.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file `copypaste.dtx' *}
+\Msg{* through pdfLaTeX. *}
+\Msg{* *}
+\Msg{************************************************************************}
+
+\endbatchfile
+\endinput
+%%
+%% End of file `fcltxdoc.ins'.
diff --git a/macros/latex/contrib/fcltxdoc/fcltxdoc.pdf b/macros/latex/contrib/fcltxdoc/fcltxdoc.pdf
new file mode 100644
index 0000000000..4b1a5c8145
--- /dev/null
+++ b/macros/latex/contrib/fcltxdoc/fcltxdoc.pdf
Binary files differ