summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/volumes/volumes.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:11:09 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:11:09 +0000
commit57c3fea48ee17ecf9aaf708519e4301906a31b2f (patch)
tree84e834c2221b8ca796392b5bbc56ce8b6bebbec0 /Master/texmf-dist/tex/latex/volumes/volumes.sty
parent0f14293bc34ef7c1c902b00f6a2f6c1cb5e7a966 (diff)
volumes
git-svn-id: svn://tug.org/texlive/trunk@1444 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/volumes/volumes.sty')
-rw-r--r--Master/texmf-dist/tex/latex/volumes/volumes.sty217
1 files changed, 217 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/volumes/volumes.sty b/Master/texmf-dist/tex/latex/volumes/volumes.sty
new file mode 100644
index 00000000000..682fbd51ed5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/volumes/volumes.sty
@@ -0,0 +1,217 @@
+%%
+%% This is file `volumes.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% volumes.dtx (with options: `volumes')
+%%
+%% Copyright (C) 2003 Frank Küster.
+%%
+%% All rights reserved.
+\ProvidesPackage{volumes}
+ [2004/06/02 v1.0 print only parts of a LaTeX document,
+ with complete indices etc.]
+\newif\if@allincludes\@allincludestrue
+\newif\if@tocall\@tocallfalse
+\newif\if@lofall\@lofallfalse
+\newif\if@lotall\@lotallfalse
+\DeclareOption{manual}{\@allincludesfalse}
+\DeclareOption{tocall}{\@tocalltrue}
+\DeclareOption{lofall}{\@lofalltrue}
+\DeclareOption{lotall}{\@lotalltrue}
+\ProcessOptions%
+\RequirePackage{nowtoaux}
+\newcommand{\vol@do@addto}[1]{#1}
+\let\vol@dont@addto\@gobble
+\newcommand{\voladdtotoc}[1]{%
+ \addtocontents{toc}{\protect\vol@maybe@addto@toc{#1}}%
+}%
+\let\vol@maybe@addto@toc\vol@do@addto
+\newcommand{\voladdtolof}[1]{%
+ \addtocontents{lof}{\protect\vol@maybe@addto@lof{#1}}%
+}%
+\let\vol@maybe@addto@lof\vol@do@addto
+\newcommand{\voladdtolot}[1]{%
+ \addtocontents{lot}{\protect\vol@maybe@addto@lot{#1}}%
+}%
+\let\vol@maybe@addto@lot\vol@do@addto
+\let\volumes@orig@contentsline\contentsline \RequirePackage{scrlfile}
+\AfterPackage{hyperref}{\let\volumes@orig@contentsline\contentsline}
+\@ifpackageloaded{hyperref}{%
+ \let\volumes@new@contentsline\@gobblefour
+}{%
+ \def\volumes@new@contentsline#1#2#3{}
+ \AfterPackage{hyperref}{%
+ \let\volumes@new@contentsline\@gobblefour
+ }
+}
+\def\volumes@switch@orig@contentsline@toc{%
+ \let\contentsline\volumes@orig@contentsline%
+ \let\vol@maybe@addto@toc\vol@do@addto
+}
+\def\volumes@switch@new@contentsline@toc{%
+ \let\contentsline\volumes@new@contentsline%
+ \let\vol@maybe@addto@toc\vol@dont@addto
+}
+\def\volumes@switch@orig@contentsline@lof{%
+ \let\contentsline\volumes@orig@contentsline%
+ \let\vol@maybe@addto@lof\vol@do@addto
+}
+\def\volumes@switch@new@contentsline@lof{%
+ \let\contentsline\volumes@new@contentsline%
+ \let\vol@maybe@addto@lof\vol@dont@addto
+}
+\def\volumes@switch@orig@contentsline@lot{%
+ \let\contentsline\volumes@orig@contentsline%
+ \let\vol@maybe@addto@lot\vol@do@addto
+}
+\def\volumes@switch@new@contentsline@lot{%
+ \let\contentsline\volumes@new@contentsline%
+ \let\vol@maybe@addto@lot\vol@dont@addto
+}
+\def\volume@switch@off{%
+ \if@tocall\else%
+ \immediateaddtocontents{toc}{\protect\volumes@switch@new@contentsline@toc}%
+ \fi%
+ \if@lofall\else%
+ \immediateaddtocontents{lof}{\protect\volumes@switch@new@contentsline@lof}%
+ \fi%
+ \if@lotall\else%
+ \immediateaddtocontents{lot}{\protect\volumes@switch@new@contentsline@lof}%
+ \fi%
+}
+\def\volume@switch@on{%
+ \immediateaddtocontents{toc}{\protect\volumes@switch@orig@contentsline@toc}%
+ \immediateaddtocontents{lof}{\protect\volumes@switch@orig@contentsline@lof}%
+ \immediateaddtocontents{lot}{\protect\volumes@switch@orig@contentsline@lof}%
+}
+\def\volumecommand#1#2{%
+ \expandafter\def\csname volume@command@#1\endcsname{%
+ #2%
+ }%
+}
+\def\allvolumescommand#1{%
+ \def\all@volumes@command{#1}%
+}
+\let\all@volumes@command\relax
+\providecommand\ifnumber[3]{
+ \begingroup\@tempswafalse\let\scr@next\test@number
+ \expandafter\scr@next#1\scr@next
+ \if@tempswa\endgroup#2\else\endgroup#3\fi
+}
+\providecommand*{\test@number}[1]{
+ \ifx \scr@next#1
+ \let\scr@next\relax
+ \else
+ \@tempcnta=\expandafter\expandafter\expandafter\number
+ \expandafter`#1\relax
+ \ifnum \@tempcnta>47\relax
+ \ifnum \@tempcnta<58\relax
+ \@tempswatrue
+ \else\@tempswafalse\fi
+ \else\@tempswafalse\fi
+ \if@tempswa\else\let\scr@next\gobble@till@next\fi\fi
+ \scr@next}
+\providecommand*{\gobble@till@next}{}
+\def\gobble@till@next#1\scr@next{}
+\newcommand*{\volumename}[1]{%
+ \def\volume@name{#1}%
+}%
+\volumename{volume}%
+\newcommand*{\alwaysinclude}[1]{%
+ \if@allincludes
+ \PackageError{volumes}{%
+ need option "manual" for \string\alwaysinclude.%
+ }{%
+ You must use the option "manual" when you want to use
+ \string\alwaysinclude, and\MessageBreak specify
+ the volumes using \string\volumeone\space etc. - see
+ the package documentation.
+ }
+ \else
+ \def\always@include{,#1}
+ \fi
+}
+\def\always@include{}
+\newcommand*{\onlyvolume}[1]{}
+\def\onlyvolume{%
+ \@ifnextchar [{\@onlyvolume}{\@@onlyvolume}
+}
+\def\@onlyvolume[#1]{%
+ \ifnumber{#1}{%
+ \def\volume{#1}
+ }{%
+ \PackageError{volumes}{%
+ Argument to \string\onlyvolume\space must be a number%
+ }{%
+ The optional argument to \string\onlyvolume\space is used to
+ tell volumes.sty which volume it should typeset. You should have
+ specified a number there, but instead, you said: \volume%
+ }%
+ }%
+ \@@onlyvolume
+}
+\newcounter{volume}%
+\newcounter{numberofvolumes}\setcounter{numberofvolumes}{10}%
+\def\@@onlyvolume{%
+ \ifx\volume\undefined%
+ \PackageWarningNoLine{volumes}{Typesetting complete document.}
+ \setcounter{volume}{0}%
+ \@whilenum\c@volume<\c@numberofvolumes\do
+ {%
+ \expandafter\let%
+ \csname volume@switch@\arabic{volume}\endcsname\relax%
+ \stepcounter{volume}%
+ }%
+ \setcounter{volume}{0}%
+ \AtBeginDocument{\all@volumes@command}%
+ \else
+ \ifnumber{\volume}{%
+ \PackageWarningNoLine{volumes}{Typesetting part \volume.}
+ }{%
+ \PackageError{volumes}{\string\volume\space is defined, but not a
+ number}{%
+ The macro \string\volume\space is used to tell volumes.sty which
+ volume it should typeset. You have defined this macro, but it is
+ not a number. Instead, it is: \volume%
+ }%
+ }%
+ \setcounter{volume}{0}%
+ \@whilenum\c@volume<\c@numberofvolumes\do {%
+ \expandafter\let%
+ \csname volume@switch@\arabic{volume}\endcsname%
+ \volume@switch@off%
+ \stepcounter{volume}%
+ }
+ \setcounter{volume}{0}%
+ \AtBeginDocument{\csname volume@command@\volume\endcsname}
+ \expandafter\let%
+ \csname volume@switch@\volume\endcsname\volume@switch@on
+ \includeonly{\volume@name\volume\always@include}%
+ \fi
+ \if@allincludes\else%
+ \@ifundefined{volumelist}{%
+ \def\volumelist{one,two,three,four,five,six,seven,eight,nine,ten}%
+ }{}%
+ \@for\vol@num:=\volumelist\do
+ {%
+ \stepcounter{volume}%
+ \expandafter\let\csname volume\vol@num\expandafter\endcsname%
+ \csname volume@switch@\arabic{volume}\endcsname%
+ }%
+ \setcounter{volume}{0}%
+ \fi
+}
+\setcounter{volume}{0}%
+\if@allincludes%
+ \let\volume@orig@include\include%
+ \def\include{%
+ \stepcounter{volume}%
+ \csname volume@switch@\arabic{volume}\endcsname%
+ \volume@orig@include%
+ }
+\fi
+\endinput
+%%
+%% End of file `volumes.sty'.