From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/pagecont/README | 3 + macros/latex/contrib/pagecont/pagecont.dtx | 207 +++++++++++++++++++++++++++++ macros/latex/contrib/pagecont/pagecont.ins | 26 ++++ macros/latex/contrib/pagecont/pagecont.pdf | Bin 0 -> 82436 bytes 4 files changed, 236 insertions(+) create mode 100644 macros/latex/contrib/pagecont/README create mode 100644 macros/latex/contrib/pagecont/pagecont.dtx create mode 100644 macros/latex/contrib/pagecont/pagecont.ins create mode 100644 macros/latex/contrib/pagecont/pagecont.pdf (limited to 'macros/latex/contrib/pagecont') diff --git a/macros/latex/contrib/pagecont/README b/macros/latex/contrib/pagecont/README new file mode 100644 index 0000000000..153dd6c5b0 --- /dev/null +++ b/macros/latex/contrib/pagecont/README @@ -0,0 +1,3 @@ +The package `pagecont' implements the functionality that +several documents can be typeset independly with page +numbers in sequence, like if they were a single document. diff --git a/macros/latex/contrib/pagecont/pagecont.dtx b/macros/latex/contrib/pagecont/pagecont.dtx new file mode 100644 index 0000000000..e6035975df --- /dev/null +++ b/macros/latex/contrib/pagecont/pagecont.dtx @@ -0,0 +1,207 @@ +% \iffalse +% File: ordinalpt.dtx +% Copyright (C) 2007 Miguel V. S. Frasson (mvsfrasson@gmail.com) +% +% This package may be distributed under the terms of the LaTeX +% Project Public License, as described in lppl.txt in the base +% LaTeX distribution, either version 1.2 or (at your option) +% any later version. +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{doc} +\usepackage{ae} +\usepackage{url} + +\begin{document} + \DocInput{pagecont.dtx} +\end{document} +% +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \StopEventually +% +% \changes{1.0}{2009/05/26}{initial version} +% +% \MakeShortVerb+ +% +% \title{\textsf{pagecont}: Page numbering continuation between documents} +% \author{Miguel V.\ S.\ Frasson} +% \date{2009--05--26 version 1.0} +% +% \maketitle +% +% \tableofcontents +% +% \section{Introduction} +% +% The package \textsf{pagecont} implements the functionality that +% several documents can be typeset independently with page numbers in +% sequence, like if they were a single document. +% +% \section{Usage} +% +% \begin{itemize} +% +% \item Ensure that all files run without errors. +% +% \item In the first document call the package with option `+first+'. +% \begin{quote} +% +\usepackage[first]{pagecont}+ +% \end{quote} +% \item In other documents, just call the package. +% \begin{quote} +% +\usepackage{pagecont}+ +% \end{quote} +% \item Run as many times as needed every document, but in the +% sequence of documents; that is, run (as many times needed) the first +% document, then run (as many times needed) the second, and so on. +% +% \end{itemize} +% +% At every run, the output files are produced normally, but the first +% page of the second document is 1 plus the last page of the previous +% one, and so on. +% +% \section{Idea of implementation} +% +% At the end of documents, a file (default is `+pagecont.pco+') is +% saved with the current file information plus last file last page. +% If the filename saved is the same, uses the last file last page. If +% it is not the same, then you are compiling another file, so the last +% page saved plus 1 is to be used as new first page. +% +% If the file saved does not exist, then no page is set, like if this +% document is the first one. +% +% \section{User options} +% +% \DescribeEnv{first} +% The document that uses the option +first+ does not set pages. It is +% safer to use this option, because afterwards one starts again to +% process the documents from the beginning, and if the file where the +% info is saved exists, the page numbering will continue from the +% number saved in the last run. +% +% \DescribeEnv{savefile=\textit{filename}} +% With option `\texttt{savefile=\textit{filename}}' you can override +% the default save file, which is +pagecont.pco+. +% +% \section{Code} +% +% Identidication of the package. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pagecont}% + [2009/05/26 v1 Page numbering continuation between documents] +% \end{macrocode} +% +% Using package \textsf{keyval}. +% \begin{macrocode} + \RequirePackage{keyval} +% \end{macrocode} +% +% \DescribeEnv{first} +% Declaring option \texttt{first}, which sets a switch when executed. +% \begin{macrocode} +\newif\ifPGC@first +\PGC@firstfalse +\DeclareOption{first}{\PGC@firsttrue} +% \end{macrocode} +% +% \DescribeEnv{savefile=\textit{filename}} +% Declaring option \texttt{savefile=\textit{filename}}, using the +% \textsf{keyval} package. +% \begin{macrocode} +\newcommand{\PGC@savefile}{pagecont.pco} +\define@key{PGC@}{savefile}{\renewcommand{\PGC@savefile}{#1}} +\newcommand{\PGC@kvsetkeys}[1]{\setkeys{PGC@}{#1}} +\DeclareOption*{\expandafter\PGC@kvsetkeys\expandafter{\CurrentOption}} +% \end{macrocode} +% +% Processing options. +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% \DescribeMacro{\PGC@info} +% The macro +\PGC@info+, which is the content of the file +% +\PGC@savefile+, has 3 args. The first is the jobname of the file +% that saved the file. When called (at package call), it compares the +% saved jobname and the actual +\jobname+. If they are the same, then +% we should use the last page of last document (with different +% jobname). This last page is the second arg of +\PGC@info+. If the +% jobnames are different, the last page of last run, the third arg of +% +\PGC@info+, is used as new start for counter \texttt{page}. +% +% \DescribeMacro{\PGC@lastfilelastpage} +% The second argument of +\PGC@info+ is saved in the macro +% +\PGC@lastfilelastpage+, which is originally set to be 0. This +% macro will be used when saving the file, at +\end{document}+ time. +% +% \begin{macrocode} +\newcommand{\PGC@lastfilelastpage}{0} +\newcommand{\PGC@info}[3]{% +% \end{macrocode} +% The primitive +\jobname+ outputs chars with +% catcode 12 (other), so it is needed a hack using +\meaning+ to +% compare the two strings. See +% \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=compjobnam}. +% \begin{macrocode} + \edef\PGC@jobname{\jobname}% + \def\PGC@jobnamesaved{#1}% + \edef\PGC@jobnamesaved{\expandafter\strip@prefix\meaning\PGC@jobnamesaved}% + \ifx\PGC@jobname\PGC@jobnamesaved + \renewcommand{\PGC@lastfilelastpage}{#2}% + \setcounter{page}{#2}% + \else + \renewcommand{\PGC@lastfilelastpage}{#3}% + \setcounter{page}{#3}% + \fi +% \end{macrocode} +% Increments counter page to be the number after the last page of last +% document. +% \begin{macrocode} +\addtocounter{page}{1}} +% \end{macrocode} +% +% \DescribeMacro{\PGC@savefile} +% \DescribeMacro{\PGC@saveinfo} +% Now the macro for saving information into file +\PGC@savefile+. +% The macro +\PGC@saveinfo+ writes to file with filename +% +\PGC@savefile+ the line +% \begin{quote}\ttfamily +% \string\PGC@info+{+\textit{jobname}+}{+\textit{lastfile-lastpage}+}{+\textit{lastpage}+}+ +% \end{quote} +% where \texttt{\textit{jobname}}, \texttt{\textit{lastfile-lastpage}} +% and \texttt{\textit{lastpage}} are the full expansions of +% +\jobname+, +\PGC@lastfilelastpage+ and +\arabic{page}+, +% respectively. +% \begin{macrocode} +\newcommand{\PGC@saveinfo}{% + \newwrite\PGC@file + \expandafter\openout\expandafter\PGC@file\PGC@savefile\relax + \write\PGC@file + {\string\PGC@info{\jobname}{\PGC@lastfilelastpage}{\arabic{page}}}} +% \end{macrocode} +% +% At +\end{document}+, save all to file, by the +\PGC@saveinfo+ macro. +% \begin{macrocode} +\AtEndDocument{\PGC@saveinfo} +% \end{macrocode} +% +% Finally, starts action by including file `+\PGC@savefile+', when file +% is not marked as first of the series. +% \begin{macrocode} +\ifPGC@first +\else + \IfFileExists{\PGC@savefile}{\input{\PGC@savefile}}{} +\fi +% \end{macrocode} +% End of file. +% \begin{macrocode} +\endinput +% \end{macrocode} + diff --git a/macros/latex/contrib/pagecont/pagecont.ins b/macros/latex/contrib/pagecont/pagecont.ins new file mode 100644 index 0000000000..2fdf72ef5b --- /dev/null +++ b/macros/latex/contrib/pagecont/pagecont.ins @@ -0,0 +1,26 @@ +\input docstrip + +\preamble + +Copyright (C) 2007 Miguel V. S. Frasson (mvsfrasson@gmail.com) + +This file is part of the `pagecont' package. + +This package may be distributed under the terms of the LaTeX +Project Public License, as described in lppl.txt in the base +LaTeX distribution, either version 1.2 or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +\endpreamble + +\askforoverwritefalse +\askonceonly +\showprogress + +\generate{\file{pagecont.sty}{\from{pagecont.dtx}{}}} + +\endbatchfile \ No newline at end of file diff --git a/macros/latex/contrib/pagecont/pagecont.pdf b/macros/latex/contrib/pagecont/pagecont.pdf new file mode 100644 index 0000000000..1a76f81831 Binary files /dev/null and b/macros/latex/contrib/pagecont/pagecont.pdf differ -- cgit v1.2.3