%% %% 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/11/21 v2.3 - 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: interfaces with keys for other packages (FC) %% Copyright (C) 2010 by Florent Chervet %% \ProvidesPackage{interfaces-base} [2010/11/21 v2.3 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{\@makeother\#\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{% \catcode`\#=6% \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{% \catcode`\#=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} {% \@makeother\M\@makeother\U \lowercase{% \gdef\itf@rem@mu#1.#2MU{#1\ifnum#2>\z@.#2\fi}% }}% %% \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} {% \@makeother\P\@makeother\T\@makeother\S\@makeother\B \@makeother\C\@makeother\M\@makeother\D\@makeother\I\@makeother\N \lowercase{% \gdef\itf@units@mu#1#2{\begingroup \edef\itf@tp{#2}% \@tfor\x:={PT}{pt}{PC}{pc}{IN}{in}{BP}{bp}% {CM}{cm}{MM}{mm}{DD}{dd}{CC}{cc}{SP}{sp}\do{% \@expandtwoargs\in@\x\itf@tp\ifin@\@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 ) {% \@makeother\M\@makeother\U \lowercase{% \gdef\itf@units@pt#1#2{\begingroup \@expandtwoargs\in@{MU}{#2}% \ifin@\else\@expandtwoargs\in@{mu}{#2}\fi \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'.