From c42b84f651376ebb120a1c4ed0ae62c7ab326f3a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 25 Feb 2010 00:39:17 +0000 Subject: endnotes doc update, own package (24feb10) git-svn-id: svn://tug.org/texlive/trunk@17197 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/endnotes/endnotes.pdf | Bin 0 -> 267875 bytes Master/texmf-dist/doc/latex/endnotes/endnotes.tex | 290 +++++++++++++++ Master/texmf-dist/tex/latex/endnotes/endnotes.sty | 417 ++++++++++++++++++++++ Master/texmf-dist/tex/latex/ltxmisc/endnotes.sty | 417 ---------------------- Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 + Master/tlpkg/tlpsrc/endnotes.tlpsrc | 0 7 files changed, 709 insertions(+), 418 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/endnotes/endnotes.pdf create mode 100644 Master/texmf-dist/doc/latex/endnotes/endnotes.tex create mode 100644 Master/texmf-dist/tex/latex/endnotes/endnotes.sty delete mode 100644 Master/texmf-dist/tex/latex/ltxmisc/endnotes.sty create mode 100644 Master/tlpkg/tlpsrc/endnotes.tlpsrc (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/endnotes/endnotes.pdf b/Master/texmf-dist/doc/latex/endnotes/endnotes.pdf new file mode 100644 index 00000000000..cf5f5cecafb Binary files /dev/null and b/Master/texmf-dist/doc/latex/endnotes/endnotes.pdf differ diff --git a/Master/texmf-dist/doc/latex/endnotes/endnotes.tex b/Master/texmf-dist/doc/latex/endnotes/endnotes.tex new file mode 100644 index 00000000000..a2ded227a1b --- /dev/null +++ b/Master/texmf-dist/doc/latex/endnotes/endnotes.tex @@ -0,0 +1,290 @@ +\documentclass[pagesize=auto]{scrartcl} + +\usepackage{fixltx2e} +\usepackage{etex} +\usepackage{lmodern} +\usepackage[T1]{fontenc} +\usepackage{textcomp} +\usepackage[utf8]{inputenc} +\usepackage{microtype} +\usepackage{hyperref} + +\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}} +\newcommand*{\pkg}[1]{\textsf{#1}} +\newcommand*{\cs}[1]{\texttt{\textbackslash#1}} +\makeatletter +\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}} +\makeatother +\newcommand*{\env}[1]{\texttt{#1}} +\newcommand*{\meta}[1]{\textlangle\textsl{#1}\textrangle} +\newcommand*{\marg}[1]{\texttt{\{}\meta{#1}\texttt{\}}} +\newcommand*{\oarg}[1]{\texttt{[}\meta{#1}\texttt{]}} + +\addtokomafont{title}{\rmfamily} + +\title{The \pkg{endnotes} package} +\author{John Lavagnino\thanks{Centre for Computing in the Humanities, King's College London}~~(\mail{John.Lavagnino@kcl.ac.uk})} +\date{15 January 2003} + + +\begin{document} + +\maketitle + +\noindent +Based on the \textsc{footnotes} section of +\texttt{LATEX.TEX} (version~2.09 -- release of 19 April 1986), with +``\texttt{footnote}'' changed to ``\texttt{endnote}'' and ``\texttt{fn}'' changed to ``\texttt{en}'' (where +appropriate), with all the \env{minipage} stuff pulled out, and with +some small changes for the different operation of endnotes. +Subsequently updated to follow the code for +\LaTeXe\ \textlangle 2000/06/01\textrangle. + +Uses an extra external file, with \texttt{.ent} extension, to hold the +text of the endnotes. This may be deleted after the run; a new +version is generated each time---it doesn't require information +collected from the previous run. + +This code does not obey \cmd{\nofiles}. Perhaps it should. + +\bigskip + +To turn all the footnotes in your documents into endnotes, say +% +\begin{verbatim} +\let\footnote=\endnote +\end{verbatim} +% +in your preamble, and then add something like +% +\begin{verbatim} +\newpage +\begingroup +\parindent 0pt +\parskip 2ex +\def\enotesize{\normalsize} +\theendnotes +\endgroup +\end{verbatim} +% +as the last thing in your document. (But \cmd{\theendnotes} all +by itself will work.) + + +\section{Change log} + +\renewcommand*{\labelenumi}{\theenumi)} + +\begin{labeling}[~--]{DW} +\item[JL] Modified to include \cmd{\addtoendnotes}. JL, 10/22/89. + +\item[JK] Modification by Jörg Knappen 25.\,2.\,1991: + + Introduced \cmd{\notesname} in the spirit of international \LaTeX. + \cmd{\notesname} is set per default to be \verb+{Notes}+, but can easily + be redifined, e.\,g.\ for german language\\ + \verb+\renewcommand{\notesname}{Anmerkungen}+ + +\item[DW] Modification by Dominik Wujastyk, London, 19 September 1991: + + Moved the line\\ + \verb+\edef\@currentlabel{\csname p@endnote\endcsname\@theenmark}+\\ + out of the definition of \cmd{\@endnotetext} and into the definition + of \cmd{\@doanenote} so that \cmd{\label} and \cmd{\ref} commands work correctly in + endnotes. Otherwise, the \cmd{\label} just pointed to the last section + heading (or whatever) preceding the \cmd{\theendnotes} command. + +\item[JL] Revised documentation and macros. 24 Sept 1991. + +\item[\null] + \begingroup + \setlength{\leftmarginii}{25mm}% + \begin{enumerate} + \item[\rlap{\hspace{-\labelwidth}modified by \texttt{-\null-bg} (B.\,Gaulle) 09/14/94 for:}] + \item replace \verb+»+ (why a 8bit char here?) by \verb+^+ as a default. + \item force \cmd{\catcode} of \verb+>+ to be 12 (implied by \cmd{\@doanenote}). + \item[\rlap{\hspace{-\labelwidth}\phantom{modified} by \texttt{-\null-bg} again 03/22/95 for:}] + \item reseting appropriate \texttt{catcode} of \verb+>+ in case it were + used as an active char before \cmd{\@endanenote} (was + pointed by Ch.\ Pallier). + \end{enumerate} + \endgroup + +\item[JL] John Lavagnino, 12 January 2003: a number of small updates: + + Incorporate change suggested by Frank Mittelbach to + \cmd{\enoteheading}, so that first note has paragraph indentation. + Frank's note: + % + \begin{quote} + the idea of this code is to fix the problem that without it + the first endnote after the heading will not be indented thus looking + somewhat strange. Problem however is that since there is no + indentation \verb+\leavemode\par+ will make an absolutely empty pargraph so + that no baseline calculation is done. therefore \verb+\vskip-\baselineskip+ + will put the first endnote directly below the heading without the + usual spaccing. using \cmd{\mbox} insead will cure this defect. + \end{quote} + + Also incorporated Frank's suggestion to define + \cmd{\makeenmark} and \cmd{\theenmark}, so that users can change more of the + layout without using \cmd{\makeatletter}. \cmd{\makeenmark} defaults to + \cmd{\@makeenmark}, so old code is still supported; and \cmd{\theenmark} is + just syntactic sugar for \cmd{\@theenmark}, which is still the real + value (and shouldn't be directly modified by user code). + + Definition of \cmd{\ETC}.\ also dropped: surely nobody is still + using \TeX~2.992. (If you are, you need to upgrade it or + endnotes longer than 1000~characters will be truncated.) + + Update much of the code to track the current \LaTeXe\ code more + closely. Clean up \cmd{\theendnotes}. + +\item[JL] John Lavagnino, 15 January 2003: fix my garbled version of + Frank's updates. + +\end{labeling} + + +\section{Endnote commands} + +\addtokomafont{labelinglabel}{\small} + +\begin{labeling}[~:]{\cmd{\endnotetext}\oarg{num}\marg{text}} + \item[\cmd{\endnote}\marg{note}] User command to insert a endnote. + + \item[\cmd{\endnote}\oarg{num}\marg{note}] User command to insert a endnote numbered + \meta{num}, where \meta{num} is a number -- 1, 2, + etc. For example, if endnotes are numbered + *, **, etc. within pages, then \verb+\endnote[2]{...}+ + produces endnote `**'. This command does not + step the endnote counter. + + \item[\cmd{\endnotemark}\oarg{num}] Command to produce just the endnote mark in + the text, but no endnote. With no argument, + it steps the endnote counter before generating + the mark. + + \item[\cmd{\endnotetext}\oarg{num}\marg{text}] Command to produce the endnote but no + mark. \cmd{\endnote} is equivalent to + \cmd{\endnotemark}\cmd{\endnotetext}. + + \item[\cmd{\addtoendnotes}\marg{text}] Command to add text or commands to current + endnotes file: for inserting headings, + pagebreaks, and the like into endnotes + sections. \meta{text} a moving argument: + \cmd{\protect} required for fragile commands. + +\end{labeling} + + +\section{Endnote user commands} + +Endnotes use the following parameters, similar to those relating +to footnotes: +% +\begin{labeling}[~:]{\cmd{\@makeentext}\marg{note}} + \item[\cmd{\enotesize}] Size-changing command for endnotes. + + \item[\cmd{\theendnote}] In usual \LaTeX\ style, produces the endnote number. + + \item[\cmd{\theenmark}] Holds the current endnote's mark---e.\,g., \dag\ or `1' or `a'. + (You don't want to set this yourself, as it comes + either from the autonumbering of notes or from + the optional argument to \cmd{\endnote}. But you'll need + to use it if you define your own \cmd{\makeenmark}.) + + \item[\cmd{\makeenmark}] A macro to generate the endnote marker from \cmd{\theenmark}. + The default definition is \verb+\hbox{$^\theenmark$}+. + + \item[\cmd{\@makeentext}\marg{note}] + Must produce the actual endnote, using \cmd{\theenmark} as the mark + of the endnote and \meta{note} as the text. It is called when effectively + inside a \cmd{\parbox}, with $\cmd{\hsize} = \cmd{\columnwidth}$. For example, it might + be as simple as + \verb*+$^{\theenmark}$ +\meta{note} + +\end{labeling} + + +\pagebreak[2] + +\section{Endnote pseudocode} + +\begin{verbatim} +\endnote{NOTE} == + BEGIN + \stepcounter{endnote} + \@theenmark :=G eval (\theendnote) + \@endnotemark + \@endnotetext{NOTE} + END + +\endnote[NUM]{NOTE} == + BEGIN + begingroup + counter endnote :=L NUM + \@theenmark :=G eval (\theendnote) + endgroup + \@endnotemark + \@endnotetext{NOTE} + END + +\@endnotetext{NOTE} == + BEGIN + write to \@enotes file: "\@doanenote{ENDNOTE MARK}" + begingroup + \next := NOTE + set \newlinechar for \write to \space + write to \@enotes file: \meaning\next + (that is, "macro:->NOTE) + endgroup + END + +\addtoendnotes{TEXT} == + BEGIN + open endnotes file if not already open + begingroup + let \protect to \string + set \newlinechar for \write to \space + write TEXT to \@enotes file + endgroup + END + +\endnotemark == + BEGIN \stepcounter{endnote} + \@theenmark :=G eval(\theendnote) + \@endnotemark + END + +\endnotemark[NUM] == + BEGIN + begingroup + endnote counter :=L NUM + \@theenmark :=G eval(\theendnote) + endgroup + \@endnotemark + END + +\@endnotemark == + BEGIN + \leavevmode + IF hmode THEN \@x@sf := \the\spacefactor FI + \makeenmark % put number in main text + IF hmode THEN \spacefactor := \@x@sf FI + END + +\endnotetext == + BEGIN \@theenmark :=G eval (\theendnote) + \@endnotetext + END + +\endnotetext[NUM] == + BEGIN begingroup counter endnote :=L NUM + \@theenmark :=G eval (\theendnote) + endgroup + \@endnotetext + END +\end{verbatim} + +\end{document} diff --git a/Master/texmf-dist/tex/latex/endnotes/endnotes.sty b/Master/texmf-dist/tex/latex/endnotes/endnotes.sty new file mode 100644 index 00000000000..d3ef6514baa --- /dev/null +++ b/Master/texmf-dist/tex/latex/endnotes/endnotes.sty @@ -0,0 +1,417 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% **************************************** +% * ENDNOTES * +% **************************************** +% +% Date of this version: 15 January 2003. +% +%% Copyright 2002 John Lavagnino +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +% +% Based on the FOOTNOTES section of +% LATEX.TEX (VERSION 2.09 - RELEASE OF 19 April 1986), with +% "footnote" changed to "endnote" and "fn" changed to "en" (where +% appropriate), with all the minipage stuff pulled out, and with +% some small changes for the different operation of endnotes. +% Subsequently updated to follow the code for +% LaTeX2e <2000/06/01>. +% +% Uses an extra external file, with .ent extension, to hold the +% text of the endnotes. This may be deleted after the run; a new +% version is generated each time--it doesn't require information +% collected from the previous run. +% +% This code does not obey \nofiles. Perhaps it should. +% +% John Lavagnino (John.Lavagnino@kcl.ac.uk) +% Centre for Computing in the Humanities, King's College London +% +% To turn all the footnotes in your documents into endnotes, say +% +% \let\footnote=\endnote +% +% in your preamble, and then add something like +% +% \newpage +% \begingroup +% \parindent 0pt +% \parskip 2ex +% \def\enotesize{\normalsize} +% \theendnotes +% \endgroup +% +% as the last thing in your document. (But \theendnotes all +% by itself will work.) +% +% **************************************** +% * CHANGE LOG * +% **************************************** +% +% JL Modified to include \addtoendnotes. JL, 10/22/89. +% +% JK Modification by J"org Knappen 25. 2. 1991: +% JK +% JK Introduced \notesname in the spirit of international \LaTeX. +% JK \notesname is set per default to be {Notes}, but can easily +% JK be redifined, e.g. for german language +% JK \renewcommand{\notesname}{Anmerkungen} +% +% DW Modification by Dominik Wujastyk, London, 19 September 1991: +% DW +% DW Moved the line +% DW \edef\@currentlabel{\csname p@endnote\endcsname\@theenmark} +% DW out of the definition of \@endnotetext and into the definition +% DW of \@doanenote so that \label and \ref commands work correctly in +% DW endnotes. Otherwise, the \label just pointed to the last section +% DW heading (or whatever) preceding the \theendnotes command. +% +% JL Revised documentation and macros. 24 Sept 1991. +% +% modified by --bg (B.Gaulle) 09/14/94 for: +% 1) replace » (why a 8bit char here?) by ^ as a default. +% 2) force \catcode of > to be 12 (implied by \@doanenote). +% by --bg again 03/22/95 for: +% 3) reseting appropriate catcode of > in case it were +% used as an active char before \@endanenote (was +% pointed by Ch. Pallier). +% +% John Lavagnino, 12 January 2003: a number of small updates: +% +% JL Incorporate change suggested by Frank Mittelbach to +% JL \enoteheading, so that first note has paragraph indentation. +% JL Frank's note: +% the idea of this code is to fix the problem that without it +% the first endnote after the heading will not be indented thus looking +% somewhat strange. Problem however is that since there is no +% indentation \leavemode\par will make an absolutely empty pargraph so +% that no baseline calculation is done. therefore \vskip-\baselineskip +% will put the first endnote directly below the heading without the +% usual spaccing. using \mbox insead will cure this defect. +% +% JL Also incorporated Frank's suggestion to define +% JL \makeenmark and \theenmark, so that users can change more of the +% JL layout without using \makeatletter. \makeenmark defaults to +% JL \@makeenmark, so old code is still supported; and \theenmark is +% JL just syntactic sugar for \@theenmark, which is still the real +% JL value (and shouldn't be directly modified by user code). +% +% JL Definition of \ETC. also dropped: surely nobody is still +% JL using TeX 2.992. (If you are, you need to upgrade it or +% JL endnotes longer than 1000 characters will be truncated.) +% +% JL Update much of the code to track the current LaTeX2e code more +% JL closely. Clean up \theendnotes. +% +% John Lavagnino, 15 January 2003: fix my garbled version of +% Frank's updates. +% +% +% **************************************** +% * ENDNOTE COMMANDS * +% **************************************** +% +% +% \endnote{NOTE} : User command to insert a endnote. +% +% \endnote[NUM]{NOTE} : User command to insert a endnote numbered +% NUM, where NUM is a number -- 1, 2, +% etc. For example, if endnotes are numbered +% *, **, etc. within pages, then \endnote[2]{...} +% produces endnote '**'. This command does not +% step the endnote counter. +% +% \endnotemark[NUM] : Command to produce just the endnote mark in +% the text, but no endnote. With no argument, +% it steps the endnote counter before generating +% the mark. +% +% \endnotetext[NUM]{TEXT} : Command to produce the endnote but no +% mark. \endnote is equivalent to +% \endnotemark \endnotetext . +% +% \addtoendnotes{TEXT} : Command to add text or commands to current +% endnotes file: for inserting headings, +% pagebreaks, and the like into endnotes +% sections. TEXT a moving argument: +% \protect required for fragile commands. +% +% **************************************** +% * ENDNOTE USER COMMANDS * +% **************************************** +% +% Endnotes use the following parameters, similar to those relating +% to footnotes: +% +% \enotesize : Size-changing command for endnotes. +% +% \theendnote : In usual LaTeX style, produces the endnote number. +% +% \theenmark : Holds the current endnote's mark--e.g., \dag or '1' or 'a'. +% (You don't want to set this yourself, as it comes +% either from the autonumbering of notes or from +% the optional argument to \endnote. But you'll need +% to use it if you define your own \makeenmark.) +% +% \makeenmark : A macro to generate the endnote marker from \theenmark +% The default definition is \hbox{$^\theenmark$}. +% +% \@makeentext{NOTE} : +% Must produce the actual endnote, using \theenmark as the mark +% of the endnote and NOTE as the text. It is called when effectively +% inside a \parbox, with \hsize = \columnwidth. For example, it might +% be as simple as +% $^{\theenmark}$ NOTE +% +% +% **************************************** +% * ENDNOTE PSEUDOCODE * +% **************************************** +% +% \endnote{NOTE} == +% BEGIN +% \stepcounter{endnote} +% \@theenmark :=G eval (\theendnote) +% \@endnotemark +% \@endnotetext{NOTE} +% END +% +% \endnote[NUM]{NOTE} == +% BEGIN +% begingroup +% counter endnote :=L NUM +% \@theenmark :=G eval (\theendnote) +% endgroup +% \@endnotemark +% \@endnotetext{NOTE} +% END +% +% \@endnotetext{NOTE} == +% BEGIN +% write to \@enotes file: "\@doanenote{ENDNOTE MARK}" +% begingroup +% \next := NOTE +% set \newlinechar for \write to \space +% write to \@enotes file: \meaning\next +% (that is, "macro:->NOTE) +% endgroup +% END +% +% \addtoendnotes{TEXT} == +% BEGIN +% open endnotes file if not already open +% begingroup +% let \protect to \string +% set \newlinechar for \write to \space +% write TEXT to \@enotes file +% endgroup +% END +% +% \endnotemark == +% BEGIN \stepcounter{endnote} +% \@theenmark :=G eval(\theendnote) +% \@endnotemark +% END +% +% \endnotemark[NUM] == +% BEGIN +% begingroup +% endnote counter :=L NUM +% \@theenmark :=G eval(\theendnote) +% endgroup +% \@endnotemark +% END +% +% \@endnotemark == +% BEGIN +% \leavevmode +% IF hmode THEN \@x@sf := \the\spacefactor FI +% \makeenmark % put number in main text +% IF hmode THEN \spacefactor := \@x@sf FI +% END +% +% \endnotetext == +% BEGIN \@theenmark :=G eval (\theendnote) +% \@endnotetext +% END +% +% \endnotetext[NUM] == +% BEGIN begingroup counter endnote :=L NUM +% \@theenmark :=G eval (\theendnote) +% endgroup +% \@endnotetext +% END +% +% **************************************** +% * ENDNOTE MACROS * +% **************************************** +% + +\@definecounter{endnote} +\def\theendnote{\@arabic\c@endnote} + +\def\@makeenmark{\hbox{\@textsuperscript{\normalfont\@theenmark}}} +\def\makeenmark{\@makeenmark} + +\def\theenmark{\@theenmark} + +\newdimen\endnotesep + +\def\endnote{\@ifnextchar[\@xendnote{\stepcounter{endnote}% + \protected@xdef\@theenmark{\theendnote}% + \@endnotemark\@endnotetext}} + +\def\@xendnote[#1]{% + \begingroup + \c@endnote=#1\relax + \unrestored@protected@xdef\@theenmark{\theendnote}% + \endgroup + \@endnotemark\@endnotetext} + +% Here begins a section of endnote code that's really different from +% the footnote code of LaTeX. + +\let\@doanenote=0 +\let\@endanenote=0 + +\newwrite\@enotes +\newif\if@enotesopen \global\@enotesopenfalse + +\def\@openenotes{\immediate\openout\@enotes=\jobname.ent\relax + \global\@enotesopentrue} + +% The stuff with \next and \meaning is a trick from the TeXbook, 382, +% there intended for setting verbatim text, but here used to avoid +% macro expansion when the footnote text is written. \next will have +% the entire text of the footnote as one long line, which might well +% overflow limits on output line length; the business with \newlinechar +% makes every space become a newline in the \@enotes file, so that all +% of the lines wind up being quite short. + +\long\def\@endnotetext#1{% + \if@enotesopen \else \@openenotes \fi + \immediate\write\@enotes{\@doanenote{\@theenmark}}% + \begingroup + \def\next{#1}% + \newlinechar='40 + \immediate\write\@enotes{\meaning\next}% + \endgroup + \immediate\write\@enotes{\@endanenote}} + +% \addtoendnotes works the way the other endnote macros probably should +% have, requiring the use of \protect for fragile commands. + +\long\def\addtoendnotes#1{% + \if@enotesopen \else \@openenotes \fi + \begingroup + \newlinechar='40 + \let\protect\string + \immediate\write\@enotes{#1}% + \endgroup} + +% End of unique endnote code + +\def\endnotemark{% + \@ifnextchar[\@xendnotemark + {\stepcounter{endnote}% + \protected@xdef\@theenmark{\theendnote}% + \@endnotemark}} + +\def\@xendnotemark[#1]{% + \begingroup + \c@endnote #1\relax + \unrestored@protected@xdef\@theenmark{\theendnote}% + \endgroup + \@endnotemark} + +\def\@endnotemark{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \makeenmark + \ifhmode\spacefactor\@x@sf\fi + \relax} + +\def\endnotetext{% + \@ifnextchar [\@xendnotenext + {\protected@xdef\@theenmark{\theendnote}% + \@endnotetext}} + +\def\@xendnotenext[#1]{\begingroup \c@endnote=#1\relax + \xdef\@theenmark{\theendnote}\endgroup \@endnotetext} + +\def\@xendnotenext[#1]{% + \begingroup + \c@endnote=#1\relax + \unrestored@protected@xdef\@theenmark{\theendnote}% + \endgroup + \@endnotetext} + + +% \theendnotes actually prints out the endnotes. + +% The user may want separate endnotes for each chapter, or a big +% block of them at the end of the whole document. As it stands, +% either will work; you just say \theendnotes wherever you want the +% endnotes so far to be inserted. However, you must add +% \setcounter{endnote}{0} after that if you want subsequent endnotes +% to start numbering at 1 again. + +% \enoteformat is provided so user can specify some special formatting +% for the endnotes. It needs to set up the paragraph parameters, start +% the paragraph, and print the label. The \mbox stuff in \enoteheading +% is to make and undo a dummy paragraph, to get around the games \section* +% plays with paragraph indenting and instead give us uniform +% indenting for all notes. + +\def\notesname{Notes}% +\def\enoteheading{\section*{\notesname + \@mkboth{\MakeUppercase{\notesname}}{\MakeUppercase{\notesname}}}% + \mbox{}\par\vskip-\baselineskip} + +\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=1.8em + \leavevmode\llap{\makeenmark}} + +\def\enotesize{\footnotesize} + +\def\theendnotes{\immediate\closeout\@enotes \global\@enotesopenfalse + \begingroup + \makeatletter + % + % The machinery with \@ResetGT and > here ensures that + % \@doanenote works properly even if > is an active character + % at the point where \theendnotes is invoked. > needs to have + % catcode 12 when the arguments of \@doanenote are scanned, so + % that the > in the string "macro:->" is matched. The actual + % footnote text is not an argument to \@doanenote, but just + % follows it in the .ent file; so \@ResetGT can reset the + % category code for > that should be used when processing + % that text. That resetting takes place within a + % \begingroup-\endgroup block set up by \@doanenote and + % \@endanenote, so the catcode for > is back to 12 for the + % next note. + % + \edef\@tempa{`\string >}% + \ifnum\catcode\@tempa=12% + \let\@ResetGT\relax + \else + \edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}% + \@makeother\>% + \fi + \def\@doanenote##1##2>{\def\@theenmark{##1}\par\begingroup + \@ResetGT + \edef\@currentlabel{\csname p@endnote\endcsname\@theenmark}% + \enoteformat} + \def\@endanenote{\par\endgroup}% + \enoteheading + \enotesize + \input{\jobname.ent}% + \endgroup} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/ltxmisc/endnotes.sty b/Master/texmf-dist/tex/latex/ltxmisc/endnotes.sty deleted file mode 100644 index d3ef6514baa..00000000000 --- a/Master/texmf-dist/tex/latex/ltxmisc/endnotes.sty +++ /dev/null @@ -1,417 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% **************************************** -% * ENDNOTES * -% **************************************** -% -% Date of this version: 15 January 2003. -% -%% Copyright 2002 John Lavagnino -%% -%% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.2 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. -% -% Based on the FOOTNOTES section of -% LATEX.TEX (VERSION 2.09 - RELEASE OF 19 April 1986), with -% "footnote" changed to "endnote" and "fn" changed to "en" (where -% appropriate), with all the minipage stuff pulled out, and with -% some small changes for the different operation of endnotes. -% Subsequently updated to follow the code for -% LaTeX2e <2000/06/01>. -% -% Uses an extra external file, with .ent extension, to hold the -% text of the endnotes. This may be deleted after the run; a new -% version is generated each time--it doesn't require information -% collected from the previous run. -% -% This code does not obey \nofiles. Perhaps it should. -% -% John Lavagnino (John.Lavagnino@kcl.ac.uk) -% Centre for Computing in the Humanities, King's College London -% -% To turn all the footnotes in your documents into endnotes, say -% -% \let\footnote=\endnote -% -% in your preamble, and then add something like -% -% \newpage -% \begingroup -% \parindent 0pt -% \parskip 2ex -% \def\enotesize{\normalsize} -% \theendnotes -% \endgroup -% -% as the last thing in your document. (But \theendnotes all -% by itself will work.) -% -% **************************************** -% * CHANGE LOG * -% **************************************** -% -% JL Modified to include \addtoendnotes. JL, 10/22/89. -% -% JK Modification by J"org Knappen 25. 2. 1991: -% JK -% JK Introduced \notesname in the spirit of international \LaTeX. -% JK \notesname is set per default to be {Notes}, but can easily -% JK be redifined, e.g. for german language -% JK \renewcommand{\notesname}{Anmerkungen} -% -% DW Modification by Dominik Wujastyk, London, 19 September 1991: -% DW -% DW Moved the line -% DW \edef\@currentlabel{\csname p@endnote\endcsname\@theenmark} -% DW out of the definition of \@endnotetext and into the definition -% DW of \@doanenote so that \label and \ref commands work correctly in -% DW endnotes. Otherwise, the \label just pointed to the last section -% DW heading (or whatever) preceding the \theendnotes command. -% -% JL Revised documentation and macros. 24 Sept 1991. -% -% modified by --bg (B.Gaulle) 09/14/94 for: -% 1) replace » (why a 8bit char here?) by ^ as a default. -% 2) force \catcode of > to be 12 (implied by \@doanenote). -% by --bg again 03/22/95 for: -% 3) reseting appropriate catcode of > in case it were -% used as an active char before \@endanenote (was -% pointed by Ch. Pallier). -% -% John Lavagnino, 12 January 2003: a number of small updates: -% -% JL Incorporate change suggested by Frank Mittelbach to -% JL \enoteheading, so that first note has paragraph indentation. -% JL Frank's note: -% the idea of this code is to fix the problem that without it -% the first endnote after the heading will not be indented thus looking -% somewhat strange. Problem however is that since there is no -% indentation \leavemode\par will make an absolutely empty pargraph so -% that no baseline calculation is done. therefore \vskip-\baselineskip -% will put the first endnote directly below the heading without the -% usual spaccing. using \mbox insead will cure this defect. -% -% JL Also incorporated Frank's suggestion to define -% JL \makeenmark and \theenmark, so that users can change more of the -% JL layout without using \makeatletter. \makeenmark defaults to -% JL \@makeenmark, so old code is still supported; and \theenmark is -% JL just syntactic sugar for \@theenmark, which is still the real -% JL value (and shouldn't be directly modified by user code). -% -% JL Definition of \ETC. also dropped: surely nobody is still -% JL using TeX 2.992. (If you are, you need to upgrade it or -% JL endnotes longer than 1000 characters will be truncated.) -% -% JL Update much of the code to track the current LaTeX2e code more -% JL closely. Clean up \theendnotes. -% -% John Lavagnino, 15 January 2003: fix my garbled version of -% Frank's updates. -% -% -% **************************************** -% * ENDNOTE COMMANDS * -% **************************************** -% -% -% \endnote{NOTE} : User command to insert a endnote. -% -% \endnote[NUM]{NOTE} : User command to insert a endnote numbered -% NUM, where NUM is a number -- 1, 2, -% etc. For example, if endnotes are numbered -% *, **, etc. within pages, then \endnote[2]{...} -% produces endnote '**'. This command does not -% step the endnote counter. -% -% \endnotemark[NUM] : Command to produce just the endnote mark in -% the text, but no endnote. With no argument, -% it steps the endnote counter before generating -% the mark. -% -% \endnotetext[NUM]{TEXT} : Command to produce the endnote but no -% mark. \endnote is equivalent to -% \endnotemark \endnotetext . -% -% \addtoendnotes{TEXT} : Command to add text or commands to current -% endnotes file: for inserting headings, -% pagebreaks, and the like into endnotes -% sections. TEXT a moving argument: -% \protect required for fragile commands. -% -% **************************************** -% * ENDNOTE USER COMMANDS * -% **************************************** -% -% Endnotes use the following parameters, similar to those relating -% to footnotes: -% -% \enotesize : Size-changing command for endnotes. -% -% \theendnote : In usual LaTeX style, produces the endnote number. -% -% \theenmark : Holds the current endnote's mark--e.g., \dag or '1' or 'a'. -% (You don't want to set this yourself, as it comes -% either from the autonumbering of notes or from -% the optional argument to \endnote. But you'll need -% to use it if you define your own \makeenmark.) -% -% \makeenmark : A macro to generate the endnote marker from \theenmark -% The default definition is \hbox{$^\theenmark$}. -% -% \@makeentext{NOTE} : -% Must produce the actual endnote, using \theenmark as the mark -% of the endnote and NOTE as the text. It is called when effectively -% inside a \parbox, with \hsize = \columnwidth. For example, it might -% be as simple as -% $^{\theenmark}$ NOTE -% -% -% **************************************** -% * ENDNOTE PSEUDOCODE * -% **************************************** -% -% \endnote{NOTE} == -% BEGIN -% \stepcounter{endnote} -% \@theenmark :=G eval (\theendnote) -% \@endnotemark -% \@endnotetext{NOTE} -% END -% -% \endnote[NUM]{NOTE} == -% BEGIN -% begingroup -% counter endnote :=L NUM -% \@theenmark :=G eval (\theendnote) -% endgroup -% \@endnotemark -% \@endnotetext{NOTE} -% END -% -% \@endnotetext{NOTE} == -% BEGIN -% write to \@enotes file: "\@doanenote{ENDNOTE MARK}" -% begingroup -% \next := NOTE -% set \newlinechar for \write to \space -% write to \@enotes file: \meaning\next -% (that is, "macro:->NOTE) -% endgroup -% END -% -% \addtoendnotes{TEXT} == -% BEGIN -% open endnotes file if not already open -% begingroup -% let \protect to \string -% set \newlinechar for \write to \space -% write TEXT to \@enotes file -% endgroup -% END -% -% \endnotemark == -% BEGIN \stepcounter{endnote} -% \@theenmark :=G eval(\theendnote) -% \@endnotemark -% END -% -% \endnotemark[NUM] == -% BEGIN -% begingroup -% endnote counter :=L NUM -% \@theenmark :=G eval(\theendnote) -% endgroup -% \@endnotemark -% END -% -% \@endnotemark == -% BEGIN -% \leavevmode -% IF hmode THEN \@x@sf := \the\spacefactor FI -% \makeenmark % put number in main text -% IF hmode THEN \spacefactor := \@x@sf FI -% END -% -% \endnotetext == -% BEGIN \@theenmark :=G eval (\theendnote) -% \@endnotetext -% END -% -% \endnotetext[NUM] == -% BEGIN begingroup counter endnote :=L NUM -% \@theenmark :=G eval (\theendnote) -% endgroup -% \@endnotetext -% END -% -% **************************************** -% * ENDNOTE MACROS * -% **************************************** -% - -\@definecounter{endnote} -\def\theendnote{\@arabic\c@endnote} - -\def\@makeenmark{\hbox{\@textsuperscript{\normalfont\@theenmark}}} -\def\makeenmark{\@makeenmark} - -\def\theenmark{\@theenmark} - -\newdimen\endnotesep - -\def\endnote{\@ifnextchar[\@xendnote{\stepcounter{endnote}% - \protected@xdef\@theenmark{\theendnote}% - \@endnotemark\@endnotetext}} - -\def\@xendnote[#1]{% - \begingroup - \c@endnote=#1\relax - \unrestored@protected@xdef\@theenmark{\theendnote}% - \endgroup - \@endnotemark\@endnotetext} - -% Here begins a section of endnote code that's really different from -% the footnote code of LaTeX. - -\let\@doanenote=0 -\let\@endanenote=0 - -\newwrite\@enotes -\newif\if@enotesopen \global\@enotesopenfalse - -\def\@openenotes{\immediate\openout\@enotes=\jobname.ent\relax - \global\@enotesopentrue} - -% The stuff with \next and \meaning is a trick from the TeXbook, 382, -% there intended for setting verbatim text, but here used to avoid -% macro expansion when the footnote text is written. \next will have -% the entire text of the footnote as one long line, which might well -% overflow limits on output line length; the business with \newlinechar -% makes every space become a newline in the \@enotes file, so that all -% of the lines wind up being quite short. - -\long\def\@endnotetext#1{% - \if@enotesopen \else \@openenotes \fi - \immediate\write\@enotes{\@doanenote{\@theenmark}}% - \begingroup - \def\next{#1}% - \newlinechar='40 - \immediate\write\@enotes{\meaning\next}% - \endgroup - \immediate\write\@enotes{\@endanenote}} - -% \addtoendnotes works the way the other endnote macros probably should -% have, requiring the use of \protect for fragile commands. - -\long\def\addtoendnotes#1{% - \if@enotesopen \else \@openenotes \fi - \begingroup - \newlinechar='40 - \let\protect\string - \immediate\write\@enotes{#1}% - \endgroup} - -% End of unique endnote code - -\def\endnotemark{% - \@ifnextchar[\@xendnotemark - {\stepcounter{endnote}% - \protected@xdef\@theenmark{\theendnote}% - \@endnotemark}} - -\def\@xendnotemark[#1]{% - \begingroup - \c@endnote #1\relax - \unrestored@protected@xdef\@theenmark{\theendnote}% - \endgroup - \@endnotemark} - -\def\@endnotemark{% - \leavevmode - \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi - \makeenmark - \ifhmode\spacefactor\@x@sf\fi - \relax} - -\def\endnotetext{% - \@ifnextchar [\@xendnotenext - {\protected@xdef\@theenmark{\theendnote}% - \@endnotetext}} - -\def\@xendnotenext[#1]{\begingroup \c@endnote=#1\relax - \xdef\@theenmark{\theendnote}\endgroup \@endnotetext} - -\def\@xendnotenext[#1]{% - \begingroup - \c@endnote=#1\relax - \unrestored@protected@xdef\@theenmark{\theendnote}% - \endgroup - \@endnotetext} - - -% \theendnotes actually prints out the endnotes. - -% The user may want separate endnotes for each chapter, or a big -% block of them at the end of the whole document. As it stands, -% either will work; you just say \theendnotes wherever you want the -% endnotes so far to be inserted. However, you must add -% \setcounter{endnote}{0} after that if you want subsequent endnotes -% to start numbering at 1 again. - -% \enoteformat is provided so user can specify some special formatting -% for the endnotes. It needs to set up the paragraph parameters, start -% the paragraph, and print the label. The \mbox stuff in \enoteheading -% is to make and undo a dummy paragraph, to get around the games \section* -% plays with paragraph indenting and instead give us uniform -% indenting for all notes. - -\def\notesname{Notes}% -\def\enoteheading{\section*{\notesname - \@mkboth{\MakeUppercase{\notesname}}{\MakeUppercase{\notesname}}}% - \mbox{}\par\vskip-\baselineskip} - -\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=1.8em - \leavevmode\llap{\makeenmark}} - -\def\enotesize{\footnotesize} - -\def\theendnotes{\immediate\closeout\@enotes \global\@enotesopenfalse - \begingroup - \makeatletter - % - % The machinery with \@ResetGT and > here ensures that - % \@doanenote works properly even if > is an active character - % at the point where \theendnotes is invoked. > needs to have - % catcode 12 when the arguments of \@doanenote are scanned, so - % that the > in the string "macro:->" is matched. The actual - % footnote text is not an argument to \@doanenote, but just - % follows it in the .ent file; so \@ResetGT can reset the - % category code for > that should be used when processing - % that text. That resetting takes place within a - % \begingroup-\endgroup block set up by \@doanenote and - % \@endanenote, so the catcode for > is back to 12 for the - % next note. - % - \edef\@tempa{`\string >}% - \ifnum\catcode\@tempa=12% - \let\@ResetGT\relax - \else - \edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}% - \@makeother\>% - \fi - \def\@doanenote##1##2>{\def\@theenmark{##1}\par\begingroup - \@ResetGT - \edef\@currentlabel{\csname p@endnote\endcsname\@theenmark}% - \enoteformat} - \def\@endanenote{\par\endgroup}% - \enoteheading - \enotesize - \input{\jobname.ent}% - \endgroup} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 9cd44b5c7d7..76863913ef9 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -104,7 +104,7 @@ my @TLP_working = qw( egplot eiad eiad-ltx eijkhout elbioimp ellipsis elpres elsarticle elsevier elsevier-bib eltex elvish - emptypage emulateapj emp encxvlna endfloat endheads + emptypage emulateapj emp encxvlna endfloat endheads endnotes engpron engrec engtlc enumitem envbig environ envlab epigrafica epigraph epiolmec eplain epsdice epsf epsincl epslatex-fr epspdf epspdfconversion epstopdf diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index 10e6c91ad54..6214080e713 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -171,6 +171,7 @@ depend emptypage depend emulateapj depend endfloat depend endheads +depend endnotes depend engpron depend engrec depend enumitem diff --git a/Master/tlpkg/tlpsrc/endnotes.tlpsrc b/Master/tlpkg/tlpsrc/endnotes.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3