%% %% This is file `interfaces-base.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% interfaces.dtx (with options: `base') %% %% This is a generated file. %% %% interfaces : 2010/10/20 v1.0 - 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-hypbmsec.code.tex, %% 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-fancyvrb.sty %% %% interfaces: interfaces with keys for other packages (FC) %% Copyright (C) 2010 by Florent Chervet %% \ProvidesPackage{interfaces-base} [2010/10/10 v1.0 Basic macros for interfaces package (FC)] \RequirePackage{etex,ltxcmds,etoolbox,pgfkeys,scrlfile} \AtEndOfPackage{% \RequirePackage{interfaces-etoolbox}% \RequirePackage{interfaces-scrlfile}% \RequirePackage{interfaces-pgfkeys} \RequirePackage{interfaces-tikz}% \RequirePackage{interfaces-umrand}% There is a \BeforePackage here ! }% AtEndOfPackage \newrobustcmd*\LoadInterface[1]{% \@for\itf@tp:=#1\do{% \expandafter\ifx\csname\ifcsname\itf@tp\endcsname \itf@tp\else relax\fi\endcsname\marks \RequirePackage{interfaces-marks}% \else\expandafter\ifx\csname\ifcsname\itf@tp\endcsname \itf@tp\else relax\fi\endcsname\LaTeX \RequirePackage{interfaces-LaTeX}% \else \expandafter\itf@LoadInterface\expandafter{\itf@tp}% \fi\fi}% }% \LoadInterface \@onlypreamble\LoadInterface \newrobustcmd*\itf@LoadInterface[1]{\ltx@ifpackageloaded{interfaces-#1} {} {\AfterPackage*{#1}{\RequirePackage{interfaces-#1}}}% }% \itf@LoadInterface \newrobustcmd*\itf@Check@Package[1]{\ltx@ifpackageloaded{#1} {} {\PackageError{interfaces-#1} {The package `#1` must be loaded before `interfaces-#1` \MessageBreak Please refer to `interfaces.pdf` document \MessageBreak for correct usage of the `interfaces` package}\@ehd }% }% \itf@Check@Package \newrobustcmd*\itf@AfterPackage[1]{% \csname\ltx@ifpackageloaded{#1}{ltx@secondoftwo}{@AfterPackage}\endcsname{#1}% }% \itf@AfterPackage \AfterPackage*{colortbl}{% \renewcommand*\endarray{% \crcr \egroup \egroup \@arrayright \gdef\@preamble{}\CT@end}% }% AfterPackage colortbl \AfterPackage*{arydshln}{% \ltx@ifpackageloaded{colortbl} {% colortbl \def\endarray{% \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % \@arrayright % \gdef\@preamble{}% }% } {% no colortbl \def\endarray{% \adl@endarray \egroup \adl@arrayrestore \egroup % \@arrayright % \gdef\@preamble{}% }% }% }% AfterPackage arydshln \AfterPackage{colortbl}{% {\ltx@ifpackageloaded{arydshln} {\PackageWarning{interfaces-base} {The package arydshln should be loaded after colortbl \MessageBreak because both redefine \string\@classz}}% {}}% }% AfterPackage colortbl \newrobustcmd*\itf@preapptocmd[5]{% \pretocmd#1{#2}% {\apptocmd#1{#3}% {#4}% {#5}}% {#5}% }% \itf@preapptocmd \def\itf@patch{\futurelet\itf@tp\itf@patch@} \def\itf@patch@{\csname itf@patch@% \ifx\itf@tp\patchcmd inside\else \ifx\itf@tp\itf@preapptocmd inside\else boundary\fi\fi \endcsname }% \itf@patch@ \def\itf@patch@boundary#1#2#3#4#5{% \let\itf@tp#2% #1\itf@tp{#3}% {\let#2\itf@tp \AtBeginDocument{#4}% in order to keep this info even after \dump } {#5}% }% \itf@patch@boundary (for \pretocmd and \apptocmd) \def\itf@patch@inside#1#2#3#4#5#6{% \let\itf@tp#2% #1\itf@tp{#3}{#4}% {\let#2\itf@tp \AtBeginDocument{#5}% } {#6}% }% \itf@patch@inside (for \patchcmd) \newskip\itf@sk \newmuskip\itf@musk \newtoks\itf@tk \newcount\itf@cnt %% H E L P E R M A C R O S \begingroup\makeatother \csgdef{itf@strip@at}#1@{} \endgroup \def\itf@strip@dot#1.#2\@nil{#1} \def\itf@expandonceifcs#1{\expandafter\itf@exp@ndonceifcs\expandafter#1#1Q\@nnil} \def\itf@exp@ndonceifcs#1#2#3\@nnil{% \def\itf@tp{#2}% \ifx\itf@tp#1% \ifcat\relax\noexpand#2% \expandafter\expandafter\expandafter\remove@to@nnil \expandafter\ifx\expandafter#2#2\@nnil\else\@nnil\let#1#2\fi \fi\fi }% \itf@exp@ndonceifcs %% G E T A N U M B E R (if possible) %% USAGE: \itf@number\count\relax\@nnil (like \@defaultunits) \def\itf@number#1#2\relax\@nnil{% \relax is to mimick the syntax of \@defaultunits \afterassignment\itf@number@#1\number0#2\relax\itf@number@ } \def\itf@number@#1\relax#2\itf@number@{% \ifblank{#1} {\itf@number@@{}#2\itf@number@@\@nnil \csname ltx@\ifx\@let@token\itf@number@@ first\else second\fi oftwo\endcsname} \ltx@secondoftwo }% \itf@number@ \def\itf@number@@#1{\futurelet\@let@token\itf@number@@@} \def\itf@number@@@{% \csname \ifx\@let@token\relax itf@number@@% \else remove@to@nnil% \fi \endcsname }% \itf@number@@@ %% U N I T S F O R D I M E N S \def\itf@strip@mu{\expandafter\itf@rem@mu\the} \begingroup \@makeother\M\@makeother\U \lowercase{% \gdef\itf@rem@mu#1.#2MU{#1\ifnum#2>\z@.#2\fi}% }% \endgroup %% \skip = \itf@units@mutopt \muskip \def\itf@units@pttomu#1{\gluetomu\glueexpr \glueexpr#1\relax*1800/% \expandafter\itf@strip@dot\the\dimexpr \fontdimen6\textfont2*100\relax.\@nil \relax }% \itf@units@pttomu \def\itf@units@mutopt#1{\glueexpr \mutoglue\muexpr#1\relax* \expandafter\itf@strip@dot\the\dimexpr \fontdimen6\textfont2*100\relax.\@nil/1800 \relax }% \itf@units@mutopt %% \muskip = \itf@units@mu{ \skip or \muskip or number} \def\itf@units@mu#1#2{\begingroup\@makeother\P \@makeother\T\@makeother\S\@makeother\B\@makeother\C \@makeother\M\@makeother\D\@makeother\I\@makeother\N \edef\itf@tp{#2}% \lowercase{\@tfor\x:={PT}{PC}{IN}{BP}{CM}{MM}{DD}{CC}{SP}\do}{% \@expandtwoargs\in@\x\itf@tp\ifin@\expandafter\@break@tfor\fi }% \expandafter\endgroup \ifin@ #1=\itf@units@pttomu{#2}% \else \@defaultunits#1 #2mu\relax\@nnil \fi }% \itf@units@mu %% \skip = \itf@units@pt( \muskip or \skip or number ) \def\itf@units@pt#1#2{\begingroup\@makeother\M\@makeother\U \lowercase{\@expandtwoargs\in@{MU}}{#2}% \expandafter\endgroup \ifin@ #1=\itf@units@mutopt{#2}% \else \@defaultunits#1 #2pt\relax\@nnil \fi }% \itf@units@pt %% glue * 1.5 = glue * 98302 / 65536 %% glue * 3/2 = glue * 3/2 \def\itf@units@scale#1!{\itf@units@scale@normalize#1/\@nnil/\@nil} \def\itf@units@scale@normalize#1/#2/#3\@nil{% \ifx#2\@nnil \number\dimexpr#1pt\relax/65536 \else#1/#2 \fi }% \itf@units@normalize \AtBeginDocument{% \ltx@ifpackageloaded{xcolor} {\@ifundefinedcolor{default} {\colorlet{default}{.}} {}}% {\ltx@ifpackageloaded{color} {\@ifundefined{\string\color @default} {\expandafter\def\csname\string\color @default\endcsname{\default@color}} {}}% {}}% } \endinput %% %% End of file `interfaces-base.sty'.