summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/interfaces
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-11-26 23:34:28 +0000
committerKarl Berry <karl@freefriends.org>2010-11-26 23:34:28 +0000
commitfe6482d3468ca040e53f8e5347548495db754e98 (patch)
tree316b38cc413c275b5bd568b1d95a68bbda85f5ea /Master/texmf-dist/source/latex/interfaces
parent4ccf49d7715d013e1de70c6a44384aeb940c1589 (diff)
interfaces 2.4 (25nov10)
git-svn-id: svn://tug.org/texlive/trunk@20577 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/interfaces')
-rw-r--r--Master/texmf-dist/source/latex/interfaces/interfaces.drv12
-rw-r--r--Master/texmf-dist/source/latex/interfaces/interfaces.dtx1182
-rw-r--r--Master/texmf-dist/source/latex/interfaces/interfaces.ins6
3 files changed, 816 insertions, 384 deletions
diff --git a/Master/texmf-dist/source/latex/interfaces/interfaces.drv b/Master/texmf-dist/source/latex/interfaces/interfaces.drv
index 68a318a752c..f6d924b8d07 100644
--- a/Master/texmf-dist/source/latex/interfaces/interfaces.drv
+++ b/Master/texmf-dist/source/latex/interfaces/interfaces.drv
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% interfaces : 2010/11/21 v2.3 - interfaces : interfaces with keys for other packages (FC)
+%% interfaces : 2010/11/26 v2.4 - interfaces : interfaces with keys for other packages (FC)
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -46,14 +46,15 @@
\let\CTANLinks=y
\edef\thisfile{\jobname}
\def\thisinfo{interfaces with keys for other packages}
-\def\thisdate{2010/11/21}
-\def\thisversion{2.3}
+\def\thisdate{2010/11/26}
+\def\thisversion{2.4\,\textendash\,release candidate}
\def\CTANbaseurl{http://www.ctan.org/tex-archive/}
\def\LocalOrCTAN#1#2{\ifx y\CTANLinks#2\else#1\fi}
\def\LOCALDOC{file:C:/texmf/doc/latex}
\let\loadclass\LoadClass
\def\LoadClass#1{\loadclass[abstracton]{scrartcl}\let\scrmaketitle\maketitle\AtEndOfClass{\let\maketitle\scrmaketitle}}
\documentclass[a4paper,oneside]{ltxdoc}
+\AtBeginDocument{\DeleteShortVerb{\|}}
\usepackage[latin1]{inputenc}
\usepackage[american]{babel}
\usepackage[T1]{fontenc}
@@ -66,15 +67,14 @@
\usepackage{enumitem,multirow,makecell,tabularx,booktabs,colortbl,arydshln,dcolumn,delarray,hhline,linegoal}
\usepackage[breakall]{truncate}
\usepackage{appendix}
-\usepackage{interfaces-base}
-\LoadInterface{LaTeX,titlesec,bookmark,marks,fancyhdr,tocloft,makecell,enumitem,appendix,truncate}
+\usepackage{interfaces}
\usepackage{holtxdoc,hyperref,bookmark}
\usepackage{embedfile}
\usepackage{fp}
\usepackage{zref,zref-user,zref-savepos}
\usetikz{basic,decorations.pathmorphing}
\csname endofdump\endcsname
-\RequirePackage{tabu}[2010/11/20]
+\RequirePackage{tabu}[2010/11/22]
%%\OnlyDescription
\CodelineNumbered
\usepackage{fancyvrb} \fvset{gobble=1}
diff --git a/Master/texmf-dist/source/latex/interfaces/interfaces.dtx b/Master/texmf-dist/source/latex/interfaces/interfaces.dtx
index 3a03217119b..e7c6eacd426 100644
--- a/Master/texmf-dist/source/latex/interfaces/interfaces.dtx
+++ b/Master/texmf-dist/source/latex/interfaces/interfaces.dtx
@@ -1,5 +1,5 @@
% \iffalse meta-comment
-% interfaces : 2010/11/21 v2.3 - interfaces with keys for other packages (FC)
+% interfaces : 2010/11/26 v2.4 - interfaces with keys for other packages (FC)
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -56,7 +56,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: 2010/11/21 v2.3 - interfaces: interfaces with keys for other packages (FC)}
+\Msg{* Package: 2010/11/26 v2.4 - interfaces: interfaces with keys for other packages (FC)}
\Msg{************************************************************************}
\keepsilent
@@ -67,7 +67,7 @@
This is a generated file.
-interfaces : 2010/11/21 v2.3 - interfaces : interfaces with keys for other packages (FC)
+interfaces : 2010/11/26 v2.4 - interfaces : interfaces with keys for other packages (FC)
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -160,14 +160,15 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
\let\CTANLinks=y
\edef\thisfile{\jobname}
\def\thisinfo{interfaces with keys for other packages}
-\def\thisdate{2010/11/21}
-\def\thisversion{2.3}
+\def\thisdate{2010/11/26}
+\def\thisversion{2.4\,\textendash\,release candidate}
\def\CTANbaseurl{http://www.ctan.org/tex-archive/}
\def\LocalOrCTAN#1#2{\ifx y\CTANLinks#2\else#1\fi}
\def\LOCALDOC{file:C:/texmf/doc/latex}
\let\loadclass\LoadClass
\def\LoadClass#1{\loadclass[abstracton]{scrartcl}\let\scrmaketitle\maketitle\AtEndOfClass{\let\maketitle\scrmaketitle}}
\documentclass[a4paper,oneside]{ltxdoc}
+\AtBeginDocument{\DeleteShortVerb{\|}}
\usepackage[latin1]{inputenc}
\usepackage[american]{babel}
\usepackage[T1]{fontenc}
@@ -180,15 +181,14 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
\usepackage{enumitem,multirow,makecell,tabularx,booktabs,colortbl,arydshln,dcolumn,delarray,hhline,linegoal}
\usepackage[breakall]{truncate}
\usepackage{appendix}
-\usepackage{interfaces-base}
-\LoadInterface{LaTeX,titlesec,bookmark,marks,fancyhdr,tocloft,makecell,enumitem,appendix,truncate}
+\usepackage{interfaces}
\usepackage{holtxdoc,hyperref,bookmark}
\usepackage{embedfile}
\usepackage{fp}
\usepackage{zref,zref-user,zref-savepos}
\usetikz{basic,decorations.pathmorphing}
\csname endofdump\endcsname
-\RequirePackage{tabu}[2010/11/20]
+\RequirePackage{tabu}[2010/11/22]
%%\OnlyDescription
\CodelineNumbered
\usepackage{fancyvrb} \fvset{gobble=1}
@@ -214,7 +214,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%</driver>
% \fi
%
-% \CheckSum{5503}
+% \CheckSum{5655}
%
% \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
@@ -288,21 +288,21 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \newrobustcmd*\CTANhref[2][macros/latex/contrib/]{^^A
% \href{\CTANbaseurl#1#2}{\nolinkurl{CTAN:#1#2}}^^A
% }
-% \newrobustcmd*\thispackage{\@ifstar{\thisp@ckage{}}{\thisp@ckage\xspace}}
+% \newrobustcmd*\thispackage{\@ifstar{\thisp@ckage{}}{\thisp@ckage\Xspace}}
% \def\thisp@ckage#1{\@testopt{\thisp@ck@ge{#1}}{\thisfile}}
% \def\thisp@ck@ge#1[#2]{\xpackage{\pkgcolor#2}#1}
-% \def\ThisPackage{\Xpackage{\thisfile}\xspace}
+% \def\ThisPackage{\Xpackage{\thisfile}\Xspace}
% \newrobustcmd*\Xpackage[2][macros/latex/contrib/]{\@testopt{\X@package[{#1}]{#2}}{}}
% \def\X@package[#1]#2[#3]{^^A #1=href, #2=name, #3=description (footnote)
% \xpackage{#2\footnote{\noindent\xpackage{#2}: \CTANhref[{#1}]{#2}#3}}^^A
% }
-% \def\ThisPackage{\Xpackage{\thisfile}\xspace}
+% \def\ThisPackage{\Xpackage{\thisfile}\Xspace}
% \newrobustcmd\doclink[2][]{\ifblank{#1}
% {\hyperref{\LocalOrCTAN{\LOCALDOC/#2/#2.pdf}{\CTANbaseurl/macros/latex/contrib/#2}}{}{}{#2}}
% {\hyperref{#1}{}{}{#2}}%
% }
% \newrobustcmd\ClearPage{\@ifstar{\vfill\null\clearpage}{}}
-% \renewcommand\bottomtitlespace{.2\textheight}
+% \bottomtitles=.1\textheight
% \catcode`\§ \active \def§{\@ifnextchar §{\endgraf\nobreak\vskip-2\parskip}{\endgraf\nobreak\vskip-\parskip}}
% \def\Underbrace#1_#2{$\underbrace{\vtop to2ex{}\hbox{#1}}_{\footnotesize\hbox{#2}}$}
% \newcolumntype{O}{>{\opt}r@{\,=\textellipsis,\hskip.3em}}
@@ -328,6 +328,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \DefineVerbatimEnvironment{Verb*}{Verbatim}
% {gobble=1,fontfamily=txtt,fontseries=m,commandchars=$()}
% \def\smex{\leavevmode\hb@xt@2em{\hfil$\longrightarrow$\hfil}}
+% \newcommand\texorpdf[2]{\texorpdfstring{#1{#2}}{#2}}
% \renewcommand*\ttdefault{txtt}
% \newrobustcmd\verbfont{\ttfamily} \let\vb\verbfont ^^A\usefont{T1}\ttdefault\f@series\f@shape}
% \def\meta@font@select{\itshape\verbfont}\let\metafont\meta@font@select
@@ -446,7 +447,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% font=\scriptsize\color[gray]{.35},%
% foot/left/font+=\ssmall\tiny,%
% head/left=The \thispackage package -- \thisinfo,%
-% head/right=\thefirstmarks{section},%
+% head/right=\hyperref{}{}{\thefirstmarks{sectionanchor}}{\thefirstmarks{section}},%
% foot/left/offset=.7in,
% 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}},%
@@ -468,13 +469,16 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% left/offset+=1.5cm,
% right/offset-=.5cm,
% head/left=The \thispackage package (implementation) -- \thisinfo,
-% ^^Ahead/right/font+=\tiny,
-% head/right=\thefirstmarks{subsection},
+% head/right=\hyperref{}{}{\thefirstmarks{subsectionanchor}}{\thefirstmarks{subsection}},
% }%
% \bookmarksetup{depth=4}
-% \sectionformat\section{mark=,bookmark={bold*,italic*}}
-% \sectionformat\subsection{mark=\marksthe{subsection}{\arabic{section}.\arabic{subsection}\,{\pkgcolor\lower.2ex\hbox{\smaller\NibRight}}\,##1}}
-% \sectionformat\subsubsection{mark=\marksthe{subsubsection}{##1}}
+% \sectionformat\section{bookmark={bold*,italic*}}
+% \sectionformat\subsection{
+% mark=\marksthe{subsection}{\arabic{section}.\arabic{subsection}\,{\pkgcolor\lower.2ex\hbox{\smaller\NibRight}\,##1}}^^A
+% \marksthecs{subsectionanchor}{lastsubsectionanchor}}
+% \sectionformat\subsubsection{
+% mark=\marksthe{subsubsection}{##1}\marksthecs{subsubsectionanchor}{lastsubsubsectionanchor}}
+% \hfuzz=10pt
% \section{Implementation} \label{sec:implementation}}
% \let\plainllap\llap
% \newrobustcmd\macro@llap[1]{\let\llap\plainllap\setbox\z@\hbox{#1}\ifdim\wd\z@>3cm\hbox to\z@{\hss\hbox to3cm{#1\hss}}\else\hbox to\z@{\hss#1}\fi\setbox\z@\box\voidb@x}
@@ -483,8 +487,9 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%
% \newcommand\reflinkcolor{\color{reflink}}\definecolor{reflink}{rgb}{0.49,0.00,0.00}
% \definecolor{reffilecolor}{rgb}{0,.3,0}
+% \newrobustcmd*\Xspace{\ifnum\catcode`\ =\active\relax\else\expandafter\xspace\fi}^^A not \xspace in verbatim
% \newrobustcmd*\stform{\@ifnextchar*{\@stform[]\textasteriskcentered\@gobble}\@stform}
-% \newrobustcmd*\@stform[2][\string]{\textttbf{\rred#1#2}\ifnum\catcode`\ =\active\relax\else\expandafter\xspace\fi}^^A not \xspace in verbatim
+% \newrobustcmd*\@stform[2][\string]{\textttbf{\rred#1#2}\Xspace}
% \newrobustcmd*\HR[1][-.2ex]{\leavevmode\raise\dimexpr#1\relax\hbox{\pkgcolor\small\HandRight}}
% \newrobustcmd*\sectitle[2][]{Interface \HR\,\doclink[{#1}]{#2}}
% \def\Section[#1](#2)[#3]#4{%
@@ -503,7 +508,8 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% labelsep=.5em,
% top=12pt minus3pt,
% bottom=4pt plus2pt minus2pt,
-% mark=\marksthe{section}{\thesection\,{\pkgcolor\lower.2ex\hbox{\smaller\NibRight}\,#1}},
+% mark=\marksthe{section}{\thesection\,{\pkgcolor\lower.2ex\hbox{\smaller\NibRight}\,#1}}
+% \marksthecs{sectionanchor}{lastsectionanchor} ,
% }
% \sectionformat\subsection{%
% bottom-=4pt,
@@ -511,7 +517,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% label={\arabic{section}{\pkgcolor$\cdot$}\arabic{subsection}\,{\pkgcolor\smaller\Ankh}\,},
% labelsep=0pt,
% break=\allowbreak,
-% mark=\marksthe{subsection}{#1},
+% mark=\marksthe{subsection}{#1}\marksthecs{subsectionanchor}{lastsubsectionanchor},
% }
% \newrobustcmd*\handler{\@ifstar{\@handler[]}\@handler}
% \newrobustcmd*\@handler[1][\db]{\@@handler{#1}}
@@ -592,7 +598,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% bookmark={bold,color=blue},$com(interfaces-bookmark)
% top=6pt plus3pt minus2pt,
% bottom=3pt plus2pt,
-% break=\marksthecs{section}{($db(lastsectiontitle))},$com(interfaces-hypbmsec)
+% break=\marksthecs{section}{($db(lastsectiontoc))},$com(interfaces-hypbmsec)
% mark=($db(\marksthe)){section}{#1},$com(interfaces-marks)
% }
% ($red(\sectionformat))\subsection[hang]{
@@ -667,15 +673,12 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% bookmark=bold,%
% bookmark/text=Contents,%
% }
-% ^^A\bookmark[page=\value{page},view={FitBH \hypercalcbp\textheight},bold=true]{Contents}
% \tableofcontents
%
% \clearpage \bookmarksetup{startatroot,depth=3}
% \sectionformat\section{bookmark={color=pkgcolor,bold}}
%
-% ^^A\loggingall
% \Section[LaTeX](Interface LaTeX)[Interface \LaTeX{}]{Interface \LaTeX{}}
-% ^^A\tracingnone
%
%
% \begin{declcs}[\red]{changefont}\{\staractive\hskip-2cm\keytab{^^A
@@ -974,10 +977,8 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%
% \Section[hypbmsec](Interface hypbmsec)[Interface hypbmsec]{\sectitle[\LocalOrCTAN{\LOCALDOC/oberdiek/hypbmsec}{\CTANbaseurl/macros/latex/contrib/oberdiek/hypbmsec}]{hypbmsec}}
%
-% The features provided by \thispackage[interfaces-hypbmsec] requires \thispackage[interfaces-titlesec],
-% and therefore the \xpackage{titlesec} package: when using \thispackage with automatic module loading,
-% (or while invoking \LoadInterface{hypbmsec}), this module is loaded only after both
-% \xpackage{titlesec.sty} and \xpackage{hypbmsec.sty}.
+% The features provided by \thispackage[interfaces-hypbmsec] are now independant
+% of \xpackage{titlesec} and \thispackage[interfaces-titlesec].
%
% Package \xpackage{hypbmsec} provides extended sectionning commands with the syntax:
% \begin{Verb*}
@@ -999,6 +1000,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% ($opt\lastsectiontitle) ($nnn expands to the title of the last) \section
% ($opt\lastsectionbookmark) ($nnn expands to the text of the bookmark for the last) \section
% ($opt\lastsectiontoc) ($nnn expands to the entry of the last) \section ($nnn in the table of contents)
+% ($opt\lastsectionanchor) ($nnn expands to the anchor name of the last) \section ($nnn if $xpackage(hyperref) is used)
% \end{Verb*}
%
% Macros for each sectionning command are defined:§
@@ -1024,6 +1026,18 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \cs{lastsubsection} is reset to\, \csbf{relax}\, therefore,\, \cs{marksthecs}\M{subsection}\M{lastsubsection}
% will not mark anything.
%
+% Another possibility is show in this document: the header is clickable and has been defined with:
+% \begin{Verb*}
+% ($dr(\sectionformat))\section{
+% mark=($db(\marksthe)){section}{#1}
+% ($db(\marksthecs)){sectionanchor}{lastsectionanchor}
+% }
+% ($dr(\pagesetup)){
+% head/right=($db(\hyperref)){}{}{($db(\thefirstmarks)){sectionanchor}}
+% {($db(\thefirstmarks)){section}}
+% }
+% \end{Verb*}
+%
% \ClearPage*
%
%
@@ -1129,14 +1143,18 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% foot/left &foot/center &foot/right &\emph{idem} \\
% head/left/even &head/left/odd &\omit &for two side documents \\
% \etc &\etc &\etc & \\
-% foot/right/even &foot/right/odd &\omit & \\\hdashline[1.5pt/1pt]
+% foot/right/even &foot/right/odd &\omit & \\
+% inner &head/inner &foot/inner &\textt{inner} is an alias for \textt{right/even, left/odd} \\
+% outer &head/outer &foot/outer &\textt{outer} is an alias for \textt{left/even, right/odd} \\ \hdashline[1.5pt/1pt]
% offset &\omit &\omit &changes \cs{fancyhfoffset} \\
% head/offset &foot/offset &\omit & \\
% left/offset &right/offset &\omit & \\
% head/left/even/offset &head/left/odd/offset &\omit &for two side documents \\
% \etc &\etc &\etc & \\
% foot/right/even/offset &foot/right/odd/offset &\omit &for two side documents \\
-% pagestyle &\omit &\omit &load the settings of another page style \hfill\rlap{\}} \\
+% inner/offset &head/inner/offset &foot/inner/offset&\textt{inner} is an alias for \textt{right/even, left/odd} \\
+% outer/offset &head/outer/offset &foot/outer/offset&\textt{outer} is an alias for \textt{left/even, right/odd} \\ \hdashline[1.5pt/1pt]
+% pagestyle &\omit &\omit &load the settings of another page style \hfill\rlap{\}} \\
% \end{tabularx} \\
% \cs[\red]{pagesetup}\stform*\M[pagestyle-name]\M*{key\,=\,value}
% \end{declcs}
@@ -1185,15 +1203,16 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% (see \thispackage[interfaces-hypbmsec] p. \pageref{hypbmsec}).
%
%
-% \begin{declcs}[\red]{thefirstmarks}\M{named-mark} \\
-% \cs[\red]{thebotmarks}\M{named-mark} \\
-% \cs[\red]{thetopmarks}\M{named-mark}
+% \begin{declcs}[\red]{thefirstmarks}\M{named-mark}\textsuperscript{\textsc{expandable}} \\
+% \cs[\red]{thebotmarks}\M{named-mark}\textsuperscript{\textsc{expandable}} \\
+% \cs[\red]{thetopmarks}\M{named-mark}\textsuperscript{\textsc{expandable}}
% \end{declcs}
%
% \begin{description}[font=\mdseries]
-% \item[{\cs[\red]{thefirstmarks}\M{chapter}}] expands to \cs{firstmarks}\cs{marks@\meta{chapter}}\, (this is expandable), \ie
-% either the content of the first invocation of \cs{marksthe}\M{chapter} on the current page, if \cs{marks} was used
-% on the current page, or the last invocation of \cs{marks} if no marks occurs on the current page.
+% \item[{\cs[\red]{thefirstmarks}\M{chapter}}] expands to \cs{firstmarks}\cs{marks@\meta{chapter}}\, (this is expandable
+% in exactly one step of expansion), \ie either the content of the first invocation of \cs{marksthe}\M{chapter}
+% on the current page, if \cs{marks} was used on the current page, or the last invocation of \cs{marks}
+% if no marks occurs on the current page.
% \item[{\cs[\red]{thebotmarks}\M{chapter}}] expands to \cs{botmarks}\cs{marks@\meta{chapter}}\, \ie the content of the last
% invocation of \cs{marksthe}\M{chapter} (the most recent \cs{marks}).
% \item[{\cs[\red]{thetopmarks}\M{chapter}}] expands to \cs{topmarks}\cs{marks@\meta{chapter}}\, and this is the content of
@@ -1336,12 +1355,6 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% If the values in the lists are numeric, \cs[\pkgcolor]R,\, \cs[\pkgcolor]C,\, \cs[\pkgcolor]r\, and \cs[\pkgcolor]c\,
% can be used in formulas as well, \emph{o{\smaller f c{\smaller our{\smaller se...}}}}
%
-% \textbf{Important note:} The mechanism of \cs{halign} does not allow to insert tab alignment characters into the arguments of \cs[\red]{repeatcell}.
-% Therefore, to be able to define a \textt[\opt]{text} key containing a tabular or array, the \textt{\textbf\& alignment tab character} is activated
-% (\texttt{catcode 13}) at the beginning of \cs{repeatcell}. This activation has no effect if \cs{repeatcell} is in the replacement text of one of your macro,
-% because the category code of \texttbf\& is fixed at the time your macro was read. Thus, use the control sequence \cs[\red]{tab} instead of \texttbf\& in this case.
-% \cs[\red]{tab} is only defined during the time \cs[\red]{repeatcell} does its job.
-%
% \medskip
%
% \centerline{\bfseries\large\lk
@@ -1355,42 +1368,43 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%
% \begin{Verb*}
% \def($db(\listofunits)){ pt , cm , mm , bp , dd , pc , in , cc ,sp }
-% \begin{($dg$underline(tabular))}{|>{\bfseries}c|*{9}{|r}|} \hline
+% \begin{($dg$underline(tabu))}{|>{\bfseries}c|*9{X[mc]|}} \hline
% \thead{units}
% & ($red(\repeatcell))[c]($db(\listofunits)){ ($opt(text)) = \c, font=\bfseries } \\ \hline
% \thead{value in\\ scaled\\ points}
% & ($red(\repeatcell))($db(\listofunits)){%
% ($pkgcolor(sp)) =\number\dimexpr 1($pkgcolor(\c))\relax,
% ($opt(text))=\numprint[sp]($pkgcolor(\sp))} \\ \hline
-% \end{($dg$underline(tabular))}
+% \end{($dg$underline(tabu))}
% \end{Verb*}
%
% {\footnotesize
% \def\listofunits{pt,cm,mm,bp,dd,pc,in,cc,sp}
-% \begin{tabular}{|>{\bfseries}c|r*{9}{|r}|} \hline
-% \thead{units} & \repeatcell[c]\listofunits{ text=\c, font=\bfseries } \\ \hline
+% \noindent
+% \begin{tabu}{|>{\bfseries}c|*9{X[mc]|}} \hline
+% \thead{units} & \repeatcell\listofunits{text=\c, font=\bfseries } \\ \hline
% \thead{value in \\ scaled\\ points} & \repeatcell\listofunits{ sp=\number\dimexpr1\c\relax, text=\numprint[sp]\sp} \\ \hline
-% \end{tabular}
+% \end{tabu}
% }
%
% \subsection{Variable length cell}
%
% \begin{Verb}[commandchars=£:;]
% \newcommand\FAMILY[3]{%
-% \begin{:£dg£underline:tabular;;}{|*{3}{>{\centering\arraybackslash}m{.12\linewidth}}|} \hline
+% \begin{:£dg£underline:tabu;;}to .4\linewidth{|*3{X[mc]}|} \hline
% Mother & Father & Children \\ \hline
% #1 & #2 & \makecell{:£red:\repeatcell;;{#3}{text=:£pkgcolor:\c;;, :£opt:transpose;;} \\ \hline
-% \end{:£dg£underline:tabular;;}}
+% \end{:£dg£underline:tabu;;}}
% \FAMILY{Johanne}{Georg}{Priscilla,John,Tom}
% \FAMILY{Nut}{Geb}{Isis,Osiris,Seth,Nephthys}
% \end{Verb}
%
%
% \newcommand\FAMILY[3]{^^A
-% \begin{tabular}{|*{3}{>{\centering\arraybackslash}m{.12\linewidth}}|} \hline
+% \begin{tabu} to.4\linewidth{|*3{X[mc]}|} \hline
% Mother & Father & Children \\ \hline
% #1 & #2 & \makecell{\repeatcell[c]{#3}{text=\c,font=\color{green},transpose}} \\ \hline
-% \end{tabular}}
+% \end{tabu}}
% {\footnotesize \centering
% \FAMILY{Johanne}{Georg}{Priscilla,John,Tom}
% \FAMILY{Nout}{Geb}{Isis,Osiris,Seth,Nephthys}\par
@@ -1399,24 +1413,31 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%
% \subsection{Empty rows}
%
-% {\footnotesize
-% \begin{Verb*}
-% \begin{tabular}{*{6}{|c}|} \hline
+% \begin{tabu}{X[4m]X[cm]}
+% \footnotesize
+% \verbatim{^^A
+% \begin{tabu}{*6{|c}|} \hline^^@
+% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline } \\ \hline^^@
+% \end{tabu}}
+% &
+% \begin{tabu}{*6{|c}|} \hline
% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline } \\ \hline
-% \end{tabular}
-% \begin{tabular}{*{4}{|c}|} \hline
-% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline , ($opt(transpose))} \\ \hline
-% \end{tabular}
-% \end{Verb*}
+% \end{tabu}
+% \end{tabu}
%
-% \begin{tabular}{*{6}{|c}|} \hline
-% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline } \\ \hline
-% \end{tabular} \qquad
-% \begin{tabular}{*{4}{|c}|} \hline
-% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline , transpose } \\ \hline
-% \end{tabular}
%
-% }
+% \begin{tabu}{X[4m]X[cm]}
+% \footnotesize
+% \verbatim{^^A
+% \begin{tabu}{*4{|c}|} \hline^^@
+% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline , transpose} \\ \hline^^@
+% \end{tabu}}
+% &
+% \begin{tabu}{*4{|c}|} \hline
+% \repeatcell 6{ text/col1=\row, rows=4, end=\\ \hline , transpose} \\ \hline
+% \end{tabu}
+% \end{tabu}
+%
%
% \subsection{color palette}
% \label{repeatcell:colors}
@@ -2173,7 +2194,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%
% \makeatletter \newcounter{PatchedCommand}
% \newcolumntype\X{>{\centering\arraybackslash}X}
-% \newrobustcmd\PatchedCommand[4][]{\begingroup\small \stepcounter{PatchedCommand}%
+% \newrobustcmd\PatchedCommand[4][]{\begin{small}\stepcounter{PatchedCommand}%
% \hbox{\llap{\Pisymbol{\number\numexpr181+\value{PatchedCommand}}\,\,}
% \begin{tabularx}\linewidth{|\X|c|\X|\X|c|}\hline
% Patched command &Type & Importance &Module & ref. page \\\hline
@@ -2195,10 +2216,10 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% {}
% {\pageref{patch-\itf@getvalue{#2}1}}%
% \\ \hline
-% \end{tabularx}}\endgroup}
+% \end{tabularx}}\end{small}}
% \makeatother
%
-% \begingroup\smaller
+% \begin{smaller}
%
% \subsection[LaTeX]{\LaTeX{}}
%
@@ -2330,8 +2351,8 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \cs{pgfkeys@exp@call}: missed a pair of braces around the value in \cs{pgfkeysalso}. Thus
% the code could break if the value contains an equal sign or a comma. Fixed.
%
+% \end{smaller}
%
-% \endgroup ^^A \smaller
% \bookmarksetup{bold=false,color=black}
%
%
@@ -2351,7 +2372,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{interfaces}
- [2010/11/21 v2.3 - pgfkeys (pgf 2.0 et 2.1 macros for interfaces (FC)]
+ [2010/11/26 v2.4 - pgfkeys (pgf 2.0 et 2.1 macros for interfaces (FC)]
% \end{macrocode}
%
% \subsubsection{Requirements}
@@ -2392,7 +2413,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \begin{macrocode}
%<*base>
\ProvidesPackage{interfaces-base}
- [2010/11/21 v2.3 Basic macros for interfaces package (FC)]
+ [2010/11/26 v2.4 Basic macros for interfaces package (FC)]
\RequirePackage{etex,ltxcmds,etoolbox,pgfkeys,scrlfile}
\AtEndOfPackage{%
\RequirePackage{interfaces-etoolbox}%
@@ -2855,7 +2876,7 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \begin{macrocode}
%<*tikz>
\ProvidesPackage{interfaces-tikz}
- [2010/11/21 v2.3 load tikz libraries easily - pgf 2.0 & 2.1 (FC)]
+ [2010/11/26 v2.4 load tikz libraries easily - pgf 2.0 & 2.1 (FC)]
\RequirePackage{interfaces-base}
\itf@pgfkeys
% \end{macrocode}
@@ -3047,6 +3068,7 @@ turtle%
[2010/11/15 v2.1 pgfkeys macros for titlesec (FC)]
\RequirePackage{interfaces-base}
\RequirePackage{auxhook}% <fix for \ttlp@append (odd/even pages)>
+\RequirePackage{gettitlestring}
\itf@Check@Package{titlesec}
\itf@pgfkeys
% \end{macrocode}
@@ -3306,7 +3328,6 @@ turtle%
\pgfqkeys{/itf/titlesec/#1#2}{%
shape/.value required,%
shape@cs/.initial=
- \ifdefined\itf@last@from@next\itf@last@from@next{#1}\fi % interfaces-hypbmsec
\csname ttlh@\pgfkeysvalueof{/itf/titlesec/#1#2/shape}\endcsname,% constant
shape@cs/.is private=interface-titlesec,% constant
font/.store as code,%
@@ -3463,7 +3484,7 @@ turtle%
\@defaultunits\itf@sk#1\textheight\relax\@nnil
\itf@set@bottomtitle@space
}% \itf@setbottomtitlespace
-\def\itf@set@bottomtitle@space{\edef\bottomtitlespace{\the\itf@sk}}
+\def\itf@set@bottomtitle@space{\edef\bottomtitlespace{\the\dimexpr\itf@sk}}
% \end{macrocode}
% \end{macro}
%
@@ -3542,7 +3563,7 @@ turtle%
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{star keys\stform* definitions}
+% \subsubsection{star keys\texorpdf\stform* definitions}
%
% \begin{macrocode}
\global\let\itf@BKM@enable\@ne % 0 = disable*, 1=enable, \@M = disable
@@ -3722,6 +3743,7 @@ turtle%
%</bookmark>
% \end{macrocode}
%
+%
% \Subsection[hypbmsec]
%
% \subsubsection{interfaces-hypbmsec}
@@ -3729,36 +3751,24 @@ turtle%
% \begin{macrocode}
%<*hypbmsec>
\ProvidesPackage{interfaces-hypbmsec}
- [2010/11/15 v2.1 lastsection etc. (FC)]
+ [2010/11/15 v2.1 lastsection (title,anchor, etc. - FC)]
\RequirePackage{interfaces-base}
+\RequirePackage{gettitlestring}
\itf@Check@Package{hypbmsec}
-\AfterPackage*{interfaces-titlesec}{% requires interface-titlesec
- \input{interfaces-hypbmsec.code.tex}%
-}%
-%</hypbmsec>
-% \end{macrocode}
-%
-% \subsubsection{interfaces-hypbmsec.code.tex}
-%
-% \begin{macrocode}
-%<*hypbmsec.code.tex>
-\ProvidesFile{interfaces-hypbmsec.code.tex}
- [2010/10/27 v1.2 code for interfaces-hypbmsec (FC)]
% \end{macrocode}
%
% \begin{macro}{\hbs@do (patch)}
-% \patchlabel[prepend]{hbs@do}
+% \patchlabel[redef]{hbs@do}
% \begin{macrocode}
-\itf@patch\pretocmd\hbs@do{%
- \edef\itf@tp{\expandafter\itf@strip@at\string#1}%
- }%
- {\PackageInfo{interfaces-hypbmsec}
- {Command \string\hbs@do\space successfully patched}}
- {\PackageWarning{interfaces-hypbmsec}
- {Command \string\hbs@do\space could not be patched
- \MessageBreak loading of `interfaces-hypbmsec` aborted
- \MessageBreak \string\lastsection\space will not work}%
- \endinput}
+\def\itf@hbs@do#1{%
+ \xdef\itf@hbs@currentname{\expandafter\itf@strip@at\string#1}%
+ \let\hbs@tocstring\relax % <for starred sections>
+ \let\hbs@bmstring\relax % <for starred sections>
+ \@ifstar
+ {\itf@hbs@ssect#1}%
+ {\let\hbs@seccmd=#1\hbs@checkarg}%
+}% \itf@hbs@do
+\let\hbs@do\itf@hbs@do
% \end{macrocode}
% \end{macro}
%
@@ -3766,7 +3776,7 @@ turtle%
% \patchlabel[prepend]{hbs@process}
% \begin{macrocode}
\itf@patch\pretocmd\hbs@process{%
- \itf@hbs@next{#1}%
+ \itf@hbs@process{#1}%
}%
{\PackageInfo{interfaces-hypbmsec}
{Command \string\hbs@process\space successfully patched}}
@@ -3778,58 +3788,166 @@ turtle%
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\itf@hbs@next}
-% \begin{macrocode}
-\long\def\itf@hbs@next#1{%
- \csdef{itf@next\itf@tp title}{#1}%
- \expandafter\let\csname itf@next\itf@tp toc\expandafter\endcsname
- \csname
- \ifx\hbs@tocstring\relax itf@next\itf@tp title\else
- hbs@tocstring\fi
- \endcsname
- \expandafter\let\csname itf@next\itf@tp bookmark\expandafter\endcsname
- \csname
- \ifx\hbs@bmstring\relax itf@next\itf@tp toc\else
- hbs@bmstring\fi
- \endcsname
- \expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter
- \expandafter\itf@hbs@chkclass
- \expandafter\expandafter\expandafter\string
- \expandafter\hbs@seccmd\string\ttl@\@nil
- {\expandafter\itf@last@from@next\expandafter{\itf@tp}}%
-}% \itf@hbs@next
-\long\expandafter\def\expandafter\itf@hbs@chkclass
- \expandafter#\expandafter1\string\ttl@#2\@nil{%
- \ifblank{#1}{\if@nobreak\itf@hbs@nobreakfix#2\@nnil\fi}%
-}% \itf@hbs@chkclass
-\def\itf@hbs@nobreakfix#1#{\itf@hbs@n@breakfix}
-\def\itf@hbs@n@breakfix#1#2\@nnil{%
- \unless\ifx\lastsectionname\relax
- \unless\ifnum\csname ttll@#1\endcsname > \csname ttll@\lastsectionname\endcsname\relax
- \@nobreakfalse
- \fi\fi
-}% \itf@hbs@nobreakfix
+% \begin{macro}{\itf@hbs@ssect}
+%
+% For starred sections:
+%
+% \begin{macrocode}
+\long\def\itf@hbs@ssect#1#2{% starred section
+ \itf@Not@titlesec#1
+ {\expandafter\itf@hbs@last@starred\expandafter{\itf@hbs@currentname}{#2}}
+ {\let\itf@hbs@last\itf@hbs@last@starred@ttl}% <expanded at \ttl@finmarks>
+ #1*{#2}%
+}% \itf@hbs@ssect
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\itf@last@from@next}
-% \begin{macrocode}
-\def\itf@last@from@next#1{%
- \gdef\lastsectionname{#1}%
- \global\expandafter\let\csname last#1title\expandafter\endcsname
- \csname itf@next#1title\endcsname
- \global\expandafter\let\csname last#1toc\expandafter\endcsname
- \csname itf@next#1toc\endcsname
- \global\expandafter\let\csname last#1bookmark\expandafter\endcsname
- \csname itf@next#1bookmark\endcsname
- \let\@elt\itf@resetlastsections
- \csname cl@#1\endcsname
-}% \itf@last@from@next
+% \begin{macro}{\itf@hbs@process}
+%
+% For non-starred sections:
+%
+% \begin{macrocode}
+\long\def\itf@hbs@process#1{% not starred
+ \itf@Not@titlesec \hbs@seccmd
+ {%
+ \ifdefined\hyper@anchor
+ \expandafter\itf@hbs@last@nostar@nottl@Hy\expandafter{\itf@hbs@currentname}{#1}%
+ \else
+ \expandafter\itf@hbs@last@nostar@nottl\expandafter{\itf@hbs@currentname}{#1}%
+ \fi
+ }%
+ {\let\itf@hbs@last \itf@hbs@last@nostar@ttl}% <expanded at \ttl@finmarks>
+}% \itf@hbs@process
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\itf@hbs@last@starred}
+%
+% Update the values of \cs{lastsectiontitle} \etc. for starred sections:
+%
+% \begin{macrocode}
+\long\def\itf@hbs@last@starred#1#2{% <expanded immediately>
+ \GetTitleString{#2}\let\itf@hbs@currenttitle\GetTitleStringResult
+ \begingroup
+ \let\@elt \itf@resetlastsections
+ \globaldefs \@ne
+ \expandafter\let\csname last#1title\endcsname\itf@hbs@currenttitle
+ \expandafter\let\csname last#1toc\endcsname\@empty
+ \expandafter\let\csname last#1bookmark\endcsname\@empty
+ \expandafter\let\csname last#1anchor\endcsname\relax
+ \let\lastsectionname \itf@hbs@currentname
+ \csname cl@#1\endcsname
+ \endgroup
+}% \itf@hbs@last@starred
+\def\itf@hbs@last@starred@ttl{% <expanded at \ttl@finmarks>
+ \global\let\itf@hbs@last \@empty
+ \expandafter\itf@hbs@last@starred
+ \expandafter\itf@hbs@currentname \expandafter{\ttl@savetitle}%
+}% \itf@hbs@last@starred@ttl
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\itf@hbs@last@nostar}
+% \begin{macro}{\itf@hbs@last@nostar@ttl}
+% \begin{macro}{\itf@hbs@last@nostar@nottl}
+% \begin{macro}{\itf@hbs@last@nostar@nottl@Hy}
+%
+% Update de values of \cs{lastsectiontitle} \etc. for non-starred sections:
+%
+% \begin{macrocode}
+\long\def\itf@hbs@last@nostar#1#2{%
+ \GetTitleString{#2}\let\itf@hbs@currenttitle\GetTitleStringResult
+ \begingroup
+ \let\@elt \itf@resetlastsections
+ \globaldefs \@ne
+ \expandafter\let\csname last#1title\endcsname\itf@hbs@currenttitle
+ \expandafter\let\csname last#1toc\expandafter\endcsname
+ \csname \ifx\hbs@tocstring\relax
+ itf@hbs@currenttitle\else hbs@tocstring\fi \endcsname
+ \expandafter\let\csname last#1bookmark\expandafter\endcsname
+ \csname \ifx\hbs@bmstring\relax
+ last#1toc\else hbs@bmstring\fi \endcsname
+ \expandafter\let\csname last#1anchor\endcsname\HyperLocalCurrentHref
+ \let\lastsectionname \itf@hbs@currentname
+ \csname cl@#1\endcsname
+ \endgroup
+}% \itf@hbs@last@starred
+\def\itf@hbs@last@nostar@ttl{% <expanded at \ttl@finmarks>
+ \global\let\itf@hbs@last \@empty
+ \expandafter\itf@hbs@last@nostar
+ \expandafter\itf@hbs@currentname \expandafter{\ttl@savetitle}%
+}% \itf@hbs@last@nostar@ttl
+\long\def\itf@hbs@last@nostar@nottl#1#2{% <expanded at \cl@section>
+ \expandafter\let\expandafter\itf@hbs@cl@ORI\csname cl@#1\endcsname
+ \expandafter\def\csname cl@#1\endcsname{%
+ \expandafter\let\csname cl@#1\endcsname\itf@hbs@cl@ORI
+ \itf@hbs@cl@ORI
+ \itf@hbs@last@nostar {#1}{#2}}%
+}% \itf@hbs@last@nostar@nottl
+\long\def\itf@hbs@last@nostar@nottl@Hy#1#2{% <expanded at \hyper@anchorend>
+ \begingroup
+ \toks@\expandafter{%
+ \expandafter\def\expandafter\hyper@anchorend
+ \expandafter{\hyper@anchorend}%
+ \itf@hbs@last@nostar{#1}{#2}}%
+ \edef\x{\endgroup
+ \def\noexpand\hyper@anchorend{\the\toks@}%
+ }\x
+}% \itf@hbs@last@nostar@nottl@Hy
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\itf@Not@titlesec}
+%
+% Expands to \cs{@firstoftwo} if the section is not formatted by a class of \xpackage{titlesec} package.
+% Otherwise (\xpackage{titlesec} formats the given section): expands to \cs{@secondoftwo}.
+%
+% \begin{macrocode}
+\def\itf@Not@titlesec#1{\@firstoftwo}
+\AfterPackage*{titlesec}{%
+\def\itf@Not@titlesec#1{\begingroup
+ \@onelevel@sanitize#1%
+ \edef\@tempa{\noexpand\in@
+ {\noexpand\@nil \string\ttl@}
+ {\noexpand\@nil #1}%
+ }\@tempa
+ \expandafter\endgroup
+ \ifin@ \expandafter\@secondoftwo
+ \else \expandafter\@firstoftwo
+ \fi
+}% \itf@Not@titlesec
+}% AfterPackage titlesec
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\ttl@finmarks}
+%
+% When \xpackage{titlesec} is used, assignments to \cs{lastsectiontitle}, \cs{lastsubsectiontoc} \etc.
+% are done at this point.
+%
+% \begin{macrocode}
+\AfterPackage*{titlesec}{%
+\expandafter\def\expandafter\ttl@finmarks\expandafter{%
+ \expandafter\itf@hbs@last \ttl@finmarks}%
+\let\itf@hbs@last \@empty
+}% AfterPackage
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\itf@resetlastsections}
+%
+% Assignments are global (\cs{globaldefs}$ =1$).
+%
+% \begin{macrocode}
\def\itf@resetlastsections#1{%
\expandafter\let\csname last#1title\endcsname\relax
\expandafter\let\csname last#1toc\endcsname\relax
\expandafter\let\csname last#1bookmark\endcsname\relax
+ \expandafter\let\csname last#1anchor\endcsname\relax
\csname cl@#1\endcsname
}% \itf@resetlastsections
% \end{macrocode}
@@ -3838,19 +3956,21 @@ turtle%
% \begin{macrocode}
\let\lastsectionname\relax
\@for\itf@tp:=part,section,subsection,subsubsection,paragraph,subparagraph%
- \do{\expandafter\let\csname last\itf@tp title\endcsname\relax
+ \do{\expandafter\let\csname last\itf@tp title\endcsname\relax
\expandafter\let\csname last\itf@tp toc\endcsname\relax
\expandafter\let\csname last\itf@tp bookmark\endcsname\relax
+ \expandafter\let\csname last\itf@tp anchor\endcsname\relax
}%
\AtBeginDocument{\ifundef\chapter{}
{\let\lastchaptertitle\relax
\let\lastchaptertoc\relax
- \let\lastchapterbookmark\relax}%
+ \let\lastchapterbookmark\relax
+ \let\lastchapteranchor\relax}%
}%
% \end{macrocode}
%
% \begin{macrocode}
-%</hypbmsec.code.tex>
+%</hypbmsec>
% \end{macrocode}
%
% \Subsection[fancyhdr]
@@ -3858,7 +3978,7 @@ turtle%
% \begin{macrocode}
%<*fancyhdr>
\ProvidesPackage{interfaces-fancyhdr}
- [2010/11/21 v2.3 pgfkeys macros for fancyhdr (FC)]
+ [2010/11/26 v2.4 pgfkeys macros for fancyhdr (FC)]
\RequirePackage{interfaces-base}
\itf@Check@Package{fancyhdr}
\itf@pgfkeys
@@ -4000,18 +4120,21 @@ turtle%
font/.style={head/font={#1},foot/font={#1}},%
font+/.style={head/font+={#1},foot/font+={#1}},%
font*/.alias=font+,%
- color/.style={head/color={#1},foot/color={#1},head/rule/color={#1},foot/rule/color={#1}},%
+ color/.style={head/color={#1},foot/color={#1},%
+ head/rule/color={#1},foot/rule/color={#1}},%
head/.style={head/left={#1},head/center={#1},head/right={#1}},%
- head/font/.style={head/left/font={#1},head/center/font={#1},head/right/font={#1}},%
- head/font+/.style={head/left/font+={#1},head/center/font+={#1},head/right/font+={#1}},%
- head/font*/.alias=head/font+,%
- head/color/.style={head/left/color={#1},head/center/color={#1},head/right/color={#1},head/rule/color={#1}},%
+ head/font/.style={head/left/font={#1},head/center/font={#1},head/right/font={#1}},%
+ head/font+/.style={head/left/font+={#1},head/center/font+={#1},head/right/font+={#1}},%
+ head/font*/.alias=head/font+,%
+ head/color/.style={head/left/color={#1},head/center/color={#1},head/right/color={#1},%
+ head/rule/color={#1}},%
nohead/.style={head=,head/font=,head/rule=,head/rule/font=},
foot/.style={foot/left={#1},foot/center={#1},foot/right={#1}},%
- foot/font/.style={foot/left/font={#1},foot/center/font={#1},foot/right/font={#1}},%
- foot/font+/.style={foot/left/font+={#1},foot/center/font+={#1},foot/right/font+={#1}},%
- foot/font*/.alias=foot/font+,%
- foot/color/.style={foot/left/color={#1},foot/center/color={#1},foot/right/color={#1},foot/rule/color={#1}},%
+ foot/font/.style={foot/left/font={#1},foot/center/font={#1},foot/right/font={#1}},%
+ foot/font+/.style={foot/left/font+={#1},foot/center/font+={#1},foot/right/font+={#1}},%
+ foot/font*/.alias=foot/font+,%
+ foot/color/.style={foot/left/color={#1},foot/center/color={#1},foot/right/color={#1},%
+ foot/rule/color={#1}},%
nofoot/.style={foot=,foot/font=,foot/rule=,foot/rule/font=},
left/.style={head/left={#1},foot/left={#1}},%
left/font/.style={head/left/font={#1},foot/left/font={#1}},%
@@ -4080,146 +4203,260 @@ turtle%
head/left/odd/font/.store as code,%
head/left/odd/color/.style={head/left/odd/font+=\color{#1}},%
head/odd/left/.alias=head/left/odd,%
- head/odd/left/font/.alias*=head/left/odd/font,%
- head/odd/left/color/.alias=head/left/odd/color,%
odd/head/left/.alias=head/left/odd,%
- odd/head/left/font/.alias*=head/left/odd/font,%
- odd/head/left/color/.alias=head/left/odd/color,%
odd/left/head/.alias=head/left/odd,%
+ left/odd/head/.alias=head/left/odd,%
+ left/head/odd/.alias=head/left/odd,%
+ head/odd/left/font/.alias*=head/left/odd/font,%
+ odd/head/left/font/.alias*=head/left/odd/font,%
odd/left/head/font/.alias*=head/left/odd/font,%
+ left/odd/head/font/.alias*=head/left/odd/font,%
+ left/head/odd/font/.alias*=head/left/odd/font,%
+ head/odd/left/color/.alias=head/left/odd/color,%
+ odd/head/left/color/.alias=head/left/odd/color,%
odd/left/head/color/.alias=head/left/odd/color,%
+ left/odd/head/color/.alias=head/left/odd/color,%
+ left/head/odd/color/.alias=head/left/odd/color,%
head/center/odd/.fancy@hf=och,%
head/center/odd/font/.store as code,%
head/center/odd/color/.style={head/center/odd/font+=\color{#1}},%
head/odd/center/.alias=head/center/odd,%
- head/odd/center/font/.alias*=head/center/odd/font,%
- head/odd/center/color/.alias=head/center/odd/color,%
odd/head/center/.alias=head/center/odd,%
- odd/head/center/font/.alias*=head/center/odd/font,%
- odd/head/center/color/.alias=head/center/odd/color,%
odd/center/head/.alias=head/center/odd,%
+ center/odd/head/.alias=head/center/odd,%
+ center/head/odd/.alias=head/center/odd,%
+ head/odd/center/font/.alias*=head/center/odd/font,%
+ odd/head/center/font/.alias*=head/center/odd/font,%
odd/center/head/font/.alias*=head/center/odd/font,%
+ center/odd/head/font/.alias*=head/center/odd/font,%
+ center/head/odd/font/.alias*=head/center/odd/font,%
+ head/odd/center/color/.alias=head/center/odd/color,%
+ odd/head/center/color/.alias=head/center/odd/color,%
odd/center/head/color/.alias=head/center/odd/color,%
+ center/odd/head/color/.alias=head/center/odd/color,%
+ center/head/odd/color/.alias=head/center/odd/color,%
head/right/odd/.fancy@hf=orh,%
head/right/odd/font/.store as code,%
head/right/odd/color/.style={head/right/odd/font+=\color{#1}},%
head/odd/right/.alias=head/right/odd,%
- head/odd/right/font/.alias*=head/right/odd/font,%
- head/odd/right/color/.alias=head/right/odd/color,%
odd/head/right/.alias=head/right/odd,%
- odd/head/right/font/.alias*=head/right/odd/font,%
- odd/head/right/color/.alias=head/right/odd/color,%
odd/right/head/.alias=head/right/odd,%
+ right/odd/head/.alias=head/right/odd,%
+ right/head/odd/.alias=head/right/odd,%
+ head/odd/right/font/.alias*=head/right/odd/font,%
+ odd/head/right/font/.alias*=head/right/odd/font,%
odd/right/head/font/.alias*=head/right/odd/font,%
+ right/odd/head/font/.alias*=head/right/odd/font,%
+ right/head/odd/font/.alias*=head/right/odd/font,%
+ head/odd/right/color/.alias=head/right/odd/color,%
+ odd/head/right/color/.alias=head/right/odd/color,%
odd/right/head/color/.alias=head/right/odd/color,%
+ right/odd/head/color/.alias=head/right/odd/color,%
+ right/head/odd/color/.alias=head/right/odd/color,%
head/left/even/.fancy@hf=elh,%
head/left/even/font/.store as code,%
head/left/even/color/.style={head/left/even/font+=\color{#1}},%
head/even/left/.alias=head/left/even,%
- head/even/left/font/.alias*=head/left/even/font,%
- head/even/left/color/.alias=head/left/even/color,%
even/head/left/.alias=head/left/even,%
- even/head/left/font/.alias*=head/left/even/font,%
- even/head/left/color/.alias=head/left/even/color,%
even/left/head/.alias=head/left/even,%
+ left/even/head/.alias=head/left/even,%
+ left/head/even/.alias=head/left/even,%
+ head/even/left/font/.alias*=head/left/even/font,%
+ even/head/left/font/.alias*=head/left/even/font,%
even/left/head/font/.alias*=head/left/even/font,%
+ left/even/head/font/.alias*=head/left/even/font,%
+ left/head/even/font/.alias*=head/left/even/font,%
+ head/even/left/color/.alias=head/left/even/color,%
+ even/head/left/color/.alias=head/left/even/color,%
even/left/head/color/.alias=head/left/even/color,%
+ left/even/head/color/.alias=head/left/even/color,%
+ left/head/even/color/.alias=head/left/even/color,%
head/center/even/.fancy@hf=ech,%
head/center/even/font/.store as code,%
head/center/even/color/.style={head/center/even/font+=\color{#1}},%
head/even/center/.alias=head/center/even,%
- head/even/center/font/.alias*=head/center/even/font,%
- head/even/center/color/.alias=head/center/even/color,%
even/head/center/.alias=head/center/even,%
- even/head/center/font/.alias*=head/center/even/font,%
- even/head/center/color/.alias=head/center/even/color,%
even/center/head/.alias=head/center/even,%
+ center/even/head/.alias=head/center/even,%
+ center/head/even/.alias=head/center/even,%
+ head/even/center/font/.alias*=head/center/even/font,%
+ even/head/center/font/.alias*=head/center/even/font,%
even/center/head/font/.alias*=head/center/even/font,%
+ center/even/head/font/.alias*=head/center/even/font,%
+ center/head/even/font/.alias*=head/center/even/font,%
+ head/even/center/color/.alias=head/center/even/color,%
+ even/head/center/color/.alias=head/center/even/color,%
even/center/head/color/.alias=head/center/even/color,%
+ center/even/head/color/.alias=head/center/even/color,%
+ center/head/even/color/.alias=head/center/even/color,%
head/right/even/.fancy@hf=erh,%
head/right/even/font/.store as code,%
head/right/even/color/.style={head/right/even/font+=\color{#1}},%
head/even/right/.alias=head/right/even,%
- head/even/right/font/.alias*=head/right/even/font,%
- head/even/right/color/.alias=head/right/even/color,%
even/head/right/.alias=head/right/even,%
- even/head/right/font/.alias*=head/right/even/font,%
- even/head/right/color/.alias=head/right/even/color,%
even/right/head/.alias=head/right/even,%
+ right/even/head/.alias=head/right/even,%
+ right/head/even/.alias=head/right/even,%
+ head/even/right/font/.alias*=head/right/even/font,%
+ even/head/right/font/.alias*=head/right/even/font,%
even/right/head/font/.alias*=head/right/even/font,%
+ right/even/head/font/.alias*=head/right/even/font,%
+ right/head/even/font/.alias*=head/right/even/font,%
+ head/even/right/color/.alias=head/right/even/color,%
+ even/head/right/color/.alias=head/right/even/color,%
even/right/head/color/.alias=head/right/even/color,%
+ right/even/head/color/.alias=head/right/even/color,%
+ right/head/even/color/.alias=head/right/even/color,%
foot/left/odd/.fancy@hf=olf,%
foot/left/odd/font/.store as code,%
foot/left/odd/color/.style={foot/left/odd/font+=\color{#1}},%
foot/odd/left/.alias=foot/left/odd,%
- foot/odd/left/font/.alias*=foot/left/odd/font,%
- foot/odd/left/color/.alias=foot/left/odd/color,%
odd/foot/left/.alias=foot/left/odd,%
- odd/foot/left/font/.alias*=foot/left/odd/font,%
- odd/foot/left/color/.alias=foot/left/odd/color,%
odd/left/foot/.alias=foot/left/odd,%
+ left/odd/foot/.alias=foot/left/odd,%
+ left/foot/odd/.alias=foot/left/odd,%
+ foot/odd/left/font/.alias*=foot/left/odd/font,%
+ odd/foot/left/font/.alias*=foot/left/odd/font,%
odd/left/foot/font/.alias*=foot/left/odd/font,%
+ left/odd/foot/font/.alias*=foot/left/odd/font,%
+ left/foot/odd/font/.alias*=foot/left/odd/font,%
+ foot/odd/left/color/.alias=foot/left/odd/color,%
+ odd/foot/left/color/.alias=foot/left/odd/color,%
odd/left/foot/color/.alias=foot/left/odd/color,%
+ left/odd/foot/color/.alias=foot/left/odd/color,%
+ left/foot/odd/color/.alias=foot/left/odd/color,%
foot/center/odd/.fancy@hf=ocf,%
foot/center/odd/font/.store as code,%
foot/center/odd/color/.style={foot/center/odd/font+=\color{#1}},%
foot/odd/center/.alias=foot/center/odd,%
- foot/odd/center/font/.alias*=foot/center/odd/font,%
- foot/odd/center/color/.alias=foot/center/odd/color,%
odd/foot/center/.alias=foot/center/odd,%
- odd/foot/center/font/.alias*=foot/center/odd/font,%
- odd/foot/center/color/.alias=foot/center/odd/color,%
odd/center/foot/.alias=foot/center/odd,%
+ center/odd/foot/.alias=foot/center/odd,%
+ center/foot/odd/.alias=foot/center/odd,%
+ foot/odd/center/font/.alias*=foot/center/odd/font,%
+ odd/foot/center/font/.alias*=foot/center/odd/font,%
odd/center/foot/font/.alias*=foot/center/odd/font,%
+ center/odd/foot/font/.alias*=foot/center/odd/font,%
+ center/foot/odd/font/.alias*=foot/center/odd/font,%
+ foot/odd/center/color/.alias=foot/center/odd/color,%
+ odd/foot/center/color/.alias=foot/center/odd/color,%
odd/center/foot/color/.alias=foot/center/odd/color,%
+ center/odd/foot/color/.alias=foot/center/odd/color,%
+ center/foot/odd/color/.alias=foot/center/odd/color,%
foot/right/odd/.fancy@hf=orf,%
foot/right/odd/font/.store as code,%
foot/right/odd/color/.style={foot/right/odd/font+=\color{#1}},%
foot/odd/right/.alias=foot/right/odd,%
- foot/odd/right/font/.alias*=foot/right/odd/font,%
- foot/odd/right/color/.alias=foot/right/odd/color,%
odd/foot/right/.alias=foot/right/odd,%
- odd/foot/right/font/.alias*=foot/right/odd/font,%
- odd/foot/right/color/.alias=foot/right/odd/color,%
odd/right/foot/.alias=foot/right/odd,%
+ right/odd/foot/.alias=foot/right/odd,%
+ right/foot/odd/.alias=foot/right/odd,%
+ foot/odd/right/font/.alias*=foot/right/odd/font,%
+ odd/foot/right/font/.alias*=foot/right/odd/font,%
odd/right/foot/font/.alias*=foot/right/odd/font,%
+ right/odd/foot/font/.alias*=foot/right/odd/font,%
+ right/foot/odd/font/.alias*=foot/right/odd/font,%
+ foot/odd/right/color/.alias=foot/right/odd/color,%
+ odd/foot/right/color/.alias=foot/right/odd/color,%
odd/right/foot/color/.alias=foot/right/odd/color,%
+ right/odd/foot/color/.alias=foot/right/odd/color,%
+ right/foot/odd/color/.alias=foot/right/odd/color,%
foot/left/even/.fancy@hf=elf,%
foot/left/even/font/.store as code,%
foot/left/even/color/.style={foot/left/even/font+=\color{#1}},%
foot/even/left/.alias=foot/left/even,%
- foot/even/left/font/.alias*=foot/left/even/font,%
- foot/even/left/color/.alias=foot/left/even/color,%
even/foot/left/.alias=foot/left/even,%
- even/foot/left/font/.alias*=foot/left/even/font,%
- even/foot/left/color/.alias=foot/left/even/color,%
even/left/foot/.alias=foot/left/even,%
+ left/even/foot/.alias=foot/left/even,%
+ left/foot/even/.alias=foot/left/even,%
+ foot/even/left/font/.alias*=foot/left/even/font,%
+ even/foot/left/font/.alias*=foot/left/even/font,%
even/left/foot/font/.alias*=foot/left/even/font,%
+ left/even/foot/font/.alias*=foot/left/even/font,%
+ left/foot/even/font/.alias*=foot/left/even/font,%
+ foot/even/left/color/.alias=foot/left/even/color,%
+ even/foot/left/color/.alias=foot/left/even/color,%
even/left/foot/color/.alias=foot/left/even/color,%
+ left/even/foot/color/.alias=foot/left/even/color,%
+ left/foot/even/color/.alias=foot/left/even/color,%
foot/center/even/.fancy@hf=ecf,%
foot/center/even/font/.store as code,%
foot/center/even/color/.style={foot/center/even/font+=\color{#1}},%
foot/even/center/.alias=foot/center/even,%
- foot/even/center/font/.alias*=foot/center/even/font,%
- foot/even/center/color/.alias=foot/center/even/color,%
even/foot/center/.alias=foot/center/even,%
- even/foot/center/font/.alias*=foot/center/even/font,%
- even/foot/center/color/.alias=foot/center/even/color,%
even/center/foot/.alias=foot/center/even,%
+ center/even/foot/.alias=foot/center/even,%
+ center/foot/even/.alias=foot/center/even,%
+ foot/even/center/font/.alias*=foot/center/even/font,%
+ even/foot/center/font/.alias*=foot/center/even/font,%
even/center/foot/font/.alias*=foot/center/even/font,%
+ center/even/foot/font/.alias*=foot/center/even/font,%
+ center/foot/even/font/.alias*=foot/center/even/font,%
+ foot/even/center/color/.alias=foot/center/even/color,%
+ even/foot/center/color/.alias=foot/center/even/color,%
even/center/foot/color/.alias=foot/center/even/color,%
+ center/even/foot/color/.alias=foot/center/even/color,%
+ center/foot/even/color/.alias=foot/center/even/color,%
foot/right/even/.fancy@hf=erf,%
foot/right/even/font/.store as code,%
foot/right/even/color/.style={foot/right/even/font+=\color{#1}},%
foot/even/right/.alias=foot/right/even,%
- foot/even/right/font/.alias*=foot/right/even/font,%
- foot/even/right/color/.alias=foot/right/even/color,%
even/foot/right/.alias=foot/right/even,%
- even/foot/right/font/.alias*=foot/right/even/font,%
- even/foot/right/color/.alias=foot/right/even/color,%
even/right/foot/.alias=foot/right/even,%
+ right/even/foot/.alias=foot/right/even,%
+ right/foot/even/.alias=foot/right/even,%
+ foot/even/right/font/.alias*=foot/right/even/font,%
+ even/foot/right/font/.alias*=foot/right/even/font,%
even/right/foot/font/.alias*=foot/right/even/font,%
+ right/even/foot/font/.alias*=foot/right/even/font,%
+ right/foot/even/font/.alias*=foot/right/even/font,%
+ foot/even/right/color/.alias=foot/right/even/color,%
+ even/foot/right/color/.alias=foot/right/even/color,%
even/right/foot/color/.alias=foot/right/even/color,%
+ right/even/foot/color/.alias=foot/right/even/color,%
+ right/foot/even/color/.alias=foot/right/even/color,%
+ foot/inner/.style={foot/right/even={#1},foot/left/odd={#1}},%
+ foot/inner/font/.style={foot/right/even/font={#1},foot/left/odd/font={#1}},%
+ foot/inner/color/.style={foot/right/even/color={#1},foot/left/odd/color={#1}},%
+ foot/inner/font+/.style={foot/right/even/font+={#1},foot/left/odd/font+={#1}},%
+ foot/inner/font*/.alias=foot/inner/font+,%
+ inner/foot/.alias=foot/inner,%
+ inner/foot/font/.alias*=foot/inner/font,%
+ inner/foot/color/.alias=foot/inner/color,%
+ foot/outer/.style={foot/left/even={#1},foot/right/odd={#1}},%
+ foot/outer/font/.style={foot/left/even/font={#1},foot/right/odd/font={#1}},%
+ foot/outer/color/.style={foot/left/even/color={#1},foot/right/odd/color={#1}},%
+ foot/outer/font+/.style={foot/left/even/font+={#1},foot/right/odd/font+={#1}},%
+ foot/outer/font*/.alias=foot/outer/font+,%
+ outer/foot/.alias=foot/outer,%
+ outer/foot/font/.alias*=foot/outer/font,%
+ outer/foot/color/.alias=foot/outer/color,%
+ head/inner/.style={head/right/even={#1},head/left/odd={#1}},%
+ head/inner/font/.style={head/right/even/font={#1},head/left/odd/font={#1}},%
+ head/inner/color/.style={head/right/even/color={#1},head/left/odd/color={#1}},%
+ head/inner/font+/.style={head/right/even/font+={#1},head/left/odd/font+={#1}},%
+ head/inner/font*/.alias=head/inner/font+,%
+ inner/head/.alias=head/inner,%
+ inner/head/font/.alias*=head/inner/font,%
+ inner/head/color/.alias=head/inner/color,%
+ head/outer/.style={head/left/even={#1},head/right/odd={#1}},%
+ head/outer/font/.style={head/left/even/font={#1},head/right/odd/font={#1}},%
+ head/outer/color/.style={head/left/even/color={#1},head/right/odd/color={#1}},%
+ head/outer/font+/.style={head/left/even/font+={#1},head/right/odd/font+={#1}},%
+ head/outer/font*/.alias=head/outer/font+,%
+ outer/head/.alias=head/outer,%
+ outer/head/font/.alias*=head/outer/font,%
+ outer/head/color/.alias=head/outer/color,%
+ inner/.style={foot/inner={#1},head/inner={#1}},%
+ inner/font/.style={foot/inner/font={#1},head/inner/font={#1}},%
+ inner/font+/.style={foot/inner/font+={#1},head/inner/font+={#1}},%
+ inner/font*/.alias=inner/font+,%
+ inner/color/.style={foot/inner/color={#1},head/inner/color={#1}},%
+ outer/.style={foot/outer={#1},head/outer={#1}},%
+ outer/font/.style={foot/outer/font={#1},head/outer/font={#1}},%
+ outer/font+/.style={foot/outer/font+={#1},head/outer/font+={#1}},%
+ outer/font*/.alias=outer/font+,%
+ outer/color/.style={foot/outer/color={#1},head/outer/color={#1}},%
offset/.style={head/offset={#1},foot/offset={#1}},%
offset+/.style={head/offset+={#1},foot/offset+={#1}},%
offset-/.style={head/offset-={#1},foot/offset-={#1}},%
@@ -4251,14 +4488,18 @@ turtle%
left/even/offset+/.style={foot/left/even/offset+={#1},head/left/even/offset+={#1}},%
left/even/offset-/.style={foot/left/even/offset-={#1},head/left/even/offset-={#1}},%
left/even/offset*/.style={foot/left/even/offset*={#1},head/left/even/offset*={#1}},%
+ left/offset/even/.alias*=left/even/offset,%
even/left/offset/.alias*=left/even/offset,%
+ even/offset/left/.alias*=left/even/offset,%
offset/even/left/.alias*=left/even/offset,%
offset/left/even/.alias*=left/even/offset,%
left/odd/offset/.style={foot/left/odd/offset={#1},head/left/odd/offset={#1}},%
left/odd/offset+/.style={foot/left/odd/offset+={#1},head/left/odd/offset+={#1}},%
left/odd/offset-/.style={foot/left/odd/offset-={#1},head/left/odd/offset-={#1}},%
left/odd/offset*/.style={foot/left/odd/offset*={#1},head/left/odd/offset*={#1}},%
+ left/offset/odd/.alias*=left/odd/offset,%
odd/left/offset/.alias*=left/odd/offset,%
+ odd/offset/left/.alias*=left/odd/offset,%
offset/odd/left/.alias*=left/odd/offset,%
offset/left/odd/.alias*=left/odd/offset,%
right/offset/.style={foot/right/offset={#1},head/right/offset={#1}},%
@@ -4267,127 +4508,305 @@ turtle%
right/offset*/.style={foot/right/offset*={#1},head/right/offset*={#1}},%
offset/right/.alias*=right/offset,%
right/even/offset/.style={foot/right/even/offset={#1},head/right/even/offset={#1}},%
- right/even/offset+/.style={foot/right/even/offset+={#1},head/right/even/offset+={#1}},%
- right/even/offset-/.style={foot/right/even/offset-={#1},head/right/even/offset-={#1}},%
- right/even/offset*/.style={foot/right/even/offset*={#1},head/right/even/offset*={#1}},%
+ right/even/offset+/.style={foot/right/even/offset+={#1},head/right/even/offset+={#1}},%
+ right/even/offset-/.style={foot/right/even/offset-={#1},head/right/even/offset-={#1}},%
+ right/even/offset*/.style={foot/right/even/offset*={#1},head/right/even/offset*={#1}},%
+ right/offset/even/.alias*=right/even/offset,%
even/right/offset/.alias*=right/even/offset,%
+ even/offset/right/.alias*=right/even/offset,%
offset/even/right/.alias*=right/even/offset,%
offset/right/even/.alias*=right/even/offset,%
right/odd/offset/.style={foot/right/odd/offset={#1},head/right/odd/offset={#1}},%
right/odd/offset+/.style={foot/right/odd/offset+={#1},head/right/odd/offset+={#1}},%
right/odd/offset-/.style={foot/right/odd/offset-={#1},head/right/odd/offset-={#1}},%
right/odd/offset*/.style={foot/right/odd/offset*={#1},head/right/odd/offset*={#1}},%
+ right/offset/odd/.alias*=right/odd/offset,%
odd/right/offset/.alias*=right/odd/offset,%
+ odd/offset/right/.alias*=right/odd/offset,%
offset/odd/right/.alias*=right/odd/offset,%
offset/right/odd/.alias*=right/odd/offset,%
head/left/offset/.style={head/left/even/offset={#1},head/left/odd/offset={#1}},%
head/left/offset+/.style={head/left/even/offset+={#1},head/left/odd/offset+={#1}},%
head/left/offset-/.style={head/left/even/offset-={#1},head/left/odd/offset-={#1}},%
head/left/offset*/.style={head/left/even/offset*={#1},head/left/odd/offset*={#1}},%
+ head/offset/left/.alias*=head/left/offset,%
+ left/head/offset/.alias*=head/left/offset,%
+ left/offset/head/.alias*=head/left/offset,%
offset/head/left/.alias*=head/left/offset,%
offset/left/head/.alias*=head/left/offset,%
- left/head/offset/.alias*=head/left/offset,%
head/right/offset/.style={head/right/even/offset={#1},head/right/odd/offset={#1}},%
- head/right/offset+/.style={head/right/even/offset+={#1},head/right/odd/offset+={#1}},%
- head/right/offset-/.style={head/right/even/offset-={#1},head/right/odd/offset-={#1}},%
- head/right/offset*/.style={head/right/even/offset*={#1},head/right/odd/offset*={#1}},%
+ head/right/offset+/.style={head/right/even/offset+={#1},head/right/odd/offset+={#1}},%
+ head/right/offset-/.style={head/right/even/offset-={#1},head/right/odd/offset-={#1}},%
+ head/right/offset*/.style={head/right/even/offset*={#1},head/right/odd/offset*={#1}},%
+ head/offset/right/.alias*=head/right/offset,%
+ right/head/offset/.alias*=head/right/offset,%
+ right/offset/head/.alias*=head/right/offset,%
offset/head/right/.alias*=head/right/offset,%
offset/right/head/.alias*=head/right/offset,%
- right/head/offset/.alias*=head/right/offset,%
foot/left/offset/.style={foot/left/even/offset={#1},foot/left/odd/offset={#1}},%
foot/left/offset+/.style={foot/left/even/offset+={#1},foot/left/odd/offset+={#1}},%
foot/left/offset-/.style={foot/left/even/offset-={#1},foot/left/odd/offset-={#1}},%
foot/left/offset*/.style={foot/left/even/offset*={#1},foot/left/odd/offset*={#1}},%
+ foot/offset/left/.alias*=foot/left/offset,%
+ left/foot/offset/.alias*=foot/left/offset,%
+ left/offset/foot/.alias*=foot/left/offset,%
offset/foot/left/.alias*=foot/left/offset,%
offset/left/foot/.alias*=foot/left/offset,%
- left/foot/offset/.alias*=foot/left/offset,%
foot/right/offset/.style={foot/right/even/offset={#1},foot/right/odd/offset={#1}},%
- foot/right/offset+/.style={foot/right/even/offset+={#1},foot/right/odd/offset+={#1}},%
- foot/right/offset-/.style={foot/right/even/offset-={#1},foot/right/odd/offset-={#1}},%
- foot/right/offset*/.style={foot/right/even/offset*={#1},foot/right/odd/offset*={#1}},%
+ foot/right/offset+/.style={foot/right/even/offset+={#1},foot/right/odd/offset+={#1}},%
+ foot/right/offset-/.style={foot/right/even/offset-={#1},foot/right/odd/offset-={#1}},%
+ foot/right/offset*/.style={foot/right/even/offset*={#1},foot/right/odd/offset*={#1}},%
+ foot/offset/right/.alias*=foot/right/offset,%
+ right/foot/offset/.alias*=foot/right/offset,%
+ right/offset/foot/.alias*=foot/right/offset,%
offset/foot/right/.alias*=foot/right/offset,%
offset/right/foot/.alias*=foot/right/offset,%
- right/foot/offset/.alias*=foot/right/offset,%
head/left/even/offset/.store in skip cs=f@ncyO@elh,%
head/left/even/offset/.append code=\fancy@setoffs,%
+ head/even/offset/left/.alias*=head/left/even/offset,%
+ head/even/left/offset/.alias*=head/left/even/offset,%
+ head/offset/even/left/.alias*=head/left/even/offset,%
+ head/offset/left/even/.alias*=head/left/even/offset,%
+ head/left/offset/even/.alias*=head/left/even/offset,%
+ left/head/offset/even/.alias*=head/left/even/offset,%
+ left/head/even/offset/.alias*=head/left/even/offset,%
+ left/offset/head/even/.alias*=head/left/even/offset,%
+ left/offset/even/head/.alias*=head/left/even/offset,%
+ left/even/offset/head/.alias*=head/left/even/offset,%
+ left/even/head/offset/.alias*=head/left/even/offset,%
+ even/head/offset/left/.alias*=head/left/even/offset,%
+ even/head/left/offset/.alias*=head/left/even/offset,%
+ even/offset/head/left/.alias*=head/left/even/offset,%
+ even/offset/left/head/.alias*=head/left/even/offset,%
+ even/left/offset/head/.alias*=head/left/even/offset,%
+ even/left/head/offset/.alias*=head/left/even/offset,%
offset/head/left/even/.alias*=head/left/even/offset,%
offset/head/even/left/.alias*=head/left/even/offset,%
offset/left/head/even/.alias*=head/left/even/offset,%
offset/left/even/head/.alias*=head/left/even/offset,%
offset/even/left/head/.alias*=head/left/even/offset,%
offset/even/head/left/.alias*=head/left/even/offset,%
- left/even/head/offset/.alias*=head/left/even/offset,%
- left/head/even/offset/.alias*=head/left/even/offset,%
head/left/odd/offset/.store in skip cs=f@ncyO@olh,%
head/left/odd/offset/.append code=\fancy@setoffs,%
+ head/odd/offset/left/.alias*=head/left/odd/offset,%
+ head/odd/left/offset/.alias*=head/left/odd/offset,%
+ head/offset/odd/left/.alias*=head/left/odd/offset,%
+ head/offset/left/odd/.alias*=head/left/odd/offset,%
+ head/left/offset/odd/.alias*=head/left/odd/offset,%
+ left/head/offset/odd/.alias*=head/left/odd/offset,%
+ left/head/odd/offset/.alias*=head/left/odd/offset,%
+ left/offset/head/odd/.alias*=head/left/odd/offset,%
+ left/offset/odd/head/.alias*=head/left/odd/offset,%
+ left/odd/offset/head/.alias*=head/left/odd/offset,%
+ left/odd/head/offset/.alias*=head/left/odd/offset,%
+ odd/head/offset/left/.alias*=head/left/odd/offset,%
+ odd/head/left/offset/.alias*=head/left/odd/offset,%
+ odd/offset/head/left/.alias*=head/left/odd/offset,%
+ odd/offset/left/head/.alias*=head/left/odd/offset,%
+ odd/left/offset/head/.alias*=head/left/odd/offset,%
+ odd/left/head/offset/.alias*=head/left/odd/offset,%
offset/head/left/odd/.alias*=head/left/odd/offset,%
offset/head/odd/left/.alias*=head/left/odd/offset,%
offset/left/head/odd/.alias*=head/left/odd/offset,%
offset/left/odd/head/.alias*=head/left/odd/offset,%
offset/odd/left/head/.alias*=head/left/odd/offset,%
offset/odd/head/left/.alias*=head/left/odd/offset,%
- left/odd/head/offset/.alias*=head/left/odd/offset,%
- left/head/odd/offset/.alias*=head/left/odd/offset,%
head/right/even/offset/.store in skip cs=f@ncyO@erh,%
head/right/even/offset/.append code=\fancy@setoffs,%
+ head/even/offset/right/.alias*=head/right/even/offset,%
+ head/even/right/offset/.alias*=head/right/even/offset,%
+ head/offset/even/right/.alias*=head/right/even/offset,%
+ head/offset/right/even/.alias*=head/right/even/offset,%
+ head/right/offset/even/.alias*=head/right/even/offset,%
+ right/head/offset/even/.alias*=head/right/even/offset,%
+ right/head/even/offset/.alias*=head/right/even/offset,%
+ right/offset/head/even/.alias*=head/right/even/offset,%
+ right/offset/even/head/.alias*=head/right/even/offset,%
+ right/even/offset/head/.alias*=head/right/even/offset,%
+ right/even/head/offset/.alias*=head/right/even/offset,%
+ even/head/offset/right/.alias*=head/right/even/offset,%
+ even/head/right/offset/.alias*=head/right/even/offset,%
+ even/offset/head/right/.alias*=head/right/even/offset,%
+ even/offset/right/head/.alias*=head/right/even/offset,%
+ even/right/offset/head/.alias*=head/right/even/offset,%
+ even/right/head/offset/.alias*=head/right/even/offset,%
offset/head/right/even/.alias*=head/right/even/offset,%
offset/head/even/right/.alias*=head/right/even/offset,%
offset/right/head/even/.alias*=head/right/even/offset,%
offset/right/even/head/.alias*=head/right/even/offset,%
offset/even/right/head/.alias*=head/right/even/offset,%
offset/even/head/right/.alias*=head/right/even/offset,%
- right/even/head/offset/.alias*=head/right/even/offset,%
- right/head/even/offset/.alias*=head/right/even/offset,%
head/right/odd/offset/.store in skip cs=f@ncyO@orh,%
head/right/odd/offset/.append code=\fancy@setoffs,%
+ head/odd/offset/right/.alias*=head/right/odd/offset,%
+ head/odd/right/offset/.alias*=head/right/odd/offset,%
+ head/offset/odd/right/.alias*=head/right/odd/offset,%
+ head/offset/right/odd/.alias*=head/right/odd/offset,%
+ head/right/offset/odd/.alias*=head/right/odd/offset,%
+ right/head/offset/odd/.alias*=head/right/odd/offset,%
+ right/head/odd/offset/.alias*=head/right/odd/offset,%
+ right/offset/head/odd/.alias*=head/right/odd/offset,%
+ right/offset/odd/head/.alias*=head/right/odd/offset,%
+ right/odd/offset/head/.alias*=head/right/odd/offset,%
+ right/odd/head/offset/.alias*=head/right/odd/offset,%
+ odd/head/offset/right/.alias*=head/right/odd/offset,%
+ odd/head/right/offset/.alias*=head/right/odd/offset,%
+ odd/offset/head/right/.alias*=head/right/odd/offset,%
+ odd/offset/right/head/.alias*=head/right/odd/offset,%
+ odd/right/offset/head/.alias*=head/right/odd/offset,%
+ odd/right/head/offset/.alias*=head/right/odd/offset,%
offset/head/right/odd/.alias*=head/right/odd/offset,%
offset/head/odd/right/.alias*=head/right/odd/offset,%
offset/right/head/odd/.alias*=head/right/odd/offset,%
offset/right/odd/head/.alias*=head/right/odd/offset,%
offset/odd/right/head/.alias*=head/right/odd/offset,%
offset/odd/head/right/.alias*=head/right/odd/offset,%
- right/odd/head/offset/.alias*=head/right/odd/offset,%
- right/head/odd/offset/.alias*=head/right/odd/offset,%
foot/left/even/offset/.store in skip cs=f@ncyO@elf,%
foot/left/even/offset/.append code=\fancy@setoffs,%
+ foot/even/offset/left/.alias*=foot/left/even/offset,%
+ foot/even/left/offset/.alias*=foot/left/even/offset,%
+ foot/offset/even/left/.alias*=foot/left/even/offset,%
+ foot/offset/left/even/.alias*=foot/left/even/offset,%
+ foot/left/offset/even/.alias*=foot/left/even/offset,%
+ left/foot/offset/even/.alias*=foot/left/even/offset,%
+ left/foot/even/offset/.alias*=foot/left/even/offset,%
+ left/offset/foot/even/.alias*=foot/left/even/offset,%
+ left/offset/even/foot/.alias*=foot/left/even/offset,%
+ left/even/offset/foot/.alias*=foot/left/even/offset,%
+ left/even/foot/offset/.alias*=foot/left/even/offset,%
+ even/foot/offset/left/.alias*=foot/left/even/offset,%
+ even/foot/left/offset/.alias*=foot/left/even/offset,%
+ even/offset/foot/left/.alias*=foot/left/even/offset,%
+ even/offset/left/foot/.alias*=foot/left/even/offset,%
+ even/left/offset/foot/.alias*=foot/left/even/offset,%
+ even/left/foot/offset/.alias*=foot/left/even/offset,%
offset/foot/left/even/.alias*=foot/left/even/offset,%
offset/foot/even/left/.alias*=foot/left/even/offset,%
offset/left/foot/even/.alias*=foot/left/even/offset,%
offset/left/even/foot/.alias*=foot/left/even/offset,%
offset/even/left/foot/.alias*=foot/left/even/offset,%
offset/even/foot/left/.alias*=foot/left/even/offset,%
- left/even/foot/offset/.alias*=foot/left/even/offset,%
- left/foot/even/offset/.alias*=foot/left/even/offset,%
foot/left/odd/offset/.store in skip cs=f@ncyO@olf,%
foot/left/odd/offset/.append code=\fancy@setoffs,%
+ foot/odd/offset/left/.alias*=foot/left/odd/offset,%
+ foot/odd/left/offset/.alias*=foot/left/odd/offset,%
+ foot/offset/odd/left/.alias*=foot/left/odd/offset,%
+ foot/offset/left/odd/.alias*=foot/left/odd/offset,%
+ foot/left/offset/odd/.alias*=foot/left/odd/offset,%
+ left/foot/offset/odd/.alias*=foot/left/odd/offset,%
+ left/foot/odd/offset/.alias*=foot/left/odd/offset,%
+ left/offset/foot/odd/.alias*=foot/left/odd/offset,%
+ left/offset/odd/foot/.alias*=foot/left/odd/offset,%
+ left/odd/offset/foot/.alias*=foot/left/odd/offset,%
+ left/odd/foot/offset/.alias*=foot/left/odd/offset,%
+ odd/foot/offset/left/.alias*=foot/left/odd/offset,%
+ odd/foot/left/offset/.alias*=foot/left/odd/offset,%
+ odd/offset/foot/left/.alias*=foot/left/odd/offset,%
+ odd/offset/left/foot/.alias*=foot/left/odd/offset,%
+ odd/left/offset/foot/.alias*=foot/left/odd/offset,%
+ odd/left/foot/offset/.alias*=foot/left/odd/offset,%
offset/foot/left/odd/.alias*=foot/left/odd/offset,%
offset/foot/odd/left/.alias*=foot/left/odd/offset,%
offset/left/foot/odd/.alias*=foot/left/odd/offset,%
offset/left/odd/foot/.alias*=foot/left/odd/offset,%
offset/odd/left/foot/.alias*=foot/left/odd/offset,%
offset/odd/foot/left/.alias*=foot/left/odd/offset,%
- left/odd/foot/offset/.alias*=foot/left/odd/offset,%
- left/foot/odd/offset/.alias*=foot/left/odd/offset,%
foot/right/even/offset/.store in skip cs=f@ncyO@erf,%
foot/right/even/offset/.append code=\fancy@setoffs,%
+ foot/even/offset/right/.alias*=foot/right/even/offset,%
+ foot/even/right/offset/.alias*=foot/right/even/offset,%
+ foot/offset/even/right/.alias*=foot/right/even/offset,%
+ foot/offset/right/even/.alias*=foot/right/even/offset,%
+ foot/right/offset/even/.alias*=foot/right/even/offset,%
+ right/foot/offset/even/.alias*=foot/right/even/offset,%
+ right/foot/even/offset/.alias*=foot/right/even/offset,%
+ right/offset/foot/even/.alias*=foot/right/even/offset,%
+ right/offset/even/foot/.alias*=foot/right/even/offset,%
+ right/even/offset/foot/.alias*=foot/right/even/offset,%
+ right/even/foot/offset/.alias*=foot/right/even/offset,%
+ even/foot/offset/right/.alias*=foot/right/even/offset,%
+ even/foot/right/offset/.alias*=foot/right/even/offset,%
+ even/offset/foot/right/.alias*=foot/right/even/offset,%
+ even/offset/right/foot/.alias*=foot/right/even/offset,%
+ even/right/offset/foot/.alias*=foot/right/even/offset,%
+ even/right/foot/offset/.alias*=foot/right/even/offset,%
offset/foot/right/even/.alias*=foot/right/even/offset,%
offset/foot/even/right/.alias*=foot/right/even/offset,%
offset/right/foot/even/.alias*=foot/right/even/offset,%
offset/right/even/foot/.alias*=foot/right/even/offset,%
offset/even/right/foot/.alias*=foot/right/even/offset,%
offset/even/foot/right/.alias*=foot/right/even/offset,%
- right/even/foot/offset/.alias*=foot/right/even/offset,%
- right/foot/even/offset/.alias*=foot/right/even/offset,%
foot/right/odd/offset/.store in skip cs=f@ncyO@orf,%
foot/right/odd/offset/.append code=\fancy@setoffs,%
+ foot/odd/offset/right/.alias*=foot/right/odd/offset,%
+ foot/odd/right/offset/.alias*=foot/right/odd/offset,%
+ foot/offset/odd/right/.alias*=foot/right/odd/offset,%
+ foot/offset/right/odd/.alias*=foot/right/odd/offset,%
+ foot/right/offset/odd/.alias*=foot/right/odd/offset,%
+ right/foot/offset/odd/.alias*=foot/right/odd/offset,%
+ right/foot/odd/offset/.alias*=foot/right/odd/offset,%
+ right/offset/foot/odd/.alias*=foot/right/odd/offset,%
+ right/offset/odd/foot/.alias*=foot/right/odd/offset,%
+ right/odd/offset/foot/.alias*=foot/right/odd/offset,%
+ right/odd/foot/offset/.alias*=foot/right/odd/offset,%
+ odd/foot/offset/right/.alias*=foot/right/odd/offset,%
+ odd/foot/right/offset/.alias*=foot/right/odd/offset,%
+ odd/offset/foot/right/.alias*=foot/right/odd/offset,%
+ odd/offset/right/foot/.alias*=foot/right/odd/offset,%
+ odd/right/offset/foot/.alias*=foot/right/odd/offset,%
+ odd/right/foot/offset/.alias*=foot/right/odd/offset,%
offset/foot/right/odd/.alias*=foot/right/odd/offset,%
offset/foot/odd/right/.alias*=foot/right/odd/offset,%
offset/right/foot/odd/.alias*=foot/right/odd/offset,%
offset/right/odd/foot/.alias*=foot/right/odd/offset,%
offset/odd/right/foot/.alias*=foot/right/odd/offset,%
offset/odd/foot/right/.alias*=foot/right/odd/offset,%
- right/odd/foot/offset/.alias*=foot/right/odd/offset,%
- right/foot/odd/offset/.alias*=foot/right/odd/offset,%
+ head/inner/offset/.style={head/right/even/offset={#1},head/left/odd/offset={#1}},%
+ head/inner/offset+/.style={head/right/even/offset+={#1},head/left/odd/offset+={#1}},%
+ head/inner/offset-/.style={head/right/even/offset-={#1},head/left/odd/offset-={#1}},%
+ head/inner/offset*/.style={head/right/even/offset*={#1},head/left/odd/offset*={#1}},%
+ head/offset/inner/.alias*=head/inner/offset,%
+ offset/head/inner/.alias*=head/inner/offset,%
+ offset/inner/head/.alias*=head/inner/offset,%
+ inner/head/offset/.alias*=head/inner/offset,%
+ inner/offset/head/.alias*=head/inner/offset,%
+ head/outer/offset/.style={head/left/even/offset={#1},head/right/odd/offset={#1}},%
+ head/outer/offset+/.style={head/left/even/offset+={#1},head/right/odd/offset+={#1}},%
+ head/outer/offset-/.style={head/left/even/offset-={#1},head/right/odd/offset-={#1}},%
+ head/outer/offset*/.style={head/left/even/offset*={#1},head/right/odd/offset*={#1}},%
+ head/offset/outer/.alias*=head/outer/offset,%
+ offset/head/outer/.alias*=head/outer/offset,%
+ offset/outer/head/.alias*=head/outer/offset,%
+ outer/head/offset/.alias*=head/outer/offset,%
+ outer/offset/head/.alias*=head/outer/offset,%
+ foot/inner/offset/.style={foot/right/even/offset={#1},foot/left/odd/offset={#1}},%
+ foot/inner/offset+/.style={foot/right/even/offset+={#1},foot/left/odd/offset+={#1}},%
+ foot/inner/offset-/.style={foot/right/even/offset-={#1},foot/left/odd/offset-={#1}},%
+ foot/inner/offset*/.style={foot/right/even/offset*={#1},foot/left/odd/offset*={#1}},%
+ foot/offset/inner/.alias*=foot/inner/offset,%
+ offset/foot/inner/.alias*=foot/inner/offset,%
+ offset/inner/foot/.alias*=foot/inner/offset,%
+ inner/foot/offset/.alias*=foot/inner/offset,%
+ inner/offset/foot/.alias*=foot/inner/offset,%
+ foot/outer/offset/.style={foot/left/even/offset={#1},foot/right/odd/offset={#1}},%
+ foot/outer/offset+/.style={foot/left/even/offset+={#1},foot/right/odd/offset+={#1}},%
+ foot/outer/offset-/.style={foot/left/even/offset-={#1},foot/right/odd/offset-={#1}},%
+ foot/outer/offset*/.style={foot/left/even/offset*={#1},foot/right/odd/offset*={#1}},%
+ foot/offset/outer/.alias*=foot/outer/offset,%
+ offset/foot/outer/.alias*=foot/outer/offset,%
+ offset/outer/foot/.alias*=foot/outer/offset,%
+ outer/foot/offset/.alias*=foot/outer/offset,%
+ outer/offset/foot/.alias*=foot/outer/offset,%
+ inner/offset/.style={foot/inner/offset={#1},head/inner/offset={#1}},%
+ inner/offset+/.style={foot/inner/offset+={#1},head/inner/offset+={#1}},%
+ inner/offset-/.style={foot/inner/offset-={#1},head/inner/offset-={#1}},%
+ inner/offset*/.style={foot/inner/offset*={#1},head/inner/offset*={#1}},%
+ offset/inner/.alias*=inner/offset,%
+ outer/offset/.style={foot/outer/offset={#1},head/outer/offset={#1}},%
+ outer/offset+/.style={foot/outer/offset+={#1},head/outer/offset+={#1}},%
+ outer/offset-/.style={foot/outer/offset-={#1},head/outer/offset-={#1}},%
+ outer/offset*/.style={foot/outer/offset*={#1},head/outer/offset*={#1}},%
+ offset/outer/.alias*=outer/offset,%
reset/.style={norule,head=,foot=,offset=\z@,foot/rule/skip,rule/font=,font=},%
reset/.value forbidden,%
}% keys for \pagesetup (stored into token \itf@tk)
@@ -4411,17 +4830,15 @@ turtle%
% \begin{macrocode}
%<*marks>
\ProvidesPackage{interfaces-marks}
- [2010/11/21 v2.3 easier use of e-TeX marks (FC)]
+ [2010/11/26 v2.4 easier use of e-TeX marks (FC)]
\RequirePackage{interfaces-base}
% \end{macrocode}
%
% \begin{macro}{\marksthe}
% \begin{macrocode}
\newrobustcmd\marksthe[2]{%
- \ifcsname marks@#1\endcsname\else
- \itf@marks@new{#1}%
- \fi
- \expandafter\marks\csname marks@#1\endcsname{\unexpanded{#2}}%
+ \ifcsname marks@#1\endcsname \else \itf@marks@new{#1}\fi
+ {\toks@{#2}\expandafter\marks\csname marks@#1\endcsname{\the\toks@}}%
}% \marksthe
% \end{macrocode}
% \end{macro}
@@ -4429,14 +4846,12 @@ turtle%
% \begin{macro}{\marksthecs}
% \begin{macrocode}
\newrobustcmd*\marksthecs[2]{%
- \ifcsname marks@#1\endcsname\else
- \itf@marks@new{#1}%
- \fi
+ \ifcsname marks@#1\endcsname \else \itf@marks@new{#1}\fi
\ifcsundef{#2}
{}
- {\expandafter\marks\csname marks@#1\endcsname{%
- \unexpanded\expandafter\expandafter\expandafter{%
- \csname#2\endcsname}}}%
+ {{\toks@\expandafter\expandafter\expandafter{%
+ \csname #2\endcsname}%
+ \expandafter\marks\csname marks@#1\endcsname{\the\toks@}}}%
}% \marksthecs
% \end{macrocode}
% \end{macro}
@@ -4445,29 +4860,34 @@ turtle%
% \begin{macrocode}
\def\itf@marks@new#1{%
\expandafter\newmarks\csname marks@#1\endcsname
- \PackageInfo{interfaces-marks}
- {New marks `#1' defined}
-}% \itf@marks@warning
+ \PackageInfo{interfaces-marks}{New marks `#1' defined}%
+}% \itf@marks@new
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\thefirstmarks}
% \begin{macro}{\thebotmarks}
% \begin{macro}{\thetopmarks}
+%
+% Purely expandable in exactly one step of expansion.
+%
% \begin{macrocode}
-\newcommand*\thefirstmarks[1]{%
- \ifcsname marks@#1\endcsname
- \expandafter\firstmarks\csname marks@#1\endcsname
+\newcommand*\thefirstmarks[1]{\romannumeral
+ \ifcsname marks@#1\endcsname \expandafter\z@
+ \firstmarks\csname marks@#1\expandafter\endcsname
+ \else \expandafter\z@
\fi
}% \thefirstmarks
-\newcommand*\thebotmarks[1]{%
- \ifcsname marks@#1\endcsname
- \expandafter\botmarks\csname marks@#1\endcsname
+\newcommand*\thebotmarks[1]{\romannumeral
+ \ifcsname marks@#1\endcsname \expandafter\z@
+ \botmarks\csname marks@#1\expandafter\endcsname
+ \else \expandafter\z@
\fi
}% \thebotmarks
-\newcommand*\thetopmarks[1]{%
- \ifcsname marks@#1\endcsname
- \expandafter\topmarks\csname marks@#1\endcsname
+\newcommand*\thetopmarks[1]{\romannumeral
+ \ifcsname marks@#1\endcsname \expandafter\z@
+ \topmarks\csname marks@#1\expandafter\endcsname
+ \else \expandafter\z@
\fi
}% \thetopmarks
% \end{macrocode}
@@ -4476,27 +4896,30 @@ turtle%
% \end{macro}
%
% \begin{macro}{\getthemarks}
+%
+% \cs{getthemarks}\cs{firstmarks}\M{named-mark}\cs{result}
+%
% \begin{macrocode}
%% \getthemarks\firstmarks{section}\macro
\newrobustcmd*\getthemarks[3]{%
\ifcsname marks@#2\endcsname
- \expandafter\itf@getthemarks\expandafter#1\csname marks@#2\endcsname{#3}%
+ \edef#3{\unexpanded\expandafter{#1\csname marks@#2\endcsname}}%
\else \let#3\@undefined
\fi
}% \getthemarks
-\def\itf@getthemarks#1#2#3{%
- \expandafter\def\expandafter#3\expandafter{#1#2}%
-}% \itf@getthemarks
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\getthefirstmarks}
+%
+% \cs{getthefirstmarks}\M{named-mark}\cs{result}: shortcut for \cs{getthemarks}\cs{firstmarks}
+%
% \begin{macro}{\getthebotmarks}
% \begin{macro}{\getthetopmarks}
% \begin{macrocode}
-\newrobustcmd*\getthefirstmarks[2]{\getthemarks\firstmarks{#1}{#2}}
-\newrobustcmd*\getthebotmarks[2]{\getthemarks\botmarks{#1}{#2}}
-\newrobustcmd*\getthetopmarks[2]{\getthemarks\topmarks{#1}{#2}}
+\newrobustcmd*\getthefirstmarks{\getthemarks\firstmarks}
+\newrobustcmd*\getthebotmarks{\getthemarks\botmarks}
+\newrobustcmd*\getthetopmarks{\getthemarks\topmarks}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -4507,14 +4930,12 @@ turtle%
%% \ifmarksequal\firstmarks\botmarks{subsection}{ true }{ false }
\newrobustcmd*\ifmarksequal[3]{%
\begingroup
- \getthemarks{#1}{#3}\@tempa
- \getthemarks{#2}{#3}\@tempb
+ \getthemarks{#1}{#3}\x
+ \getthemarks{#2}{#3}\y
\expandafter\endgroup
- \csname ltx@\ifdefined\@tempa\ifdefined\@tempb
- \ifx\@tempa\@tempb first\else
- second\fi\else
- second\fi\else
- second\fi
+ \csname ltx@\ifdefined\x\ifdefined\y
+ \ifx\x\y first\else
+ second\fi\else second\fi\else second\fi
oftwo\endcsname
}% \ifmarksequal
% \end{macrocode}
@@ -4529,7 +4950,7 @@ turtle%
% \begin{macrocode}
%<*tocloft>
\ProvidesPackage{interfaces-tocloft}
- [2010/11/21 v2.3 pgfkeys macros for tocloft (FC)]
+ [2010/11/26 v2.4 pgfkeys macros for tocloft (FC)]
\RequirePackage{interfaces-base}
\itf@Check@Package{tocloft}
\itf@pgfkeys
@@ -4811,54 +5232,55 @@ turtle%
% This macro creates the keys for each sectionning command.
%
% \begin{macrocode}
-\def\itf@cft@newsection#1#2{% #1=part / chap / sec / subsec etc., #2 = toc | lof | lot
- \pgfqkeys{/itf/tocloft/#2/#1}{%
- skip/.cft@length=before.#1.skip,%
+\def\itf@cft@newsection{\itf@cft@new@section{/itf/tocloft}}
+\def\itf@cft@new@section#1#2#3{% #2=part / chap / sec / subsec etc., #3 = toc | lof | lot
+ \pgfqkeys{#1/#3/#2}{%
+ skip/.cft@length=before.#2.skip,%
beforeskip/.alias*=skip,%
top/.alias*=skip,%
- indent/.cft@length=.#1.indent,%
- font/.cft@code=.#1.font,%
- font/.append code={\pgfkeysalso{/itf/tocloft/#2/#1/pagenumber/font={##1}}},%
+ indent/.cft@length=.#2.indent,%
+ font/.cft@code=.#2.font,%
+ font/.append code={\pgfkeysalso{/itf/tocloft/#3/#2/pagenumber/font={##1}}},%
format/.alias*=font,%
- number/width/.cft@length=.#1.numwidth,%
+ number/width/.cft@length=.#2.numwidth,%
numwidth/.alias*=number/width,%
- presnum/.cft@code=.#1.presnum,%
+ presnum/.cft@code=.#2.presnum,%
number/before/.alias*=presnum,%
- aftersnum/.cft@code=.#1.aftersnum,%
+ aftersnum/.cft@code=.#2.aftersnum,%
number/after/.alias*=aftersnum,%
- aftersnumb/.cft@code=.#1.aftersnumb,%
+ aftersnumb/.cft@code=.#2.aftersnumb,%
title/before/.alias*=aftersnumb,%
- leader/.cft@def=.#1.leader,%
- leader/.default=\cftdotfill{\csname\itf@cft@name.#1.dotsep\@nil\endcsname},%
+ leader/.cft@def=.#2.leader,%
+ leader/.default=\cftdotfill{\csname\itf@cft@name.#2.dotsep\@nil\endcsname},%
leaders/.alias=leader,%
dotsep/.code={\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text
- \csdef{\itf@cft@name.#1.dotsep\@nil}{\cftdotsep}%
+ \csdef{\itf@cft@name.#2.dotsep\@nil}{\cftdotsep}%
\else
\itf@units@mu\itf@musk{##1}%
- \csedef{\itf@cft@name.#1.dotsep\@nil}{\itf@strip@mu\itf@musk}%
+ \csedef{\itf@cft@name.#2.dotsep\@nil}{\itf@strip@mu\itf@musk}%
\fi},%
dotsep/.blank=\cftnodots,%
- nodots/.code=\csdef{\itf@cft@name.#1.dotsep\@nil}{\cftnodots},%
+ nodots/.code=\csdef{\itf@cft@name.#2.dotsep\@nil}{\cftnodots},%
nodots/.value forbidden,%
- pagefont/.cft@code=.#1.pagefont,%
+ pagefont/.cft@code=.#2.pagefont,%
page/font/.alias*=pagefont,%
pagenumber/font/.alias*=pagefont,%
- afterpnum/.cft@code=.#1.afterpnum,%
+ afterpnum/.cft@code=.#2.afterpnum,%
page/after/.alias*=afterpnum,%
pagenumber/after/.alias*=afterpnum,%
- pagenumbers/.on=\@cftpnumon{\itf@cft@secname{#1}},%
- pagenumbers/.off=\@cftpnumoff{\itf@cft@secname{#1}},%
+ pagenumbers/.on=\@cftpnumon{\itf@cft@secname{#2}},%
+ pagenumbers/.off=\@cftpnumoff{\itf@cft@secname{#2}},%
pagenumber/.alias=pagenumbers,%
}% \pgfqkeys
-}% \itf@cft@newsection
+}% \itf@cft@new@section
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
\@for\itf@tp:=part,chap,chapter,sec,section,subsec,subsection,%
- subsubsec,subsubsection,para,paragraph,subpara,subparagraph%
+ subsubsec,subsubsection,para,paragraph,subpara,subparagraph%
\do{\expandafter\itf@cft@newsection\expandafter{\itf@tp}{toc}}%
-\if@cftsubfigopt % \@ifpackagewith{tocloft}{subfig} ??
+\if@cftsubfigopt
\@for\itf@tp:=fig,figure,subfig,subfigure%
\do{\expandafter\itf@cft@newsection\expandafter{\itf@tp}{lof}}%
\@for\itf@tp:=tab,table,subtab,subtable%
@@ -4964,7 +5386,7 @@ turtle%
% \begin{macrocode}
%<*makecell>
\ProvidesPackage{interfaces-makecell}
- [2010/11/21 v2.3 repeatcell to fill in tabulars (FC)]
+ [2010/11/26 v2.4 repeatcell to fill in tabulars (FC)]
\RequirePackage{interfaces-base}
\itf@Check@Package{makecell}
\edef\itf@AtEnd{\catcode126 \the\catcode126}% 126 = ~
@@ -5013,15 +5435,7 @@ turtle%
% \begin{macro}{\repeatcell}
% \begin{macrocode}
\newif\ifitf@celltranspose
-\def\itf@ampactive{%
- \def\tab{&}%
- \lccode`\~=38\lowercase{\def~{&}}%
-}% \itf@ampactive
-\newrobustcmd*\repeatcell{\begingroup
- \let\tab\relax
- \catcode38\active
- \itf@repeatcell
-}% \repeatcell
+\newrobustcmd*\repeatcell{\begingroup \iffalse{\fi \ifnum0=`}\fi \itf@repeatcell}
\newrobustcmd*\itf@repeatcell[3][]{%
\ifblank{#1}% alignment option ?
{\let\itf@makecell\@firstofone}
@@ -5032,7 +5446,7 @@ turtle%
\toksdef\itf@cell=1% local
\itf@pgfkeys
\pgfqkeys{/itf/makecell/repeatcell}{@reset={#2},#3}%
- \toks@{}% local
+ \toks@{\ifnum0=`{\fi \iffalse}\fi \endgroup}% local
\ifnum\itf@row>\z@ % number
\edef\itf@rowloop{\noexpand\@whilenum\itf@row<\the\itf@row}%
\def\itf@cell@init{\def\r{\row}\let\R\@empty}%
@@ -5064,7 +5478,7 @@ turtle%
{\pgfkeysgetvalue{/itf/makecell/repeatcell/cr/row\the\itf@col}\itf@thecr}
{\pgfkeysgetvalue{/itf/makecell/repeatcell/cr}\itf@thecr}%
\toks@\expandafter\expandafter\expandafter{%
- \expandafter\the\expandafter\toks@\itf@thecr}%
+ \expandafter\the\expandafter\toks@ \itf@thecr}%
\fi
\advance\itf@col\@ne
\itf@row\z@
@@ -5075,9 +5489,9 @@ turtle%
\fi
\toks@\expandafter\expandafter\expandafter{%
\expandafter\the\expandafter\toks@
- \itf@cell@init\itf@ampactive}%
- \itf@cell@insert}%
- }%
+ \itf@cell@init}%
+ \itf@cell@insert}% rows loop
+ }% cols loop
\else
\itf@row\z@
\itf@rowloop\do{%
@@ -5086,7 +5500,7 @@ turtle%
{\pgfkeysgetvalue{/itf/makecell/repeatcell/cr/row\the\itf@row}\itf@thecr}
{\pgfkeysgetvalue{/itf/makecell/repeatcell/cr}\itf@thecr}%
\toks@\expandafter\expandafter\expandafter{%
- \expandafter\the\expandafter\toks@\itf@thecr}%
+ \expandafter\the\expandafter\toks@ \itf@thecr}%
\fi
\advance\itf@row\@ne
\itf@col\z@
@@ -5097,14 +5511,13 @@ turtle%
\fi
\toks@\expandafter\expandafter\expandafter{%
\expandafter\the\expandafter\toks@
- \itf@cell@init\itf@ampactive}%
- \itf@cell@insert}%
- }%
+ \itf@cell@init}%
+ \itf@cell@insert}% cols loop
+ }% rows loop
\fi
\itf@message{Code introduced by repeatcell in the \@currenvir:^^J
\the\toks@}% (to see the code...)
- \expandafter\endgroup\the\toks@
- \ignorespaces
+ \the\toks@ \ignorespaces
}% \itf@repeatcell
% \end{macrocode}
% \end{macro}
@@ -5437,12 +5850,14 @@ turtle%
\newrobustcmd\trunctext[3][\TruncateMarker]{% do nothing if width of #3 is less than #2
\begingroup
\hbadness\maxdimen\hfuzz\vsize
- \setbox\z@=\hbox to\dimexpr#2\relax{\ignorespaces#3\unskip}%
- \ifnum\badness>\@M
- \def\next{\truncate[{#1}]{#2}{#3}}%
- \else \def\next{#3}%
+ \setbox\z@=\hbox to\dimexpr#2\relax\bgroup\color@begingroup
+ \ignorespaces#3\unskip
+ \color@endgroup\egroup
+ \ifnum\badness>\@M \truncate[{#1}]{#2}{#3}%
+%% \def\next{\truncate[{#1}]{#2}{#3}}%
+ \else #3%\def\next{#3}%
\fi
- \expandafter\endgroup\next
+ \endgroup
}% \trunctext
% \end{macrocode}
% \end{macro}
@@ -5462,7 +5877,9 @@ turtle%
{%
\@for\x:=#3\do{%
\advance \count@ \@ne
- \setbox\z@=\hbox{\ignorespaces\x\unskip}%
+ \setbox\z@\hbox\bgroup\color@begingroup
+ \ignorespaces\x\unskip
+ \color@endgroup\egroup
\dimen\count@ = \wd\z@
\toks\count@\expandafter{\the\dimen\count@}%
\advance\dimen@ \dimen\count@}%
@@ -5481,18 +5898,22 @@ turtle%
\itf@freespace\z@ % free space left when w_i < x_i/sum(x_i) * total
\@for\x:=#3\do{%
\advance \count@ \@ne
- \ifdim \dimen\count@<\z@ % not measured before
- \setbox\z@=\hbox{\ignorespaces\x\unskip}%
- \dimen\count@ = \wd\z@
- \fi
- \itf@tempdim = \itf@scaledimen{#1}*\the\toks\count@/\dimen@\relax
- \ifdim \dimen\count@ > \itf@tempdim
- \dimen\count@ = \itf@tempdim
- \edef\itf@istruncated{\itf@istruncated,\the\count@}%
- \advance\itf@sum by\the\toks\count@
- \else
- \advance\itf@freespace \itf@tempdim
- \advance\itf@freespace -\dimen\count@
+ \ifdim\dimen@=\z@ \else
+ \ifdim \dimen\count@<\z@ % not measured before
+ \setbox\z@\hbox\bgroup\color@begingroup
+ \ignorespaces\x\unskip
+ \color@endgroup\egroup
+ \dimen\count@ = \wd\z@
+ \fi
+ \itf@tempdim = \itf@scaledimen{#1}*\the\toks\count@/\dimen@\relax
+ \ifdim \dimen\count@ > \itf@tempdim
+ \dimen\count@ = \itf@tempdim
+ \edef\itf@istruncated{\itf@istruncated,\the\count@}%
+ \advance\itf@sum by\the\toks\count@
+ \else
+ \advance\itf@freespace \itf@tempdim
+ \advance\itf@freespace -\dimen\count@
+ \fi
\fi
\edef\itf@trunc@width{\itf@trunc@width\the\count@{\the@dimen\the\count@}}%
}%
@@ -5583,14 +6004,13 @@ turtle%
\else \@dotoc@pptrue\fi,%
intoc/title/.default=\pgfkeysvalueof{/itf/appendix/appendices/title},%
section/.is enum={section,chapter},%
- section/.append code={%
- \ifcase\pgfkeysvalueof{/itf/appendix/appendices/section/.number}\relax
- \@chapter@ppfalse\or\@chapter@pptrue\fi
- \if@chapter@pp\ifundef\chapter{%
- \PackageError{interfaces-appendix}
+ section/.append code={\@chapter@ppfalse
+ \ifnum\pgfkeysvalueof{/itf/appendix/appendices/section/.number}=\z@
+ \else \ifundef\chapter
+ {\PackageWarning{interfaces-appendix}
{You asked chapter-style appendices but your
- \MessageBreak current class does not provide chapters!}\@eha
- \pgfkeysalso{/itf/appendix/appendices/section}}{}%
+ \MessageBreak current class does not provide chapters!}}
+ \@chapter@pptrue
\fi},%
chapter/.style={section=chapter},%
chapter/.value forbidden,%
@@ -5769,7 +6189,7 @@ turtle%
% \begin{macrocode}
%<*pgfkeys>
\ProvidesPackage{interfaces-pgfkeys}
- [2010/11/21 v2.3 pgfkeys handlers definitions (FC)]
+ [2010/11/26 v2.4 pgfkeys handlers definitions (FC)]
\RequirePackage{interfaces-base}
\ifdefined\pgfkeys@ifexecutehandler % pgf version 2.1
\def\itf@pgfkeys{%
@@ -5785,21 +6205,17 @@ turtle%
\global\let\pgfkeys@exp@call \itf@pgfkeys@exp@call
}% \itf@pgfkeys
\fi
-\AtBeginDocument{%
- \itf@pgfkeys
- \let\itf@pgfkeys\relax
-}% AtBeginDocument
+\AtBeginDocument{\itf@pgfkeys \let\itf@pgfkeys \relax}
% \end{macrocode}
%
% \paragraph{Some new pgfkeys macros}
%
% \begin{macro}{\pgfkeysmeaning}
% \begin{macrocode}
-\providecommand*\pgfkeysmeaning[1]{%
- \pgfkeysifdefined{#1}
- {\expandafter\meaning\csname pgfk@#1\endcsname}
- {\meaning\@undefined}%
-}%
+\providecommand*\pgfkeysmeaning[1]{\pgfkeysifdefined{#1}
+ {\expandafter\meaning\csname pgfk@#1\endcsname}
+ {\meaning\@undefined}%
+}% \pgfkeysmeaning
% \end{macrocode}
% \end{macro}
%
@@ -5858,9 +6274,9 @@ turtle%
% \end{macro}
%
% \begin{macro}{\pgfkeys@exp@call}
-%
+%
% Missed the braces around the argument (in case the argument contains a comma or an $=$ sign...):
-%
+%
% \begin{macrocode}
%% missed a pair of braces around the argument in pgfkeys.code.tex (pgf v2.0)
%% ( the code could break if it contains = or , )
@@ -6143,7 +6559,7 @@ turtle%
\pgfkeysedef\pgfkeyscurrentpath{%
\futurelet\noexpand\@let@token\itf@pgfk@color
##1\noexpand\pgfkeysnovalue\noexpand\@nil
- \cslet{#1}\pgfkeyscurrentvalue}%
+ \cslet{#1}\noexpand\pgfkeyscurrentvalue}%
}% /.store as color in cs
% \end{macrocode}
%
@@ -6700,21 +7116,21 @@ turtle%
% \begin{macro}{\gremovefromstart}
% \begin{macro}{\xremovefromstart}
% \begin{macrocode}
-\newrobustcmd*\removefromstart[2]{\in@false
- \def\itf@tp##1\itf@tp{%
+\newrobustcmd\removefromstart[2]{\in@false
+ \long\def\itf@tp##1\itf@tp{%
\in@true
\edef#1{\unexpanded{##1}}%
}\expandafter\itf@removefromstart\expandafter{#1}{#2}%
}% \removefromstart
-\providerobustcmd*\eremovefromstart[2]{\begingroup
+\providerobustcmd\eremovefromstart[2]{\begingroup
\edef\x{\endgroup\removefromstart\noexpand#1{#2}%
}\x
}% \eremovefromstart
-\providerobustcmd*\gremovefromstart[2]{%
+\providerobustcmd\gremovefromstart[2]{%
\removefromstart{#1}{#2}%
\global\let#1=#1%
}% \gremovefromstart
-\providerobustcmd*\xremovefromstart[2]{%
+\providerobustcmd\xremovefromstart[2]{%
\eremovefromstart{#1}{#2}%
\global\let#1=#1%
}% \xremovefromstart
@@ -6726,9 +7142,9 @@ turtle%
%
% \begin{macro}{\itf@removefromstart}
% \begin{macrocode}
-\def\itf@removefromstart#1#2{% removes #2 (code) from #1 (hook)
- \def\in@@##1#2##2\in@@{##1\in@\itf@tp##2\in@@@}%
- \def\in@@@##1\in@@@##2\in@@@{%
+\long\def\itf@removefromstart#1#2{% removes #2 (code) from #1 (hook)
+ \long\def\in@@##1#2##2\in@@{##1\in@\itf@tp##2\in@@@}%
+ \long\def\in@@@##1\in@@@##2\in@@@{%
\ifx\in@##1\fi
}\expandafter\in@@@\in@@#1\itf@tp\in@@@#2\in@@
}% \itf@removefromstart
@@ -6739,14 +7155,38 @@ turtle%
%</etoolbox>
% \end{macrocode}
%
-% \clearpage
+% \clearpage\restoregeometry
+% \pagesetup*{
+% left/offset-=1.5cm,
+% right/offset+=.5cm,
+% head/right=\leftmark,
+% head/right/font=\small\bfseries\sffamily\pkgcolor
+% }
%
% \begin{History}
%
% \sectionformat\subsection[hang]{format=\large\bfseries}
%
+% \begin{Version}{2010/11/26 v2.4}
+% \item \thispackage[interfaces-fancyhdr] : complete key set for header, footer and offset settings \\
+% Now keys like \textt{foot/inner} or \textt{head/outer/offset} are available (ouf!).
+% \item \thispackage[interfaces-hypbmsec] has been completely rewritten and is now independant of \xpackage{titlesec}
+% and \xpackage{interfaces-titlesec}. \cs{lastsectiontitle} \etc are defined by the mean of
+% \cs{GetTitleString} (from H.O. eponym package). \\
+% \thispackage[interfaces-hypbmsec] now provides \cs{lastsectionanchor} when used with \xpackage{hyperref}.
+% \item \thispackage[interfaces-marks] revisited: expandable macros \cs{thefirstmarks}, \cs{thebotmarks} and \cs{thetopmarks}
+% are now expandable in exactly one step of expansion. \\
+% \cs{marksthe} and \cs{marksthecs} does not use \cs{unexpanded} (better for the \xext{log} file to see the marks). \\
+% Optimization for \cs{getthemarks} with incidence on \csref{ifmarksequal}.
+% \item \csref{repeatcell}: modification of the code. \& alignment tab character is not activated
+% and the ``dirty trick'' (according to D.~Knuth) \textt{\cs{iffalse}\{\cs{fi} \cs{ifnum}0=`\}\cs{fi}} is used instead.
+% \item \csref{htruncadjust} produced an error when used with empty text arguments -- fixed.
+% \item Modification in \cs{bottomtitles}: \cs{bottomtitlespace} should be stored as a dimen, not a skip.
+% \item \csref{removefromstart} is now a \cs{long} macro.
+% \end{Version}
+%
% \begin{Version}{2010/11/21 v2.3}
-% \item \thispackage[interfaces-fancyhdr] : new keys and new aliases for header, footer and offset settings
+% \item \thispackage[interfaces-fancyhdr] : new keys and new aliases for header, footer and offset settings.
% \end{Version}
%
% \begin{Version}{2010/11/16 v2.2}
@@ -6827,14 +7267,6 @@ turtle%
%
% \end{appendices}
%
-% \clearpage\restoregeometry
-% \pagesetup*{
-% left/offset-=1.5cm,
-% right/offset+=.5cm,
-% head/right=\leftmark,
-% head/right/font=\small\bfseries\sffamily\pkgcolor
-% }
-%
% \PrintIndex
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/interfaces/interfaces.ins b/Master/texmf-dist/source/latex/interfaces/interfaces.ins
index e7b260fef27..b745a547e1e 100644
--- a/Master/texmf-dist/source/latex/interfaces/interfaces.ins
+++ b/Master/texmf-dist/source/latex/interfaces/interfaces.ins
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% interfaces : 2010/11/21 v2.3 - interfaces : interfaces with keys for other packages (FC)
+%% interfaces : 2010/11/26 v2.4 - interfaces : interfaces with keys for other packages (FC)
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -46,7 +46,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: 2010/11/21 v2.3 - interfaces: interfaces with keys for other packages (FC)}
+\Msg{* Package: 2010/11/26 v2.4 - interfaces: interfaces with keys for other packages (FC)}
\Msg{************************************************************************}
\keepsilent
@@ -57,7 +57,7 @@
This is a generated file.
-interfaces : 2010/11/21 v2.3 - interfaces : interfaces with keys for other packages (FC)
+interfaces : 2010/11/26 v2.4 - interfaces : interfaces with keys for other packages (FC)
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either