summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/combine
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2008-05-26 17:41:55 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2008-05-26 17:41:55 +0000
commite7e6d544bac1225c4bf36f70687fb6e12c4641ba (patch)
tree89c25f4ca39743bd73ca040c1197685b96b1cc7d /Master/texmf-dist/source/latex/combine
parentd233d3b8f65e431989a1c4fda4b0a828a6fc22d6 (diff)
combine update to v0.64a 2004/05/07 entering tlpkg-ctan-check
git-svn-id: svn://tug.org/texlive/trunk@8357 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/combine')
-rw-r--r--Master/texmf-dist/source/latex/combine/combine.dtx555
-rw-r--r--Master/texmf-dist/source/latex/combine/combine.ins54
2 files changed, 421 insertions, 188 deletions
diff --git a/Master/texmf-dist/source/latex/combine/combine.dtx b/Master/texmf-dist/source/latex/combine/combine.dtx
index 080791c6b8b..aa2cb2ecaf7 100644
--- a/Master/texmf-dist/source/latex/combine/combine.dtx
+++ b/Master/texmf-dist/source/latex/combine/combine.dtx
@@ -1,21 +1,32 @@
% \iffalse meta-comment
%
% combine.dtx
-% Copyright 2000 Peter R. Wilson
+% Author: Peter Wilson (CUA) now at peter.r.wilson@boeing.com until June 2004
+% (or at: pandgwilson at earthlink dot net)
+% Copyright 2000, 2001, 2002, 2003, 2004 Peter R. Wilson
%
-% This program is provided under the terms of the
-% LaTeX Project Public License distributed from CTAN
-% archives in directory macros/latex/base/lppl.txt.
+% 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 the license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2003/06/01 or later.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% This work consists of the files listed in the README file.
%
-% Author: Peter Wilson (CUA) (now at: peter.r.wilson@boeing.com)
%
%<*driver>
-\documentclass{ltxdoc}
+\documentclass[twoside]{ltxdoc}
+\makeatletter \@mparswitchfalse \makeatother
\EnableCrossrefs
\CodelineIndex
%%\OnlyDescription
-\pagestyle{headings}
\renewcommand{\MakeUppercase}[1]{#1}
+\pagestyle{headings}
\setcounter{StandardModuleDepth}{1}
\begin{document}
\DocInput{combine.dtx}
@@ -24,7 +35,7 @@
%
% \fi
%
-% \CheckSum{3664}
+% \CheckSum{3866}
%
% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
% \DoNotIndex{\@centercr,\@cite}
@@ -82,7 +93,14 @@
% \changes{v0.53}{2001/09/05}{Fixed problem with spaces in ToC entries}
% \changes{v0.54}{2001/12/19}{Added text about exam class}
% \changes{v0.6}{2002/08/24}{Added option for single bibliography}
-%
+% \changes{v0.61}{2003/05/22}{Minimal tweak to combnat}
+% \changes{v0.62}{2003/07/19}{Minimal addition to combine}
+% \changes{v0.63}{2003/11/09}{Memoir option added to combine}
+% \changes{v0.63}{2003/11/09}{Added the combcite package}
+% \changes{v0.64}{2004/03/06}{Minor change to combinet package}
+% \changes{v0.64a}{2004/05/07}{Minor change to the abstract}
+%
+% \def\dtxfilename{\texttt{combine.dtx}}
% ^^A \def\fileversion{v0.3}
% ^^A \def\filedate{2000/05/20}
% ^^A \def\fileversion{v0.4}
@@ -95,10 +113,13 @@
% ^^A \def\filedate{2001/07/09}
% ^^A \def\fileversion{v0.52}
% ^^A \def\filedate{2001/08/25}
-% \def\fileversion{v0.53}
-% \def\filedate{2001/09/05}
-% \def\fileversion{v0.6}
-% \def\filedate{2002/08/24}
+% \def\fileversion{v0.53} \def\filedate{2001/09/05}
+% \def\fileversion{v0.6} \def\filedate{2002/08/24}
+% \def\fileversion{v0.61} \def\filedate{2003/05/22}
+% \def\fileversion{v0.62} \def\filedate{2003/07/19}
+% \def\fileversion{v0.63} \def\filedate{2003/11/09}
+% \def\fileversion{v0.64} \def\filedate{2004/03/06}
+% \def\fileversion{v0.64a} \def\filedate{2004/05/07}
% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package
% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option
% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file
@@ -106,33 +127,35 @@
% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle
% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment
%
-% \title{The \Lpack{combine} class and the \Lpack{combinet}
-% and \Lpack{combnat} packages\thanks{This
-% file has version number \fileversion, last revised
-% \filedate.}}
+% \title{The \Lpack{combine} class and the \Lpack{combinet},
+% \Lpack{combnat} and \Lpack{combcite} packages\thanks{This file (\dtxfilename)
+% has version number \fileversion, last revised \filedate.}}
%
% \author{%
% Peter Wilson\thanks{Dick Nickalls (\texttt{dicknickalls@compuserve.com})
% provided several requirements and suggestions.
% He also very helpfully tested earlier experimental versions.}\\
% Catholic University of America \\
-% Now at \texttt{peter.r.wilson@boeing.com}
+% Now at \texttt{peter.r.wilson@boeing.com}\thanks{After May 2004 at
+% \texttt{pandgwilson at earthlink dot net}}
% }
% \date{\filedate}
% \maketitle
% \begin{abstract}
% The \Lpack{combine} class can be used to assemble a group
% of individual \LaTeX{} documents into a single document,
-% such as required for a conference proceedings. All the
-% documents should be of the same class
-% (e.g., all \Lpack{article}s or all \Lpack{report}s).
+% such as required for a conference proceedings. Typically the documents
+% are all of the same class, but with some limitations on ordering
+% may be of different classes (e.g., several \Lpack{article}s with
+% one \Lpack{letter}).
% The class requires the \Lpack{keyval} package.
%
% The accompanying \Lpack{combinet} and \Lpack{combnat} packages
% respectively let
% the titles of imported documents be added to the main ToC, and
% enable the \Lpack{combine} class and the \Lpack{natbib} package
-% to cooperate.
+% to cooperate. The \Lpack{combcite} package enables the \Lpack{cite}
+% package to cooperate.
% \end{abstract}
% \tableofcontents
%
@@ -152,12 +175,14 @@
%
% Section~\ref{sec:usc} describes the usage of the \Lpack{combine} class and
% Sections~\ref{pack} and~\ref{natpack} describe the \Lpack{combinet}
-% and \Lpack{combnat} packages.
+% and \Lpack{combnat} packages. Section~\ref{citepack} describes
+% the \Lpack{combcite} package.
% Commented source code for the class is in Section~\ref{sec:code}.
% The class requires the \Lpack{keyval} package to be available.
% Commented source code for the \Lpack{combinet} package is in
-% Section~\ref{packcode}, and for \Lpack{combnat} is in
-% Section~\ref{natpackcode}.
+% Section~\ref{packcode}, for \Lpack{combnat} is in
+% Section~\ref{natpackcode} and for \Lpack{combcite} is in
+% Section~\ref{citepackcode}.
%
% Note that the version number and date given for this file does not
% necessarily match version numbers or dates for the class and packages.
@@ -219,10 +244,10 @@
% the class of the individual documents, the \Lpack{combine}
% class provides the following additional options:
% \begin{itemize}
-% \item \Lopt{book}, \Lopt{report} and \Lopt{letter}.
+% \item \Lopt{memoir}, \Lopt{book}, \Lopt{report}, and \Lopt{letter}.
% By default the \Lpack{article}
% class is assumed for both the main and the imported documents.
-% These options change the class to \Lpack{book}, \Lpack{report} or
+% These options change the class to \Lpack{memoir}, \Lpack{book}, \Lpack{report} or
% \Lpack{letter}, respectively.
% \item \Lopt{colclass=\meta{class}}. This option changes
% the `classes' to \meta{class}. For example, specifying
@@ -657,6 +682,16 @@
% \newcommand{\mymacro}[1]{#1 is a bagpiper and of course is tone deaf}
% \end{verbatim}
% \end{small}\par
+%
+% \DescribeMacro{\emptyAtBeginDocument}
+% Some combinations of circumstances cause an infinite recursion at the
+% start of an imported document; in particular the combination of
+% \texttt{combine + graphicx + caption2 + pdflatex} causes this. In this case
+% the solution was to put |\emptyAtBeginDocument| immediately after the
+% initial |\begin{document}|. It may also have worked if it had been added
+% after each |\begin{papers}| or before each |\import{}|. An error message
+% about being out of stack space may indicate recursion. Judicious use
+% of |\emptyAtBeginDocument| may resolve the problem.
%
% \subsection{Imports in subdirectories}
%
@@ -744,6 +779,34 @@
% For details on the \meta{natbib-options} and the other facilities,
% read the \Lpack{natbib} documentation~\cite{NATBIB}.
%
+% \section{The \Lpack{combcite} package} \label{citepack}
+%
+% The \Lpack{combine} class and Donald Aresneau's \Lpack{cite}
+% package~\cite{CITE}
+% both redefine some of the same basic LaTeX macros, and naturally
+% the redefinitions are incompatible\footnote{Discovered by
+% Marcilio Alves (\texttt{maralves@usp.br}) in
+% November 2003.}
+%
+% The \Lpack{combcite} (COMBine CITE) package hopefully resolves this
+% problem. With the \Lpack{combine} class you use \Lpack{combcite} instead
+% of \Lpack{cite}. That is, instead of: \\
+% |\usepackage[|\meta{cite-options}|]{cite}|, simply do \\
+% |\usepackage[|\meta{cite-options}|]{combcite}| \\
+% in the preamble of the main document. The package automatically calls
+% the \Lpack{cite} package with the given \meta{cite-options} and
+% then redefines some of the \Lpack{cite} redefinitions to ensure
+% \Lpack{combine/cite} compatibility.
+%
+% For details on the \meta{cite-options} and the other facilities,
+% read the \Lpack{cite} documentation~\cite{CITE}.
+%
+% The \Lpack{combcite} package requires the November 2003 version 4.01
+% of \Lpack{cite}. This version covers the functions provided by the
+% \Lpack{overcite} package. More precisely \\
+% \verb?\usepackage[...]{overcite}? is implemented as \\
+% \verb?\usepackage[superscript,...]{cite}?
+%
%
% \section{Caveats}
%
@@ -826,12 +889,20 @@
% \bibliographystyle{alpha}
% \begin{thebibliography}{GMS94}
%
+% \bibitem[Ars03]{CITE}
+% Donald Arseneau.
+% \newblock \emph{Cite: Compressed, sorted lists of on-line
+% or superscript numerical citations}.
+% \newblock November 2003.
+% \newblock (Available from CTAN in directory
+% \texttt{macros/latex/contrib/cite})
+%
% \bibitem[Dal99]{NATBIB}
% Patrick W. Daly.
% \newblock \emph{Natural Sciences Citations and References}.
% \newblock May 1999.
% \newblock (Available from CTAN in directory
-% \texttt{macros/latex/contrib/supported/natbib})
+% \texttt{macros/latex/contrib/natbib})
%
% \bibitem[GMS94]{GOOSSENS94}
% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
@@ -843,7 +914,7 @@
% \newblock \emph{Page layout in LaTeX}.
% \newblock June 1996.
% \newblock (Available from CTAN in directory
-% \texttt{macros/latex/contrib/supported/fancyhdr})
+% \texttt{macros/latex/contrib/fancyhdr})
%
%
% \end{thebibliography}
@@ -900,10 +971,11 @@
% \LaTeXe{} and the \Lpack{keyval} package.
% \changes{v0.53}{2001/09/05}{Class is now v0.45}
% \changes{v0.6}{2002/08/24}{Class is now v0.5}
+% \changes{v0.63}{2003/11/09}{Class is now v0.52}
% \begin{macrocode}
%<*usc>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{combine}[2002/08/24 v0.5 collection of documents]
+\ProvidesClass{combine}[2003/11/09 v0.52 collection of documents]
\RequirePackage{keyval}
% \end{macrocode}
@@ -1052,11 +1124,13 @@
% Now declare and process the options.
% \changes{v0.4}{2000/05/27}{Added book option}
% \changes{v0.6}{2002/08/24}{Added onebib option}
+% \changes{v0.63}{2003/11/09}{Added memoir option}
% \begin{macrocode}
\DeclareOption{book}{\def\c@lclass{book}}
\DeclareOption{report}{\def\c@lclass{report}}
\DeclareOption{letter}{\def\c@lclass{letter}}
+\DeclareOption{memoir}{\def\c@lclass{memoir}}
\DeclareOption{classes}{\c@lclassestrue}
\DeclareOption{packages}{\c@lpackagestrue}
\DeclareOption{layouts}{\c@llayoutstrue}
@@ -1253,8 +1327,10 @@
% This is a |\provide...| version of |\newlength| (from \file{ltlength.dtx}).
% \changes{v0.4}{2000/05/27}{Added \cs{providelength} and \cs{providecounter}
% commands}
+% \changes{v0.63}{2003/11/09}{Used \cs{providecommand} for \cs{providelength}
+% and \cs{providecounter} as they are defined in the memoir class}
% \begin{macrocode}
-\newcommand{\providelength}[1]{%
+\providecommand{\providelength}[1]{%
\ifx #1\undefined
\newlength{#1}
\fi
@@ -1265,7 +1341,7 @@
% \begin{macro}{\providecounter}
% This is a |\provide...| version of |\newcounter| (from \file{ltcounts.dtx}).
% \begin{macrocode}
-\newcommand{\providecounter}[1]{%
+\providecommand{\providecounter}[1]{%
\expandafter\ifx \csname c@#1\endcsname \undefined
{\@definecounter{#1}}%
\@ifnextchar[{\@newctr{#1}}{}
@@ -2618,6 +2694,7 @@
% inside \cs{setuppapers} to ignore any titling package redefinitions}
% \changes{v0.52}{2001/08/25}{Added \cs{c@lbLoadClass} to \cs{setuppapers}}
% \changes{v0.6}{2002/08/24}{Added onebib and combinedbib options code to \cs{setuppapers}}
+% \changes{v0.62}{2003/06/30}{Left \cs{bibliographystyle} unaltered}.
% \begin{macrocode}
\newcommand{\setuppapers}{%
\let\documentclass\c@lbdocumentclass
@@ -2639,7 +2716,7 @@
\let\newlabel\c@lbnewlabel
\let\ref\c@lbref
\let\pageref\c@lbpageref
-\renewcommand{\bibliographystyle}[1]{}
+%%% \renewcommand{\bibliographystyle}[1]{}
\ifc@lcombib
\else
\ifc@lonebib
@@ -2678,6 +2755,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\emptyAtBeginDocument}
+% This macro empties tokens stored for use at |\begin{document}| time.
+% \changes{v0.51}{2003/07/17}{Added \cs{emptyAtBeginDocument}}
+% \begin{macrocode}
+\newcommand{\emptyAtBeginDocument}{\let\@begindocumenthook\@empty}
+
+% \end{macrocode}
+% \end{macro}
+%
% Finally, use the appropriate revised kernel commands for the main document.
% \changes{v0.41}{2000/06/18}{Moved main document \cs{maketitle} letting to
% its begin document}
@@ -2706,9 +2792,10 @@
% \end{macrocode}
% The usual preliminaries. The \Lpack{combine} class is expected.
% \changes{v0.53}{2001/09/05}{combinet package now version 0.2}
+% \changes{v0.64}{2004/03/06}{combinet package now version 0.2a}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{combinet}[2001/09/05 v0.2 document titles in ToC]
+\ProvidesPackage{combinet}[2004/03/06 v0.2a document titles in ToC]
\@ifclassloaded{combine}{}{%
\PackageError{combinet}{The `combine' class is expected}{\@ehc}%
}
@@ -2818,6 +2905,8 @@
% |\coltocauthor| have been used then nothing is done with the title
% and/or author respectively.
% \changes{v0.53}{2001/09/05}{Added empty \cs{numberline} in \cs{c@lbmaketitle}}
+% \changes{v0.64}{2004/03/06}{Changed \cs{c@laaddtocontents} for titles to
+% \cs{c@laaddcontentsline} in \cs{c@lbmaketitle}}
% \begin{macrocode}
\def\c@lbmaketitle{\par
\begingroup
@@ -2839,13 +2928,25 @@
\ifc@lnomtitle\else
\ifx\@title\@empty\else
\ifc@lnothanks
- \c@laaddtocontents{toc}%
- {\protect\contentsline{coltoctitle}%
- {\protect\numberline{}\c@l@title}{\thecolpage}}
+% \end{macrocode}
+% I originally used
+% \begin{verbatim}
+% \c@laaddtocontents{toc}%
+% {\protect\contentsline{coltoctitle}%
+% {\protect\numberline{}\c@l@title}{\thecolpage}}
+% \end{verbatim}
+% below, but James Szinger\footnote{Email, 2004/03/05, \texttt{szinger@lanl.gov}}
+% asked me to change to \verb?\c@laaddcontentsline? instead
+% (which I should have done, looking back I've no idea why I didn't) to help
+% with using hyperref, which he said required redefining
+% \verb?\c@laaddcontentsline? to be compatible with hyperref's (hyperref never
+% seems to bother with trying to be compatible with other classes though).
+% \begin{macrocode}
+ \c@laaddcontentsline{toc}%
+ {coltoctitle}{\protect\numberline{}\c@l@title}%
\else
- \c@laaddtocontents{toc}%
- {\protect\contentsline{coltoctitle}%
- {\protect\numberline{}\@title}{\thecolpage}}
+ \c@laaddcontentsline{toc}%
+ {coltoctitle}{\protect\numberline{}\@title}%
\fi
\fi
\fi
@@ -2903,9 +3004,11 @@
% \changes{v0.5}{2001/07/03}{Added the combnat package}
% \changes{v0.6}{2002/08/24}{Added combine class check to the combnat package}
% \changes{v0.6}{2002/08/24}{combnat package is now version 0.2}
+% \changes{v0.61}{2003/05/22}{combnat package is now version 0.21}
+% \changes{v0.61}{2003/05/22}{Somehow removed extraneous space from combnat package}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{combnat}[2002/08/24 v0.2 combined natbib package]
+\ProvidesPackage{combnat}[2003/05/22 v0.21 combined natbib package]
\@ifclassloaded{combine}{}{%
\PackageError{combnat}{The `combine' class is expected}{\@ehc}}
\RequirePackageWithOptions{natbib}
@@ -2978,23 +3081,18 @@
% Holds some of the internals of the original |\NAT@citexnum|.
% \begin{macrocode}
\newcommand{\c@lNAT@citexnum@swatrue}{%
- \ifnum\NAT@ctype>1\relax
- \@citea
+ \ifnum\NAT@ctype>1\relax\@citea
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- \ifnum\NAT@ctype=2\relax
- \NAT@test{\NAT@ctype}%
- \else
- \NAT@alias
- \fi
- \hyper@natlinkend
- \else
+ \ifnum\NAT@ctype=2\relax\NAT@test{\NAT@ctype}%
+ \else\NAT@alias
+ \fi\hyper@natlinkend\else
\ifnum\NAT@sort>1\relax
\begingroup\catcode`\_=8
\ifcat _\ifnum\z@<0\NAT@num _\else A\fi
- \global\let\NAT@nm=\NAT@num \else \gdef\NAT@nm{-2}\fi
+ \global\let\NAT@nm=\NAT@num \else \gdef\NAT@nm{-2}\fi
\ifcat _\ifnum\z@<0\NAT@last@num _\else A\fi
- \global\@tempcnta=\NAT@last@num \global\advance\@tempcnta by\@ne
- \else \global\@tempcnta\m@ne\fi
+ \global\@tempcnta=\NAT@last@num \global\advance\@tempcnta by\@ne
+ \else \global\@tempcnta\m@ne\fi
\endgroup
\ifnum\NAT@nm=\@tempcnta
\ifx\NAT@last@yr\relax
@@ -3008,7 +3106,7 @@
\fi
\else
\@citea \mbox{\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- {\citenumfont\NAT@num}\hyper@natlinkend}%
+ {\citenumfont\NAT@num}\hyper@natlinkend}%
\fi
\fi
\def\@citea{\NAT@sep\penalty\@m\NAT@space}%
@@ -3029,48 +3127,39 @@
\c@lNATwritemainbib %%% change here
{\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
\NAT@parse{\@citeb}%
- \ifNAT@longnames
- \@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+ \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
\let\NAT@name=\NAT@all@names
\global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
\fi
- \ifNAT@full
- \let\NAT@nm\NAT@all@names
- \else
+ \ifNAT@full\let\NAT@nm\NAT@all@names\else
\let\NAT@nm\NAT@name
\fi
\ifNAT@swa
\c@lNAT@citexnum@swatrue
\else
\ifcase\NAT@ctype\relax
- \ifx\NAT@last@nm\NAT@nm
- \NAT@yrsep\penalty\@m\NAT@space
- \else
- \@citea \NAT@test{1}\ \NAT@@open
- \if*#1*\else#1\ \fi
- \fi
- \NAT@mbox{%
- \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- {\citenumfont\NAT@num}\hyper@natlinkend}%
- \def\@citea{\NAT@@close\NAT@sep\penalty\@m\ }%
+ \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\penalty\@m\NAT@space\else
+ \@citea \NAT@test{1}\ \NAT@@open
+ \if*#1*\else#1\ \fi\fi \NAT@mbox{%
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ {\citenumfont\NAT@num}\hyper@natlinkend}%
+ \def\@citea{\NAT@@close\NAT@sep\penalty\@m\ }%
\or\@citea
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- \NAT@test{\NAT@ctype}\hyper@natlinkend
+ \NAT@test{\NAT@ctype}\hyper@natlinkend
\def\@citea{\NAT@sep\penalty\@m\ }%
\or\@citea
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- \NAT@test{\NAT@ctype}\hyper@natlinkend
+ \NAT@test{\NAT@ctype}\hyper@natlinkend
\def\@citea{\NAT@sep\penalty\@m\ }%
\or\@citea
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- \NAT@alias\hyper@natlinkend
+ \NAT@alias\hyper@natlinkend
\def\@citea{\NAT@sep\penalty\@m\ }%
\fi
\fi
}}%
- \ifnum\NAT@sort>1\relax
- \NAT@last@yr
- \fi
+ \ifnum\NAT@sort>1\relax\NAT@last@yr\fi
\ifNAT@swa\else\ifnum\NAT@ctype=0\if*#2*\else
\NAT@cmt#2\fi \NAT@@close\fi\fi}{#1}{#2}}
@@ -3081,39 +3170,31 @@
% A local version of |\NAT@citexnum|.
% \begin{macrocode}
\def\c@lbNAT@citexnum[#1][#2]#3{%
- \ifc@lcombib \c@laNATnocite{#3} \fi %%% change here
+ \ifc@lcombib\c@laNATnocite{#3}\fi %%% change here
\NAT@sort@cites{#3}%
\let\@citea\@empty
\@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty
\@for\@citeb:=\NAT@cite@list\do
- {\edef\@citeb{\expandafter\@firstofone\@citeb}%
- \c@lNATwritelocalbib %%% change here
- {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
- \NAT@parse{\@citeb}%
- \ifNAT@longnames
- \@ifundefined{bv@\@citeb\@extra@b@citeb}{%
- \let\NAT@name=\NAT@all@names
- \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
- \fi
- \ifNAT@full
- \let\NAT@nm\NAT@all@names
- \else
- \let\NAT@nm\NAT@name
- \fi
+ {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \c@lNATwritelocalbib %%% change here
+ {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
+ \NAT@parse{\@citeb}%
+ \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+ \let\NAT@name=\NAT@all@names
+ \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
+ \fi
+ \ifNAT@full\let\NAT@nm\NAT@all@names\else
+ \let\NAT@nm\NAT@name\fi
\ifNAT@swa
\c@lNAT@citexnum@swatrue
\else
\ifcase\NAT@ctype\relax
- \ifx\NAT@last@nm\NAT@nm
- \NAT@yrsep\penalty\@m\NAT@space
- \else
- \@citea \NAT@test{1}\ \NAT@@open
- \if*#1*\else#1\ \fi
- \fi
- \NAT@mbox{%
- \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
- {\citenumfont\NAT@num}\hyper@natlinkend}%
- \def\@citea{\NAT@@close\NAT@sep\penalty\@m\ }%
+ \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\penalty\@m\NAT@space\else
+ \@citea \NAT@test{1}\ \NAT@@open
+ \if*#1*\else#1\ \fi\fi \NAT@mbox{%
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ {\citenumfont\NAT@num}\hyper@natlinkend}%
+ \def\@citea{\NAT@@close\NAT@sep\penalty\@m\ }%
\or\@citea
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@test{\NAT@ctype}\hyper@natlinkend
@@ -3126,8 +3207,7 @@
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@alias\hyper@natlinkend
\def\@citea{\NAT@sep\penalty\@m\ }%
- \fi
- \fi
+ \fi\fi
}}%
\ifnum\NAT@sort>1\relax\NAT@last@yr\fi
\ifNAT@swa\else\ifnum\NAT@ctype=0\if*#2*\else
@@ -3155,8 +3235,7 @@
\hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
\hyper@natlinkend
\fi
- \else
- \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}%
\hyper@natlinkbreak{\NAT@aysep\ }{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
@@ -3168,8 +3247,7 @@
\NAT@date\hyper@natlinkend
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@alias\hyper@natlinkend
- \fi
- \def\@citea{\NAT@sep\ }%
+ \fi \def\@citea{\NAT@sep\ }%
}
% \end{macrocode}
@@ -3178,7 +3256,8 @@
% \begin{macro}{\c@laNAT@citex}
% We redefine the original |\NAT@citex| macro for the main document.
% \begin{macrocode}
-\def\NAT@citex[#1][#2]#3{%
+\def\NAT@citex%
+ [#1][#2]#3{%
\NAT@sort@cites{#3}%
\let\@citea\@empty
\@cite{\let\NAT@nm\@empty\let\NAT@year\@empty
@@ -3187,16 +3266,12 @@
\c@lNATwritemainbibdate %%%% change here
{\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
\NAT@parse{\@citeb}%
- \ifNAT@longnames
- \@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+ \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
\let\NAT@name=\NAT@all@names
\global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
\fi
- \ifNAT@full
- \let\NAT@nm\NAT@all@names
- \else
- \let\NAT@nm\NAT@name
- \fi
+ \ifNAT@full\let\NAT@nm\NAT@all@names\else
+ \let\NAT@nm\NAT@name\fi
\ifNAT@swa
\c@lNAT@citex@swatrue
\else
@@ -3216,25 +3291,19 @@
\else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}%
\hyper@natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}%
- {\@citeb\@extra@b@citeb}%
- \NAT@date\hyper@natlinkend
- \fi
- \fi
+ {\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend\fi
+ \fi
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}\hyper@natlinkend
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@alias\hyper@natlinkend
- \fi
- \if\relax\NAT@date\relax\def\@citea{\NAT@sep\ }%
- \else
- \def\@citea{\NAT@@close\NAT@sep\ }
- \fi
+ \fi \if\relax\NAT@date\relax\def\@citea{\NAT@sep\ }%
+ \else\def\@citea{\NAT@@close\NAT@sep\ }\fi
\fi
- }%
- }%
- \ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
+ }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
\if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{#1}{#2}}
% \end{macrocode}
@@ -3253,16 +3322,12 @@
\c@lNATwritelocalbibdate %%%% change here
{\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
\NAT@parse{\@citeb}%
- \ifNAT@longnames
- \@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+ \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
\let\NAT@name=\NAT@all@names
\global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
\fi
- \ifNAT@full
- \let\NAT@nm\NAT@all@names
- \else
- \let\NAT@nm\NAT@name
- \fi
+ \ifNAT@full\let\NAT@nm\NAT@all@names\else
+ \let\NAT@nm\NAT@name\fi
\ifNAT@swa
\c@lNAT@citex@swatrue
\else
@@ -3282,25 +3347,19 @@
\else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}%
\hyper@natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}%
- {\@citeb\@extra@b@citeb}%
- \NAT@date\hyper@natlinkend
- \fi
- \fi
+ {\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend\fi
+ \fi
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}\hyper@natlinkend
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@alias\hyper@natlinkend
- \fi
- \if\relax\NAT@date\relax\def\@citea{\NAT@sep\ }%
- \else
- \def\@citea{\NAT@@close\NAT@sep\ }
- \fi
+ \fi \if\relax\NAT@date\relax\def\@citea{\NAT@sep\ }%
+ \else\def\@citea{\NAT@@close\NAT@sep\ }\fi
\fi
- }%
- }%
- \ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
+ }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
\if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{#1}{#2}}
% \end{macrocode}
@@ -3478,8 +3537,8 @@
\gdef\c@laNAT@make@cite@list{%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\@ifundefined{b@\@citeb\@extra@b@citeb}{\def\NAT@num{A}}%
- {\NAT@parse{\@citeb}}%
- \ifcat _\ifnum\z@<0\NAT@num _\else A\fi
+ {\NAT@parse{\@citeb}}%
+ \ifcat _\ifnum\z@<0\NAT@num _\else A\fi
\@tempcnta\NAT@num \relax
\ifnum \@tempcnta>\@tempcntb
\edef\NAT@num@list{\NAT@num@list \@celt{\NAT@num}}%
@@ -3536,22 +3595,15 @@
% \begin{macro}{\c@laNAT@set@cites}
% Main version of |\NAT@set@cites|.
% \begin{macrocode}
-\newcommand{\c@laNAT@set@cites}{%
- \ifNAT@numbers
- \ifNAT@super
- \let\@cite\NAT@citesuper
+\newcommand{\c@laNAT@set@cites}{\ifNAT@numbers
+ \ifNAT@super \let\@cite\NAT@citesuper
\def\NAT@mbox##1{\unskip\nobreak\hspace{1\p@}\textsuperscript{##1}}%
\let\citeyearpar=\citeyear
- \let\NAT@space\relax
- \else
+ \let\NAT@space\relax\else
\let\NAT@mbox=\mbox
- \let\@cite\NAT@citenum
- \def\NAT@space{ }%
- \fi
+ \let\@cite\NAT@citenum \def\NAT@space{ }\fi
\let\@citex\NAT@citexnum
- \ifx\@biblabel\@empty
- \let\@biblabel\NAT@biblabelnum
- \fi
+ \ifx\@biblabel\@empty\let\@biblabel\NAT@biblabelnum\fi
\let\@bibsetup\NAT@bibsetnum
\def\natexlab##1{}%
\else
@@ -3568,22 +3620,15 @@
% \begin{macro}{\c@lbNAT@set@cites}
% Local version of |\NAT@set@cites|.
% \begin{macrocode}
-\newcommand{\c@lbNAT@set@cites}{%
- \ifNAT@numbers
- \ifNAT@super
- \let\@cite\NAT@citesuper
+\newcommand{\c@lbNAT@set@cites}{\ifNAT@numbers
+ \ifNAT@super \let\@cite\NAT@citesuper
\def\NAT@mbox##1{\unskip\nobreak\hspace{1\p@}\textsuperscript{##1}}%
\let\citeyearpar=\citeyear
- \let\NAT@space\relax
- \else
+ \let\NAT@space\relax\else
\let\NAT@mbox=\mbox
- \let\@cite\NAT@citenum
- \def\NAT@space{ }%
- \fi
+ \let\@cite\NAT@citenum \def\NAT@space{ }\fi
\let\@citex\NAT@citexnum
- \ifx\@biblabel\@empty
- \let\@biblabel\NAT@biblabelnum
- \fi
+ \ifx\@biblabel\@empty\let\@biblabel\NAT@biblabelnum\fi
\let\@bibsetup\NAT@bibsetnum
\def\natexlab##1{}%
\else
@@ -3648,6 +3693,174 @@
% \end{macrocode}
%
%
+%
+% \section{The \Lpack{combcite} package code} \label{citepackcode}
+%
+% This package calls the \Lpack{cite} package~\cite{CITE}
+% and then makes some minor changes to some of its macro definitions.
+% \changes{v0.63}{2003/11/09}{Added the combcite package}
+%
+% \begin{macrocode}
+%<*citepack>
+% \end{macrocode}
+% The usual preliminaries. The \Lpack{cite} package is required
+% and all options are passed to it to deal with.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{combcite}[2003/11/09 v1.0 combine version of cite package]
+\@ifclassloaded{combine}{}{%
+ \PackageError{combcite}{The `combine' class is expected}{\@ehc}}
+
+% \end{macrocode}
+% By definition, we need the \Lpack{cite} package, but first have
+% to set up some option handling.
+% \begin{macro}{\ifc@lbsuperopt}
+% \cs{ifc@lbsuperopt} is a flag for if the \Lpack{cite} \Lopt{superscript}
+% option has been used.
+% \begin{macrocode}
+\newif\ifc@lbsuperopt
+ \c@lbsuperoptfalse
+% \end{macrocode}
+% \end{macro}
+% Now do the options.
+% \begin{macrocode}
+\DeclareOption{super}{\ExecuteOptions{superscript}}
+\DeclareOption{superscript}{\c@lbsuperopttrue
+ \PassOptionsToClass{superscript}{cite}}
+\ProcessOptions
+% \end{macrocode}
+%
+% We need the latest cite package (version 4.01 November 2003)
+% \begin{macrocode}
+\RequirePackageWithOptions{cite}[2003/11/04]
+
+% \end{macrocode}
+% Need special versions of various macros for imported papers,
+% principally to handle writing to the .aux files.
+% Indicate these by prepending `c@lb' to the name.
+%
+% \begin{macro}{\c@lbciten}
+% \begin{macrocode}
+\DeclareRobustCommand\c@lbciten[1]{%
+ \begingroup
+ \let\@safe@activesfalse\@empty
+%% \c@lb@nocite{#1}% ignores spaces, writes to .aux file, returns #1 in \@no@sparg
+ \@nocite{#1}% ignores spaces, writes to .aux file, returns #1 in \@no@sparg
+ \@tempcntb\m@ne % \@tempcntb tracks highest number
+ \let\@h@ld\@empty % nothing held from list yet
+ \let\@citea\@empty % no punctuation preceding first
+ \let\@celt\delimiter % an unexpandable, but identifiable, token
+ \def\@cite@list{}% % empty list to start
+ \@for \@citeb:=\@no@sparg\do{\c@lb@make@cite@list}% make a sorted list of numbers
+ % After sorted citelist is made, execute it to compress citation ranges.
+ \@tempcnta\m@ne % no previous number
+ \let\@celt\@compress@cite \@cite@list % output number list with compression
+ \@h@ld % output anything held over
+ \endgroup
+ \@restore@auxhandle
+ }
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@lb@make@cite@list}
+%
+% \begin{macrocode}
+\def\c@lb@make@cite@list{%
+ \expandafter\let \expandafter\@B@citeB
+ \csname B?\jobname?@\@citeb\@extra@b@citeb \endcsname
+ \ifx\@B@citeB\relax % undefined: output ? and warning
+ \@citea {\bfseries ?}\let\@citea\citepunct \G@refundefinedtrue
+ \@warning {Citation `\@citeb' on page \thepage\space undefined}%
+ \oc@verbo \global\@namedef{B?\jobname?@\@citeb\@extra@b@citeb}{?}%
+ \else % defined % remove previous line to repeat warnings
+ \ifcat _\ifnum\z@<0\@B@citeB _\else A\fi % a positive number, put in list
+ \@addto@cite@list
+ \else % citation is not a number, output immediately
+ \@citea \citeform{\@B@citeB}\let\@citea\citepunct
+ \fi\fi}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@lbcite}
+% The revision to \cs{cite} depends on whether the \Lopt{superscript}
+% option has been used.
+% \begin{macrocode}
+\ifc@lbsuperopt
+ \DeclareRobustCommand{\c@lbcite}{%
+ \@ifnextchar[{\@tempswatrue\c@lb@citex}{\@tempswafalse\c@lb@citew}}
+\else
+ \DeclareRobustCommand{\c@lbcite}{%
+ \@ifnextchar[{\@tempswatrue\c@lb@citex}{\@tempswafalse\c@lb@citex[]}}
+\fi
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@lb@citex}
+%
+% \begin{macrocode}
+\def\c@lb@citex[#1]#2{\@cite{\c@lbciten{#2}}{#1}}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@lb@citew}
+%
+% \begin{macrocode}
+\def\c@lb@citew#1{\begingroup \leavevmode
+ \@if@fillglue \lastskip \relax \unskip
+ \def\@tempa{\@tempcnta\spacefactor
+ \/% this allows the last word to be hyphenated, and it looks better.
+ \@citess{\c@lbciten{#1}}\spacefactor\@tempcnta
+ \endgroup \@restore@auxhandle}%
+ \oc@movep\relax}% check for following punctuation (depending on options)
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@lbnocite}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\c@lbnocite[1]{%
+ \@bsphack \@nocite{#1}%
+ \@for \@citeb:=\@no@sparg\do{\@ifundefined{B?\jobname?@\@citeb\@extra@b@citeb}%
+ {\G@refundefinedtrue\@warning{Citation `\@citeb' undefined}%
+ \oc@verbo \global\@namedef{B?\jobname?@\@citeb\@extra@b@citeb}{?}}{}}%
+ \@esphack}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nocite}
+%
+% \begin{macrocode}
+\def\@nocite#1{\begingroup\let\protect\string% normalize active chars
+ \xdef\@no@sparg{\expandafter\@ignsp#1 \: }\endgroup% and remove ALL spaces
+ \if@filesw \immediate\write\@newciteauxhandle % = \@auxout, except with multibib
+ {\string\citation {\@no@sparg}}\fi
+ }
+
+% \end{macrocode}
+% \end{macro}
+%
+% Finally, add the revision to \cs{setuppapers}.
+% \begin{macrocode}
+\g@addto@macro{\setuppapers}{\let\cite\c@lbcite}
+\g@addto@macro{\setuppapers}{\let\citenum\c@lbciten}
+\g@addto@macro{\setuppapers}{\let\citeonline\c@lbciten}
+
+% \end{macrocode}
+%
+%
+% The end of this package
+% \begin{macrocode}
+%</citepack>
+% \end{macrocode}
+%
+%
+%
% \appendix
% \section{Original code}
%
diff --git a/Master/texmf-dist/source/latex/combine/combine.ins b/Master/texmf-dist/source/latex/combine/combine.ins
index 05a6bb2cba7..9808a4b38ba 100644
--- a/Master/texmf-dist/source/latex/combine/combine.ins
+++ b/Master/texmf-dist/source/latex/combine/combine.ins
@@ -1,16 +1,26 @@
%% combine.ins
-%% Copyright 2000 Peter R. Wilson
+%% Author: Peter Wilson (CUA) now at peter.r.wilson@boeing.com until June 2004
+%% (or at: pandgwilson at earthlink dot net)
+%% Copyright 2000, 2003, 2004 Peter R. Wilson
+%%
+%% 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 the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
%%
-%% This program is provided under the terms of the
-%% LaTeX Project Public License distributed from CTAN
-%% archives in directory macros/latex/base/lppl.txt.
%%
-%% Author: Peter Wilson (CUA)
-%% now at: peter.r.wilson@boeing.com
-%%
%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
+%% driver files from the doc files in this work when run through
+%% LaTeX.
+%%
%%
%%
%% --------------- start of docstrip commands ------------------
@@ -19,14 +29,22 @@
\input docstrip.tex
\preamble
- Copyright 2000 Peter R. Wilson
-
- This program is provided under the terms of the
- LaTeX Project Public License distributed from CTAN
- archives in directory macros/latex/base/lppl.txt.
-
-Author: Peter Wilson (CUA)
- now at: peter.r.wilson@boeing.com
+ Author: Peter Wilson (CUA) now at peter.r.wilson@boeing.com
+ (or at: pandgwilson at earthlink dot net)
+ Copyright 2000, 2001, 2002, 2003 Peter R. Wilson
+
+ 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 the license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of
+ LaTeX version 2003/06/01 or later.
+
+ This work has the LPPL maintenance status "author-maintained".
+
+ This work consists of the files listed in the README file.
\endpreamble
@@ -43,6 +61,7 @@ Author: Peter Wilson (CUA)
\generateFile{combinet.sty}{t}{\from{combine.dtx}{pck}}
\generateFile{combnat.sty}{t}{\from{combine.dtx}{natpack}}
+\generateFile{combcite.sty}{t}{\from{combine.dtx}{citepack}}
\Msg{***********************************************************}
\Msg{*}
@@ -52,6 +71,7 @@ Author: Peter Wilson (CUA)
\Msg{* \space\space combine.cls}
\Msg{* \space\space combinet.sty}
\Msg{* \space\space combnat.sty}
+\Msg{* \space\space combcite.sty}
\Msg{*}
\Msg{*}
\Msg{* To produce the documentation run the files ending with}