%% %% This is file `interfaces-tocloft.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% interfaces.dtx (with options: `tocloft') %% %% This is a generated file. %% %% interfaces : 2011/02/19 v3.1 - 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 %% version 1.3 of this license or (at your option) any later %% version. The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% %% This work consists of the main source file interfaces.dtx %% and the derived files %% interfaces.sty, interfaces.pdf, interfaces.ins, %% interfaces-base.sty, %% interfaces-LaTeX.sty, %% interfaces-tikz.sty, %% interfaces-titlesec.sty, %% interfaces-hyperref.sty, %% interfaces-bookmark.sty, %% interfaces-hypbmsec.sty, %% interfaces-fancyhdr.sty, %% interfaces-marks.sty, %% interfaces-tocloft.sty, %% interfaces-makecell.sty, %% interfaces-enumitem.sty, %% interfaces-truncate.sty, %% interfaces-appendix.sty, %% interfaces-embedfile.sty, %% interfaces-environ.sty, %% interfaces-umrand.sty, %% interfaces-scrlfile.sty, %% interfaces-pgfkeys.sty, %% interfaces-etoolbox.sty %% %% interfaces: interfaces with keys for other packages (FC) %% Copyright (C) 2010 by Florent Chervet %% \ProvidesPackage{interfaces-tocloft} [2011/02/19 v3.1 pgfkeys macros for tocloft (FC)] \RequirePackage{interfaces-base} \itf@Check@Package{tocloft} \newrobustcmd\tocsetup[1]{% \AfterPreamble{\itf@pgfkeys\pgfqkeys{/itf/tocloft/toc}{#1}}% }% \tocsetup \newrobustcmd\lofsetup[1]{% \AfterPreamble{\itf@pgfkeys\pgfqkeys{/itf/tocloft/lof}{#1}}% }% \lofsetup \newrobustcmd\lotsetup[1]{% \AfterPreamble{\itf@pgfkeys\pgfqkeys{/itf/tocloft/lot}{#1}}% }% \lotsetup \newrobustcmd\listofsetup[2]{% \AfterPreamble{\itf@pgfkeys\pgfqkeys{/itf/tocloft/#1}{#2}}% }% \listofsetup \def\itf@cft@newlistof#1#2#3{% \pgfqkeys{/itf/tocloft/#1}{% depth/.store in counter cs=c@#1depth,% depth/.append code=\expandafter\global\csname c@#1depth\endcsname \csname c@#1depth\endcsname \addtocontents{#1}{\csname c@#1depth\endcsname \the\csname c@#1depth\endcsname\relax},% #1depth/.alias*=depth,% pagestyle/.code=\tocloftpagestyle{##1},% parskip/.store in skip cs=cftparskip,% parsep/.alias=parskip,% mark/.store in cs=cftmark#1,% marks/.alias=mark,% mark=,% label/.store as code,% ref/.store as code,% ref/.initial=\csname cft#1title\endcsname,% overwritten (toc,lof,lot) ref/.default=\csname cft#1title\endcsname,% overwritten (toc,lof,lot) ref/.blank=\pgfkeysnovalue,% title/.store as code in cs=cft#1title,% overwritten below for toc, lof and lot title/top/.store in skip cs=cftbefore#1titleskip,% beforetitleskip/.alias*=title/top,% title/bottom/.store in skip cs=cftafter#1titleskip,% aftertitleskip/.alias*=title/bottom,% title/skip/.alias*=title/bottom,% title/font/.store as code in cs=cft#1titlefont,% title/format/.alias*=title/font,% title/color/.store as color,% title/color/.append code=\pgfkeysalso{/itf/tocloft/#1/title/font+={% \color{\pgfkeysvalueof{/itf/tocloft/#1/title/color}}}},% title/font/color/.alias=title/color,% title/format/color/.alias=title/color,% title/after/.store as code in cs=cftafter#1title,% title/command/.code=\csdef{@cftmake#1title}####1{##1},% dotsep/.code=\itf@units@mu\itf@musk{##1}% converts to mu \edef\cftdotsep{\itf@strip@mu\itf@musk},% dotsep/.default=4.5mu,% dotsep/.blank=\cftnodots,% dot/.store in=\cftdot,% before/.store as code,% after/.store as code,% columns/before@hook/.is private=interfaces-tocloft,% columns/after@hook/.is private=interfaces-tocloft,% columns/before@hook/.initial=,% columns/after@hook/.initial=,% columns/.code={\ltx@ifpackageloaded{multicol}{% \pgfkeysEsetvalue\pgfkeyscurrentkey{\number##1}% \ifnum\number##1>\@ne \pgfkeysgetvalue{/itf/tocloft/#1/columns/before@hook}\itf@tp \ifx \itf@tp\@empty \pgfkeyssetvalue{/itf/tocloft/#1/columns/before@hook}{% \begingroup \multicolsep\pgfkeysvalueof{/itf/tocloft/#1/multicolsep}\relax \columnsep\pgfkeysvalueof{/itf/tocloft/#1/columns/sep}\relax \columnseprule\pgfkeysvalueof{/itf/tocloft/#1/columns/rule}\relax \pgfkeysvalueof{/itf/tocloft/#1/multicols/beforebegin}% \def\itf@tocloft@aftermulticols{% \pgfkeysvalueof{/itf/tocloft/#1/multicols/afterend}}% \begin{multicols}{\pgfkeysvalueof{/itf/tocloft/#1/columns}}% \pgfkeysgetvalue{/itf/tocloft/#1/columns/rule/color}\columnseprulecolor \pgfkeysvalueof{/itf/tocloft/#1/multicols/afterbegin}% }% \pgfkeyssetvalue{/itf/tocloft/#1/columns/after@hook}{% \pgfkeysvalueof{/itf/tocloft/#1/multicols/beforeend}% \aftergroup\itf@tocloft@aftermulticols \end{multicols}% \endgroup }% \fi \else \pgfkeyslet\pgfkeyscurrentkey\@ne \pgfkeyslet{/itf/tocloft/#1/columns/before@hook}\@empty \pgfkeyslet{/itf/tocloft/#1/columns/after@hook}\@empty \fi} {\PackageError{interfaces-tocloft} {Key `columns': package multicol is required}\@eha}% },% columns/.default=2,columns/.blank=1,% multicol/.alias=columns,% multicols/.alias=columns,% twocolumns/.true=\pgfkeysalso{columns=2},% twocolumns/.false=\pgfkeysalso{columns=1},% columns/rule/.estore as dimen,% columns/rule/.default=\columnseprule,% columns/rule,% assign default columnseprule/.alias*=columns/rule,% columns/rule/width/.alias*=columns/rule,% columns/sep/.estore as dimen,% columns/sep/.default=\columnsep,% columns/sep/.blank=10\p@,% columns/sep,% assign default columnsep/.alias*=columns/sep,% columns/rule/color/.store as color command,% columns/rule/color,% assign default (\normalcolor) columnseprulecolor/.alias*=columns/rule/color,% columns/rulecolor/.alias*=columns/rule/color,% columns/color/.alias*=columns/rule/color,% multicolsep/.estore as glue,% multicolsep/.default=0pt plus4pt minus3pt,% multicolsep,% sets default milticols/beforebegin/.initial=,multicols/beforebegin/.default=,% multicols/afterbegin/.initial=,multicols/afterbegin/.default=,% multicols/begin/.alias=multicols/afterbegin,% multicols/before/.alias=multicols/afterbegin,% multicols/beforeend/.initial=,multicols/beforeend/.default=,% multicols/afterend/.initial=,multicols/afterend/.default=,% multicols/end/.alias=multicols/beforeend,% multicols/after/.alias=multicols/beforeend,% }% \pgfkeys \itf@AfterPackage{interfaces-bookmark}{% \def\itf@tocloft@bookmark@handler##1##2{% \pgfkeysEaddvalue{/itf/tocloft/##1/bookmark}{}{,##2}% \pgfkeysgetvalue{/itf/tocloft/##1/bookmark/text}\itf@tp \ifx \itf@tp\@empty \pgfkeyssetvalue{/itf/tocloft/##1/bookmark/text}\contentsname \fi}% \pgfqkeys{/itf/tocloft/#1}{% bookmark/.is multiple choice,% bookmark/bold/.true=\itf@tocloft@bookmark@handler{#1}{bold=true},% bookmark/bold/.false=\itf@tocloft@bookmark@handler{#1}{bold=false},% bookmark/italic/.true=\itf@tocloft@bookmark@handler{#1}{italic=true},% bookmark/italic/.false=\itf@tocloft@bookmark@handler{#1}{italic=false},% bookmark/color/.code=\itf@tocloft@bookmark@handler{#1}{color={##1}},% bookmark/level/.code=\pgfkeysEsetvalue{/itf/tocloft/#1/bookmark/level}{% \ifcsname toclevel@##1\endcsname \csname toclevel@##1\endcsname \else##1\fi}% \itf@tocloft@bookmark@handler{#1}{},% bookmark/level/.default=-1,% bookmark/level/.initial=-1,% bookmark/text/.store as code,% bookmark/text/.default=\contentsname,% bookmark/.unknown/.code=\pgfkeysEaddvalue{/itf/tocloft/#1/bookmark} {}{\pgfkeyscurrentname={##1}},% bookmark/.initial=,% }% \pgfkeys }% AfterPackage interfaces-bookmark %% while making a format \jobname is expanded to the name of the format... %% Therefore, the following commands must be expanded \AtEndPreamble \AfterPreamble{% \BeforeFile{\jobname.#1}{% \pgfkeysvalueof{/itf/tocloft/#1/before}% \pgfkeysvalueof{/itf/tocloft/#1/columns/before@hook}% }% \AfterFile{\jobname.#1}{% \pgfkeysvalueof{/itf/tocloft/#1/columns/after@hook}% \pgfkeysvalueof{/itf/tocloft/#1/after}% }% }% \ifcsname #1setup\endcsname\else \pgfqkeys{/itf/tocloft/#1}{% title={#3},% pagenumbers/.true=\@cftpnumon{#2},% pagenumbers/.false=\@cftpnumoff{#2},% pagenumbers/on/.alias=pagenumbers/true, pagenumbers/off/.alias=pagenumbers/false, pagenumber/.alias=pagenumbers,% }% \expandafter\pretocmd\csname @cftmake#1title\expandafter\endcsname \expandafter{\expandafter\itf@tocloft\csname cft#1title\endcsname{#1}{listof#2}} {\@PackageInfoNoLine{interfaces-tocloft} {\expandafter\string\csname @cftmake#1title\endcsname\space successfully augmented}} {\@PackageWarningNoLine{interfaces-tocloft} {\expandafter\string\csname @cftmake#1title\endcsname\space \space could not be patched \MessageBreak Keys label and bookmark won't work for \string\listofsetup}}% \fi }% \itf@cft@newlistof \itf@cft@newlistof{toc}{}{} \itf@cft@newlistof{lof}{}{} \itf@cft@newlistof{lot}{}{} %% Specific to toc only ------------------------------------------------------- \pgfqkeys{/itf/tocloft/toc}{% title/.store as code in cs=contentsname,% contentsname/.alias=title,% ref/.initial=\contentsname,% ref/.default=\contentsname,% pagenumbers/.style={% boolean key part/pagenumbers={#1},chapter/pagenumbers={#1},section/pagenumbers={#1},% subsubsection/pagenumbers={#1},subsubsection/pagenumbers={#1},% paragraph/pagenumbers={#1},subparagraph/pagenumbers={#1}},% pagenumber/.alias=pagenumbers,% }% %% Specific to lof and lot ---------------------------------------------------- \pgfqkeys{/itf/tocloft/lof}{% title/.store as code in cs=listfigurename,% listfigurename/.alias=title,% ref/.initial=\listfigurename,% ref/.default=\listfigurename,% }% \pgfqkeys{/itf/tocloft/lot}{% title/.store as code in cs=listtablename,% listtablename/.alias=title,% ref/.initial=\listtablename,% ref/.default=\listtablename,% }% \if@cftsubfigopt \pgfqkeys{/itf/tocloft}{% lof/pagenumbers/.style={figure/pagenumbers={#1},subfigure/pagenumbers={#1}},% lof/pagenumber/.alias=lof/pagenumbers,% lot/pagenumbers/.style={figure/pagenumbers={#1},subfigure/pagenumbers={#1}},% lot/pagenumber/.alias=lot/pagenumbers,% }% \else \pgfqkeys{/itf/tocloft}{% lof/pagenumbers/.style={figure/pagenumbers={#1}},% lof/pagenumber/.alias=lof/pagenumbers,% lot/pagenumbers/.style={figure/pagenumbers={#1}},% lot/pagenumber/.alias=lot/pagenumbers,% }% \fi \def\itf@cft@name#1.#2.#3\@nil{cft#1\itf@cft@secname{#2}#3} \def\itf@cft@secname#1{% \expandafter\itf@cft@sec@name\csname#1\endcsname{#1}% }% \itf@cft@secname \def\itf@cft@sec@name#1#2{% \ifx#1\relax #2\else \ifx#1\section sec\else \ifx#1\subsection subsec\else \ifx#1\subsubsection subsubsec\else \ifx#1\paragraph para\else \ifx#1\subparagraph subpara\else \ifx#1\figure fig\else \ifx#1\subsubfigure subfig\else \ifx#1\table tab\else \ifx#1\subtable subtab\else \ifx#1\chapter chap\else #2\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi }% \itf@cft@section@name %% tocloft setup for tables sections : \pgfkeys{% /handlers/.cft@def/.style={% \pgfkeyscurrentpath/.store in cs=\itf@cft@name #1\@nil},% /handlers/.cft@code/.style={% \pgfkeyscurrentpath/.store as code in cs=\itf@cft@name #1\@nil},% /handlers/.cft@length/.style={% \pgfkeyscurrentpath/.store in skip cs=\itf@cft@name #1\@nil},% } \def\itf@cft@newsection{\itf@cft@new@section{/itf/tocloft}} \def\itf@cft@new@section#1#2#3{% #2 = toc | lof | lot, #3=part / chap / sec / subsec etc. \pgfqkeys{#1/#2/#3}{% skip/.cft@length=before.#3.skip,% beforeskip/.alias*=skip,% top/.alias*=skip,% indent/.cft@length=.#3.indent,% font/.cft@code=.#3.font,% font/.append code=\pgfkeysalso{/itf/tocloft/#2/#3/pagenumber/font={##1}},% format/.alias*=font,% color/.store as color,% color/.append code=\pgfkeysalso{/itf/tocloft/#2/#3/font+={% \color{\pgfkeysvalueof{/itf/tocloft/#2/#3/color}}% \ifdefined\hypersetup \hypersetup{% linkcolor=\pgfkeysvalueof{/itf/tocloft/#2/#3/color}}% \fi}},% font/color/.alias=color,% format/color/.alias=color,% number/width/.cft@length=.#3.numwidth,% numwidth/.alias*=number/width,% presnum/.cft@code=.#3.presnum,% number/before/.alias*=presnum,% aftersnum/.cft@code=.#3.aftersnum,% number/after/.alias*=aftersnum,% aftersnumb/.cft@code=.#3.aftersnumb,% title/before/.alias*=aftersnumb,% leader/.cft@def=.#3.leader,% leader/.default=\cftdotfill{\csname\itf@cft@name.#3.dotsep\@nil\endcsname},% leaders/.alias=leader,% dotsep/.code={\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \csdef{\itf@cft@name.#3.dotsep\@nil}{\cftdotsep}% \else \itf@units@mu\itf@musk{##1}% \csedef{\itf@cft@name.#3.dotsep\@nil}{\itf@strip@mu\itf@musk}% \fi},% dotsep/.blank=\cftnodots,% nodots/.code=\csdef{\itf@cft@name.#3.dotsep\@nil}{\cftnodots},% nodots/.value forbidden,% pagefont/.cft@code=.#3.pagefont,% page/font/.alias*=pagefont,% pagenumber/font/.alias*=pagefont,% pagenumbers/font/.alias*=pagefont,% page/color/.store as color,% page/color/.append code=\pgfkeysalso{/itf/tocloft/#2/#3/pagefont+={% \color{\pgfkeysvalueof{/itf/tocloft/#2/#3/page/color}}% \ifdefined\hypersetup \hypersetup{% linkcolor=\pgfkeysvalueof{/itf/tocloft/#2/#3/page/color}}% \fi}},% pagenumber/color/.alias=page/color,% pagenumbers/color/.alias=page/color,% page/font/color/.alias=page/color,% pagenumber/font/color/.alias=page/color,% pagenumbers/font/color/.alias=page/color,% afterpnum/.cft@code=.#3.afterpnum,% page/after/.alias*=afterpnum,% pagenumber/after/.alias*=afterpnum,% pagenumbers/.on=\@cftpnumon{\itf@cft@secname{#3}},% pagenumbers/.off=\@cftpnumoff{\itf@cft@secname{#3}},% pagenumber/.alias=pagenumbers,% }% \pgfqkeys }% \itf@cft@new@section \@for\itf@tp:=part,chap,chapter,sec,section,subsec,subsection,% subsubsec,subsubsection,para,paragraph,subpara,subparagraph% \do{\edef\itf@tp{\noexpand\itf@cft@newsection{toc}{\itf@tp}}\itf@tp}% \if@cftsubfigopt \@for\itf@tp:=fig,figure,subfig,subfigure% \do{\edef\itf@tp{\noexpand\itf@cft@newsection{lof}{\itf@tp}}\itf@tp}% \@for\itf@tp:=tab,table,subtab,subtable% \do{\edef\itf@tp{\noexpand\itf@cft@newsection{lot}{\itf@tp}}\itf@tp}% \else \@for\itf@tp:=fig,figure% \do{\edef\itf@tp{\noexpand\itf@cft@newsection{lof}{\itf@tp}}\itf@tp}% \@for\itf@tp:=tab,table% \do{\edef\itf@tp{\noexpand\itf@cft@newsection{lot}{\itf@tp}}\itf@tp}% \fi \itf@patch\pretocmd\@cftmaketoctitle {\itf@tocloft\contentsname{toc}{tableofcontents}} {\@PackageInfoNoLine{interfaces-tocloft} {\string\@cftmaketoctitle\space successfully augmented}} {\@PackageWarningNoLine{interfaces-tocloft} {\string\@cftmaketoctitle\space could not be patched \MessageBreak label and bookmark keys for \string\tocsetup\space won't work}}% \itf@patch\pretocmd\@cftmakeloftitle {\itf@tocloft\listfigurename{lof}{listoffigures}} {\@PackageInfoNoLine{interfaces-tocloft} {\string\@cftmakeloftitle\space successfully augmented}} {\@PackageWarningNoLine{interfaces-tocloft} {\string\@cftmakeloftitle\space could not be patched \MessageBreak label and bookmark keys for \string\lofsetup\space won't work}}% \itf@patch\pretocmd\@cftmakelottitle {\itf@tocloft\listtablename{lot}{listoftables}} {\@PackageInfoNoLine{interfaces-tocloft} {\string\@cftmakelottitle\space successfully augmented}} {\@PackageWarningNoLine{interfaces-tocloft} {\string\@cftmakelottitle\space could not be patched \MessageBreak label and bookmark keys for \string\lotsetup\space won't work}}% \expandafter\itf@patch\expandafter\patchcmd\csname\string\newlistof\endcsname {#4}{\csname cft#3title\endcsname} {\@PackageInfoNoLine{interfaces-tocloft} {\string\newlistof\space successfully patched}} {\@PackageWarningNoLine{interfaces-tocloft} {\string\newlistof\space could not be patched \MessageBreak \string\listofsetup\space will not work}}% \expandafter\itf@patch\expandafter\apptocmd\csname\string\newlistof\endcsname {\itf@cft@newlistof{#3}{#2}{#4}} {\@PackageInfoNoLine{interfaces-tocloft} {\string\newlistof\space successfully augmented}} {\@PackageWarningNoLine{interfaces-tocloft} {\string\newlistof\space could not be patched \MessageBreak \string\listofsetup\space will not work}}% \expandafter\itf@patch\expandafter\apptocmd\csname\string\newlistentry\endcsname {\itf@cft@newsection{#3}{#2}} {\@PackageInfoNoLine{interfaces-tocloft} {\string\newlistentry\space successfully augmented}} {\@PackageWarningNoLine{interfaces-tocloft} {\string\newlistentry\space could not be patched \MessageBreak \string\listofsetup\space will not work}} \def\itf@tocloft#1#2#3{% \expandafter\def\expandafter#1\expandafter{% \expandafter\itf@cft@label \expandafter#1\expandafter{#1}{#2}{#3}}% }% \itf@tocloft \long\def\itf@cft@label#1#2#3#4{% \def#1{#2}% restore original \begingroup \pgfkeysifdefined{/itf/tocloft/#3/bookmark} {% \raisedhyperdef{interfaces}{#4}{#2}% \pgfkeysgetvalue{/itf/tocloft/#3/bookmark/text}\itf@tp \ifx \itf@tp\@empty \else \pgfkeysgetvalue{/itf/tocloft/#3/bookmark}\@tempa \expandafter\bookmark\expandafter[% \expandafter{\@tempa, dest=interfaces.#4,% level=\pgfkeysvalueof{/itf/tocloft/#3/bookmark/level}% }]{\pgfkeysvalueof{/itf/tocloft/#3/bookmark/text}}% \global\BKM@startatroottrue \fi} {#2}% \pgfkeysgetvalue{/itf/tocloft/#3/label}\itf@tp \ifx \itf@tp\@empty \else \def\@currentHref{interfaces.#4}% \pgfkeysgetvalue{/itf/tocloft/#3/ref}\@currentlabel \def\@currentlabelname{#2}% \label{\pgfkeysvalueof{/itf/tocloft/#3/label}}% \fi \endgroup \gdef\itf@tp{\def#1{#2}\global\let\itf@tp \relax}% restore original \aftergroup\itf@tp % simple group introduced by tocloft to print \contentsname }% \itf@cft@label \endinput %% %% End of file `interfaces-tocloft.sty'.