diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:57:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:57:41 +0000 |
commit | 31b4be8b38b88b3decc0a6533fee4b7ce520391f (patch) | |
tree | 6e8812c0c5e813f010bd5137e986e61eb848dc3a /Master/texmf-dist/tex/latex/labbook | |
parent | e76e07998274e32373b8d7841c0ebcb450494fff (diff) |
labbook
git-svn-id: svn://tug.org/texlive/trunk@1021 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/labbook')
-rw-r--r-- | Master/texmf-dist/tex/latex/labbook/boilerplates.tex | 43 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/labbook/labbook.cls | 607 |
2 files changed, 650 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/labbook/boilerplates.tex b/Master/texmf-dist/tex/latex/labbook/boilerplates.tex new file mode 100644 index 00000000000..a06ccfb9417 --- /dev/null +++ b/Master/texmf-dist/tex/latex/labbook/boilerplates.tex @@ -0,0 +1,43 @@ +%% +%% This is file `boilerplates.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% labbook.dtx (with options: `boilerplates') +%% +%% Copyright (C) 2002 Frank K^^fcster. +%% +%% All rights reserved. +\ProvidesFile{boilerplates.tex}% + [2003/05/20 v1.1 LaTeX2e labbook document class] +\newcommand*{\sometext}{A rather lengthy description which is just + here to use some space, so that one can see the effect of the index + ranges. } +\newcommand*{\Xsometext}{\sometext\sometext\sometext\sometext + \sometext\sometext\sometext\sometext\sometext\sometext} +\newcommand*{\othertext}{Some shorter Text, the cells will only grow + if you're not a muggle\dots } +\newcommand*{\Xothertext}{\othertext\othertext\othertext + \othertext\othertext\othertext\othertext} + +\newcommand{\sdsband}{\rule{1cm}{0.15cm}} +\newcommand{\sdsbandh}{\rule[0.2cm]{1cm}{0.15cm}} +\newcommand{\sdsbandl}{\rule[-0.15cm]{1cm}{0.15cm}} +\newcommand*{\sdsgel}{% + \begin{tabular}{cccccccc} +\sdsband & \sdsbandl & \sdsband & \sdsbandh & + \sdsbandh & \sdsband & \sdsbandl & \sdsband \\[0.5cm] +\sdsbandl & \sdsband & \sdsbandh & \sdsbandl & + \sdsband & \sdsbandl & \sdsbandh & \sdsband \\[0.5cm] +\sdsbandh & \sdsbandl & \sdsbandh & \sdsband & + \sdsbandl & \sdsbandh & \sdsband & \sdsbandl \\[0.5cm] +\sdsband & \sdsbandh & \sdsbandl & \sdsbandl & + \sdsband & \sdsbandh & \sdsbandl & \sdsbandh \\[0.5cm] +\sdsbandl & \sdsbandl & \sdsbandh & \sdsband & + \sdsbandh & \sdsbandl & \sdsbandh & \sdsband \\[0.5cm] + \end{tabular} +} +\endinput +%% +%% End of file `boilerplates.tex'. diff --git a/Master/texmf-dist/tex/latex/labbook/labbook.cls b/Master/texmf-dist/tex/latex/labbook/labbook.cls new file mode 100644 index 00000000000..f486b947fab --- /dev/null +++ b/Master/texmf-dist/tex/latex/labbook/labbook.cls @@ -0,0 +1,607 @@ +%% +%% This is file `labbook.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% labbook.dtx (with options: `labbook') +%% +%% Copyright (C) 2002 Frank K^^fcster. +%% +%% All rights reserved. +\ProvidesClass{labbook} + [2003/05/20 v1.1 LaTeX2e labbook document class] +\newif\ifwe@use@hyperref\we@use@hyperreffalse +\DeclareOption{hyperref}{\we@use@hyperreftrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}} +\ProcessOptions\relax +\LoadClass{scrbook} +\RequirePackage{makeidx} \makeindex +\def\newexperiment#1{% + \@ifnextchar [{\opt@arg@newexperiment{#1}}% + {\nopt@arg@newexperiment{#1}}%] +} +\def\nopt@arg@newexperiment#1#2{% + \@ifundefined{long@exp@#1}{% + \@namedef{long@exp@#1}{#2}% + \@namedef{short@exp@#1}{#2}% + }{% + \ClassError + {labbook} + {experiment abbreviation yet defined} + {The abbreviation for an experiment that you wanted to define + with this command has already been defined.}% + } +} +\def\opt@arg@newexperiment#1[#2]#3{% + \@ifundefined{long@exp@#1}{% + \@namedef{long@exp@#1}{#3}% + \@namedef{short@exp@#1}{#2}% + }{% + \ClassError + {labbook} + {experiment abbreviation yet defined} + {The abbreviation for an experiment that you wanted to define + with this command has already been defined.}% + } +} +\def\newsubexperiment#1{% + \@ifnextchar [{\opt@arg@newsubexperiment{#1}}%] + {\nopt@arg@newsubexperiment{#1}}% +}% +\def\nopt@arg@newsubexperiment#1#2{% + \@ifundefined{long@subexp@#1}{% + \@namedef{long@subexp@#1}{#2}% + \@namedef{short@subexp@#1}{#2}% + }{% + \ClassError + {labbook} + {experiment abbreviation yet defined} + {The abbreviation for an experiment that you wanted to define + with this command has already been defined.}% + }% +}% +\def\opt@arg@newsubexperiment#1[#2]#3{% + \@ifundefined{long@subexp@#1}{% + \@namedef{long@subexp@#1}{#3}% + \@namedef{short@subexp@#1}{#2}% + }{% + \ClassError + {labbook} + {experiment abbreviation yet defined} + {The abbreviation for an experiment that you wanted to define + with this command has already been defined.}% + }% +}% +\def\@tmpA#1{% +\def\FK@@sp@def##1##2{% + \futurelet\FK@tempa\FK@@sp@d##2\@nil\@nil#1\@nil\relax##1}% +\def\FK@@sp@d{% + \ifx\FK@tempa\@sptoken + \expandafter\FK@@sp@b + \else + \expandafter\FK@@sp@b\expandafter#1% + \fi}% +\def\FK@@sp@b#1##1 \@nil{\FK@@sp@c##1}% + }% +\def\FK@@sp@c#1\@nil#2\relax#3{\FK@toks@{#1}\edef#3{\the\FK@toks@}}% +\newtoks\FK@toks@% +\@tmpA{ }% +\newcounter{fk@commasep@argnumber}% +\def\fk@getcommasep@list#1#2#3#4#5#6{% + \setcounter{fk@commasep@argnumber}{0}% + #1 + \def\fk@commasep@beforebranch{#2}% + \def\fk@commasep@firstelement{#3}% + \def\fk@commasep@furtherelements{#4}% + \def\fk@commasep@afterlastelement{#5\empty}% + \def\fk@commasep@aftereachelement{#6}% + \fk@@getcommasep@list +} +\def\fk@@getcommasep@list#1,{% + \stepcounter{fk@commasep@argnumber}% + \fk@commasep@beforebranch% + \ifx\relax#1% + \fk@commasep@afterlastelement% + \else% + \FK@@sp@def\fk@commasep@arg{#1}% + \ifnum\c@fk@commasep@argnumber=1% + \fk@commasep@firstelement% + \else% + \fk@commasep@furtherelements% + \fi% + \fk@commasep@aftereachelement% + \expandafter\fk@@getcommasep@list% + \fi% +} +\newcounter{fk@atdashsep@argnumber}% +\def\fk@getatdashsep@list#1#2#3#4#5#6{% + \setcounter{fk@atdashsep@argnumber}{0}% + #1 + \def\fk@atdashsep@beforebranch{#2}% + \def\fk@atdashsep@firstelement{#3}% + \def\fk@atdashsep@furtherelements{#4}% + \def\fk@atdashsep@afterlastelement{#5\empty}% + \def\fk@atdashsep@aftereachelement{#6}% + \fk@@getatdashsep@list +} +\def\fk@@getatdashsep@list#1^^a7{% + \stepcounter{fk@atdashsep@argnumber}% + \fk@atdashsep@beforebranch% + \ifx\relax#1% + \fk@atdashsep@afterlastelement% + \else% + \FK@@sp@def\fk@atdashsep@arg{#1}% + \ifnum\c@fk@atdashsep@argnumber=1% + \fk@atdashsep@firstelement% + \else% + \fk@atdashsep@furtherelements% + \fi% + \fk@atdashsep@aftereachelement% + \expandafter\fk@@getatdashsep@list% + \fi% +} +\newif\ifmore@thanone@item% +\def\fk@parse@optarg{% + \fk@getcommasep@list{% + \more@thanone@itemfalse% + }{% + }{% + \@onelevel@sanitize{\fk@commasep@arg}% + \protected@edef\fk@current@tocentry{\fk@commasep@arg}% + }{% + \more@thanone@itemtrue% + \protected@edef\fk@currentarg{\fk@commasep@arg}% + \@onelevel@sanitize{\fk@currentarg}% + \protected@edef\fk@currentarg@withspace{\fk@currentarg\space}% + \expandafter\fk@checkifabbrev@arg% + \fk@currentarg@withspace&{long@\fk@explevel}% + \ifabbrev@defined% + \expandafter\protected@edef% + \csname fk@current@\fk@explevel name\expandafter% + \endcsname{% + \csname short@\fk@explevel @\fk@currentarg\endcsname}% + \fk@buildindexlist{% + \csname short@\fk@explevel @\fk@currentarg\endcsname}% + \else% + \expandafter\protected@edef% + \csname fk@current@\fk@explevel name\endcsname{% + \fk@currentarg}% + \expandafter\fk@buildindexlist{\fk@currentarg} + \fi% + }{% + \protected@edef\fk@currentarg{\fk@current@tocentry}% + \@onelevel@sanitize{\fk@currentarg}% + \protected@edef\fk@currentarg@withspace{\fk@currentarg\space}% + \expandafter\fk@checkifabbrev@arg% + \fk@currentarg@withspace&{long@\fk@explevel}% + \ifmore@thanone@item\else% + \ifabbrev@defined% + \fk@buildindexlist{% + \csname short@\fk@explevel @\fk@currentarg\endcsname}% + \else% + \expandafter\fk@buildindexlist{\fk@currentarg}% + \fi% + \fi% + }{% + }% +} +\def\fk@exp@indexlist{}% +\def\fk@subexp@indexlist{}% +\def\fk@buildindexlist#1{% + \def\@tmpA{exp} + \ifx\fk@explevel\@tmpA + \protected@edef\fk@exp@indexlist{#1^^a7\fk@exp@indexlist} + \else + \protected@edef\fk@subexp@indexlist{#1^^a7\fk@subexp@indexlist} + \fi +} +\def\fk@useindexlist{% + \fk@getatdashsep@list{}{}{}{}{}{% + \fk@@writeindex{\fk@atdashsep@arg}% + }% +}% +\def\fk@@writeindex#1{% + \def\@tmpA{exp}% + \ifx\fk@explevel\@tmpA% + \fk@writeindex{#1}% + \else% + \ifx\fk@parselevel\@tmpA% we are iterating over the current list + % of experiments + \protected@edef\fk@current@expname{#1} + \def\fk@parselevel{subexp} + \expandafter\fk@useindexlist\fk@subexp@indexlist\relax^^a7% + \def\fk@parselevel{exp} + \else + \fk@writeindex{\fk@current@expname!#1}% + \fi + \fi% +}% +\def\fk@openindex#1{\index{#1|(}}%) +\def\fk@closeindex#1{\index{#1|)}}%) +\def\muST@bE@emPTy{\message{Numquam videbor}}% +\newif\ifabbrev@defined% +\def\fk@checkifabbrev@arg #1 #2{% + \ifx\muST@bE@emPTy#2\muST@bE@emPTy% + \protected@edef\@tmpA{#1\space}% + \expandafter\fk@checkfirst\@tmpA{#3}% + \else% + \abbrev@definedfalse% + \fi% +}% +\def\fk@checkfirst #1 #2{% + \@ifundefined{#2@#1}{\abbrev@definedfalse}{\abbrev@definedtrue}% +}% +\def\fk@close@labindex{% + \let\fk@writeindex\fk@closeindex% + \@ifundefined{fk@explevel}{}{% + \def\@tmpA{exp}% + \ifx\fk@explevel\@tmpA% + \def\fk@parselevel{exp}% + \def\fk@explevel{subexp}% + \fk@@close@labindex% + \def\fk@explevel{exp}% + \fk@@close@labindex% + \else% + \fk@@close@labindex% + \fi% + }% +}% +\def\fk@@close@labindex{% + \expandafter\fk@useindexlist\fk@exp@indexlist\relax^^a7% + \expandafter\def\csname fk@\fk@explevel @indexlist\endcsname{}% +} +\newcounter{labday} +\newcounter{experiment}[labday] +\newcounter{subexperiment}[experiment] +\@addtoreset{footnote}{labday} +\@addtoreset{subsubsection}{subexperiment} +\let\experimentmark\@gobble +\let\subexperimentmark\@gobble +\setcounter{tocdepth}{3} +\def\experiment{% + \def\fk@explevel{exp} + \fk@close@labindex% + \lower@sectionlevelfalse% + \@ifstar{\@sexperiment}{\@experiment}% +} +\def\@experiment{% + \@ifnextchar [{\opt@arg@experiment}{\nopt@arg@experiment}% +} +\def\nopt@arg@experiment#1{% + \def\fk@currentarg{#1 }\@onelevel@sanitize{\fk@currentarg}% + \expandafter\fk@checkifabbrev@arg\fk@currentarg&{long@exp}% + \ifabbrev@defined% + \fk@buildindexlist{\csname short@exp@#1\endcsname}% + \@startsection{experiment}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\@nameuse{short@exp@#1}]{\@nameuse{long@exp@#1}}% + \else% + \expandafter\fk@buildindexlist{\fk@currentarg} + \@startsection{experiment}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + {#1}% + \fi% +}% +\def\opt@arg@experiment[#1]#2{% + \fk@parse@optarg#1,\relax,% + \ifabbrev@defined% + \def\fk@currentarg{#2 }\@onelevel@sanitize{\fk@currentarg}% + \expandafter\fk@checkifabbrev@arg\fk@currentarg&{long@exp}% + \ifabbrev@defined% + \expandafter\ifx% + \csname short@exp@\fk@current@tocentry\expandafter% + \endcsname\csname short@exp@#2\endcsname% + \@startsection{experiment}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\@nameuse{short@exp@\fk@current@tocentry}]% + {\@nameuse{long@exp@#2}}% + \else% + \ClassError + {labbook} + {index entry and experiment title don't match} + {% + You have used \protect\experiment\space with an + optional argument, and used abbreviations + \MessageBreak both in the optional argument + (the first item in square brackets, for the index + and toc\MessageBreak entries) and the mandatory + argument (in curly braces, for the experiment title + in the text). This is only possible if both would + yield the same index/toc\MessageBreak + entries. However, you requested the index + entry\MessageBreak + \@nameuse{short@exp@\fk@current@tocentry} + \MessageBreak + but the title corresponds to index entry\MessageBreak + \@nameuse{short@exp@#2}}% + \fi% + \else% + \ClassWarning{labbook} + {Using a pre-defined short form for this + \protect\experiment.\MessageBreak + Please check that the abbreviation\MessageBreak + \csname short@exp@#1\endcsname\MessageBreak corresponds + properly to the long form \MessageBreak #2\MessageBreak} + \@startsection{experiment}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\@nameuse{short@exp@\fk@current@tocentry}]{#2}% + \fi% + \else% + \def\fk@currentarg{#2 }\@onelevel@sanitize{\fk@currentarg}% + \expandafter\fk@checkifabbrev@arg\fk@currentarg&{long@exp}% + \ifabbrev@defined% + \ClassError {labbook} {Manual short form conflicts with + abbreviated title} {You have used an optional argument to + \protect\experiment\space (the first element in + square\MessageBreak brackets) that TeX does not + recognize as an abbreviation. However, in the + \MessageBreak experiment title (in the curly braces), + you have used an abbreviation defined\MessageBreak with + \protect\newexperiment. This doesn't make sense, so + I don't accept it.}% + \else% + \@startsection{experiment}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\fk@current@tocentry]{#2}% + \fi% + \fi% +}% +\def\@sexperiment#1{% + \ClassError{labbook}{% + Starred form of \protect\experiment\space not defined + }{% + There is no starred form of \protect\experiment\space defined + in this version of labbook.cls. Please use the unstarred form, or + check for a new version. + } +} +\def\subexperiment{% + \def\fk@explevel{subexp}% + \def\fk@parselevel{exp}% + \fk@close@labindex% + \lower@sectionlevelfalse% + \@ifstar{\@ssubexperiment}{\@subexperiment}% +}% +\def\@subexperiment{% + \@ifnextchar [{\opt@arg@subexperiment}{\nopt@arg@subexperiment}%] +}% +\def\nopt@arg@subexperiment#1{% + \def\fk@parselevel{exp} + \def\fk@currentarg{#1 }\@onelevel@sanitize{\fk@currentarg}% + \expandafter\fk@checkifabbrev@arg\fk@currentarg&{long@subexp}% + \ifabbrev@defined% + \fk@buildindexlist{\csname short@subexp@#1\endcsname}% + \@startsection{subexperiment}{2}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\@nameuse{short@subexp@#1}]{\@nameuse{long@subexp@#1}}% + \else + \expandafter\fk@buildindexlist{#1} + \@startsection{subexperiment}{2}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + {#1}% + \fi% +}% +\def\opt@arg@subexperiment[#1]#2{% + \def\fk@parselevel{subexp} + \fk@parse@optarg#1,\relax,% + \def\fk@parselevel{exp}% + \ifabbrev@defined% + \def\fk@currentarg{#2 }\@onelevel@sanitize{\fk@currentarg}% + \expandafter\fk@checkifabbrev@arg\fk@currentarg&{long@exp}% + \ifabbrev@defined% + \expandafter\ifx\csname short@subexp@\fk@current@tocentry% + \expandafter\endcsname\csname short@subexp@#2\endcsname% + \@startsection{subexperiment}{2}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\@nameuse{short@subexp@\fk@current@tocentry}]% + {\@nameuse{long@subexp@#2}}% + \else% + \ClassError + {labbook} + {index entry and subexperiment title don't match} + {% + You have used \protect\subexperiment\space with an + optional argument, and used abbreviations\MessageBreak + both in the optional argument (in square brackets, for + the index and toc\MessageBreak entries) and the + mandatory argument (in curly braces, for the experiment + title in the text). This is only possible if both would + yield the same index/toc\MessageBreak entries. However, + you requested the index entry\MessageBreak + \@nameuse{short@subexp@#1}\MessageBreak + but the title corresponds to index entry\MessageBreak + \@nameuse{short@subexp@#2}}% + \fi% + \else% + \ClassWarning{labbook} + {Using a pre-defined short form for this + \protect\subexperiment.\MessageBreak + Please check that the abbreviation\MessageBreak \csname + short@subexp@#1\endcsname\MessageBreak corresponds + properly to the long form \MessageBreak #2\MessageBreak}% + \@startsection{subexperiment}{2}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\@nameuse{short@subexp@\fk@current@tocentry}]{#2}% + \fi% + \else% + \def\fk@currentarg{#2 }\@onelevel@sanitize{\fk@currentarg}% + \expandafter\fk@checkifabbrev@arg\fk@currentarg&{long@subexp}% + \ifabbrev@defined% + \ClassError + {labbook} + {Manual short form conflicts with abbreviated title} + {You have used an optional argument to + \protect\subexperiment\space (the short form, in + \MessageBreak square brackets) that TeX does not + recognize as an abbreviation. However, \MessageBreak + in the subexperiment title (in the curly braces), + you have used an abbreviation\MessageBreak defined + with \protect\newsubexperiment. This doesn't make + sense, so I don't accept it.}% + \else% + \@startsection{subexperiment}{2}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}% + [\fk@current@tocentry]{#2}% + \fi% + \fi% +}% +\def\@ssubexperiment#1{% + \ClassError{labbook}{% + Starred form of \protect\subexperiment\space not defined + }{% + There is no starred form of \protect\subexperiment\space defined + in this version of labbook.cls. Please use the unstarred form, or + check for a new version. + }% +}% +\newcommand*{\labday}{% + \def\fk@explevel{exp}% + \fk@close@labindex% + \let\fk@explevel\@undefined% + \refstepcounter{labday}% + \addchap% +}% +\let\fk@part\part +\renewcommand*{\part}{% + \def\fk@explevel{exp}% + \fk@close@labindex% + \let\fk@explevel\@undefined% + \fk@part% +} +\newif\iflower@sectionlevel +\let\fk@oldsubsubsection\subsubsection% +\renewcommand{\subsubsection}{% + \lower@sectionleveltrue% + \fk@oldsubsubsection% +} +\renewcommand*\theexperiment{\@arabic\c@experiment}% +\renewcommand*\thesubexperiment{% + \theexperiment.\@arabic\c@subexperiment}% +\renewcommand*\thesubsubsection{% + \thesubexperiment.\@arabic\c@subsection}% +\renewcommand*\theparagraph{% + \thesubsubsection.\@arabic\c@paragraph}% +\renewcommand*\thesubparagraph{% + \theparagraph.\@arabic\c@subparagraph}% +\@addtoreset{figure}{labday}% +\@addtoreset{table}{labday}% +\renewcommand*\thefigure{% + \@arabic\c@figure}% +\renewcommand*\thetable{% + \@arabic\c@table}% +\let\l@labday\l@chapter% +\let\l@experiment\l@section% +\let\l@subexperiment\l@subsection% +\def\define@addcontentsline{% + \let\fk@old@addcontentsline\addcontentsline% + \def\addcontentsline##1##2##3{% + \fk@old@addcontentsline{##1}{##2}{##3}% + \def\@tmpA{toc}% + \def\@tmpB{##1}% + \ifx\@tmpA\@tmpB% + \@ifundefined{fk@explevel}{}{% + \iflower@sectionlevel\else% + \let\fk@writeindex\fk@openindex% + \expandafter\fk@useindexlist\fk@exp@indexlist\relax^^a7% + \fi% + }% + \fi% + }% +}% +\ifwe@use@hyperref\else% + \define@addcontentsline% +\fi% +\newif\iflast@labindex@closed\last@labindex@closedfalse% +\let\fk@old@appendix\appendix% +\def\appendix{% + \iflast@labindex@closed\else% + \def\fk@explevel{exp}% + \fk@close@labindex% + \last@labindex@closedtrue% + \let\fk@explevel\@undefined% + \setcounter{footnote}{0}% + \fi% + \fk@old@appendix% +}% +\let\fk@old@backmatter\backmatter% +\def\backmatter{% + \iflast@labindex@closed\else% + \def\fk@explevel{exp}% + \fk@close@labindex% + \last@labindex@closedtrue% + \let\fk@explevel\@undefined + \setcounter{footnote}{0}% + \fi% + \fk@old@backmatter% +} +\AtEndDocument{% + \iflast@labindex@closed\else% + \def\fk@explevel{exp}% + \fk@close@labindex% + \fi% +} +\ifwe@use@hyperref + \AfterPackage{hyperref}{% + \define@addcontentsline% + \providecommand*{\toclevel@labday}{0}% + \providecommand*{\toclevel@experiment}{1}% + \providecommand*{\toclevel@subexperiment}{2}% + \newcommand*\theHlabday{% + \arabic{labday}}% + \newcommand*\theHexperiment{% + \theHlabday.\arabic{experiment}}% + \newcommand*\theHsubexperiment{% + \theHexperiment.\arabic{subexperiment}}% + \renewcommand*\theHsubsubsection{% + \theHsubexperiment.\arabic{subsubsection}}% + \renewcommand*\theHfigure{% + \theHlabday.\arabic{figure}}% + \renewcommand*\theHtable{% + \theHlabday.\arabic{table}}% + \newcommand*\theHsubfigure{% + \theHfigure.\arabic{subfigure}} + }% + \AtBeginDocument{% + \@ifpackageloaded{hyperref}{}{% + \ClassError{labbook}{% + hyperref option given, but package not loaded}{% + You have specified the class option hyperref, but + not loaded the package until \protect\begin{document}. + } + } + } +\else + \AtBeginDocument{% + \@ifpackageloaded{hyperref}{% + \ClassError{labbook}{% + hyperref option not given, but package loaded}{% + You have not specified the class option hyperref, + but loaded the package. Don't do that again! + }% + }{}% + }% +\fi% +\endinput +%% +%% End of file `labbook.cls'. |