From e7e6d544bac1225c4bf36f70687fb6e12c4641ba Mon Sep 17 00:00:00 2001 From: Manuel Pégourié-Gonnard Date: Mon, 26 May 2008 17:41:55 +0000 Subject: 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 --- Master/texmf-dist/source/latex/combine/combine.dtx | 555 ++++++++++++++------- Master/texmf-dist/source/latex/combine/combine.ins | 54 +- 2 files changed, 421 insertions(+), 188 deletions(-) (limited to 'Master/texmf-dist/source') 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 @@ -2675,6 +2752,15 @@ \newcommand{\takedownpapers}{% } +% \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} % @@ -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} +% +% \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} -- cgit v1.2.3