diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/edmac/edmac.doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/edmac/edmac.doc | 7655 |
1 files changed, 0 insertions, 7655 deletions
diff --git a/Master/texmf-dist/doc/latex/edmac/edmac.doc b/Master/texmf-dist/doc/latex/edmac/edmac.doc deleted file mode 100644 index 6327dbac6fc..00000000000 --- a/Master/texmf-dist/doc/latex/edmac/edmac.doc +++ /dev/null @@ -1,7655 +0,0 @@ -% \iffalse This is a METACOMMENT
-%
-% Macro file `EDMAC' for use with Plain TeX.
-%
-% Copyright (C) 1990-1996 John Lavagnino and Dominik Wujastyk.
-%
-% This program is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2 of the License, 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. See the
-% GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-%
-% John Lavagnino and Dominik Wujastyk may be contacted at the email
-% and paper mail addresses given later in this file, after the
-% string "\author".
-% \fi
-%
-% \CheckSum{3106}
-{\catcode`\$=9
-\gdef\fileversion{ $Revision: 3.17 $ }
-\gdef\filedate{ $Date: 12 Jun 1996 17:15:00 $ }}
-\def\docdate{12 June 1996}
-% \hyphenation{man-u-script man-u-scripts}
-%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-%
-% \title{Critical Edition Typesetting\\ The {\tt EDMAC} format for
-% P{\small LAIN}\,\TeX\thanks{This file is\fileversion\unskip,
-% \filedate\unskip.}}
-%
-% \author{John Lavagnino\thanks{%
-% Women Writers Project,
-% Brown University,
-% Box 1841,
-% Providence, RI 02912, USA.
-% Internet: {\tt John\_Lavagnino@brown.edu}.}
-% \and Dominik Wujastyk\thanks{%
-% Wellcome Institute for the History of Medicine,
-% 183 Euston Road,
-% London NW1 2BE, UK.
-% Internet: {\tt D.Wujastyk@ucl.ac.uk}.}}
-% \date{}
-% \DoNotIndex{\@,\@@par,\@beginparpenalty,\@empty}
-% \DoNotIndex{\@flushglue,\@input}
-% \DoNotIndex{\@makefnmark,\@makeother,\@maketitle}
-% \DoNotIndex{\@namedef,\@ne,\@spaces,\@tempa}
-% \DoNotIndex{\@tempb,\@tempswafalse,\@tempswatrue}
-% \DoNotIndex{\@thanks,\@thefnmark,\@topnum}
-% \DoNotIndex{\@@,\@elt,\@forloop,\@fortmp,\@gtempa,\@totalleftmargin}
-% \DoNotIndex{\",\/,\@ifundefined,\@nil,\@verbatim,\@vobeyspaces}
-% \DoNotIndex{\|,\~,\ ,\active,\advance,\aftergroup,\begingroup,\bgroup}
-% \DoNotIndex{\mathcal,\csname,\def,\documentstyle,\dospecials,\edef}
-% \DoNotIndex{\egroup}
-% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\endtrivlist}
-% \DoNotIndex{\expandafter,\fi,\fnsymbol,\futurelet,\gdef,\global}
-% \DoNotIndex{\hbox,\hss,\if,\if@inlabel,\if@tempswa,\if@twocolumn}
-% \DoNotIndex{\ifcase}
-% \DoNotIndex{\ifcat,\iffalse,\ifx,\ignorespaces,\index,\input,\item}
-% \DoNotIndex{\jobname,\kern,\leavevmode,\leftskip,\let,\llap,\lower}
-% \DoNotIndex{\m@ne,\next,\newpage,\nobreak,\noexpand,\nonfrenchspacing}
-% \DoNotIndex{\obeylines,\or,\protect,\raggedleft,\rightskip,\rm,\sc}
-% \DoNotIndex{\setbox,\setcounter,\small,\space,\string,\strut}
-% \DoNotIndex{\strutbox}
-% \DoNotIndex{\thefootnote,\thispagestyle,\topmargin,\trivlist,\tt}
-% \DoNotIndex{\twocolumn,\typeout,\vss,\vtop,\xdef,\z@}
-% \DoNotIndex{\,,\@bsphack,\@esphack,\@noligs,\@vobeyspaces,\@xverbatim}
-% \DoNotIndex{\`,\catcode,\end,\escapechar,\frenchspacing,\glossary}
-% \DoNotIndex{\hangindent,\hfil,\hfill,\hskip,\hspace,\ht,\it,\langle}
-% \DoNotIndex{\leaders,\long,\makelabel,\marginpar,\markboth,\mathcode}
-% \DoNotIndex{\mathsurround,\mbox,\newcount,\newdimen,\newskip}
-% \DoNotIndex{\nopagebreak}
-% \DoNotIndex{\parfillskip,\parindent,\parskip,\penalty,\raise,\rangle}
-% \DoNotIndex{\section,\setlength,\TeX,\topsep,\underline,\unskip,\verb}
-% \DoNotIndex{\vskip,\vspace,\widetilde,\\,\%,\@date,\@defpar}
-% \DoNotIndex{\[,\{,\},\]}
-% \DoNotIndex{\count@,\ifnum,\loop,\today,\uppercase,\uccode}
-% \DoNotIndex{\baselineskip,\begin,\tw@}
-% \DoNotIndex{\a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,\n,\o,\p,\q}
-% \DoNotIndex{\r,\s,\t,\u,\v,\w,\x,\y,\z,\A,\B,\C,\D,\E,\F,\G,\H}
-% \DoNotIndex{\I,\J,\K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z}
-% \DoNotIndex{\1,\2,\3,\4,\5,\6,\7,\8,\9,\0}
-% \DoNotIndex{\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_}
-% \DoNotIndex{\discretionary,\immediate,\makeatletter,\makeatother}
-% \DoNotIndex{\meaning,\newenvironment,\par,\relax,\renewenvironment}
-% \DoNotIndex{\repeat,\scriptsize,\selectfont,\the,\undefined}
-% \DoNotIndex{\arabic,\do,\makeindex,\null,\number,\show,\write,\@ehc}
-% \DoNotIndex{\@author,\@ehc,\@ifstar,\@sanitize,\@title,\everypar}
-% \DoNotIndex{\if@minipage,\if@restonecol,\ifeof,\ifmmode}
-% \DoNotIndex{\lccode,\newtoks,\onecolumn,\openin,\p@,\SelfDocumenting}
-% \DoNotIndex{\settowidth,\@resetonecoltrue,\@resetonecolfalse,\bf}
-% \DoNotIndex{\clearpage,\closein,\lowercase,\@inlabelfalse}
-% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault}
-% \DoNotIndex{\bfdefault}
-%
-% \iffalse This is a METACOMMENT
-% Everything up to the next `\ fi' (without a blank) will
-% be ignored. This is necessary because `%' may no longer
-% be a comment mark when this file is read in.
-%
-% HISTORY:
-%
-% $Log: D:/EDMAC/VCS/EDMAC.DOV $
-%
-% Rev 3.17 12 Jun 1996 17:15:00
-% o changed JL's and TUG's addresses;
-% o updated publication details of works produced with EDMAC;
-% o tidied up a bad cross-reference, etc.
-% o added several ftp and http references
-% o added the GNU license; moved (C) statement to top of file;
-% made the banner displayed when EDMAC is run conform to the GPL.
-% o added reference to CET.
-%
-% Rev 3.16 19 Jul 1994 11:17:04
-% o corrected space bug in \getref@num (thanks to Bernt Karasch);
-% changed documentation of how to use NFSS to point to an external
-% description ed-nfss.tex.
-%
-% Rev 3.15 13 May 1994 18:03:44
-% o added more comment to \morenoexpands;
-% o added example of \printlines after Sanskrit example;
-% o added more info on editions being done with EDMAC;
-% o minor tidying.
-%
-% Rev 3.14 11 May 1994 15:03:04
-% o removed a spurious space from \@lab; corrected a typo in docs.
-%
-% Rev 3.13 11 May 1994 14:01:28
-% o defined \list@clear and \list@create separately;
-% o swapped the subsections on fonts back, so NFSS is described first;
-% o rephrased all sentences with the word "default" to avoid its use.
-%
-% Rev 3.12 11 May 1994 12:03:10
-% o capitalized the footnote and endnote series letters: a-e > A-E.
-%
-% Rev 3.11 10 May 1994 15:19:54
-% o removed the optional braces from the second argument of \text
-% in the examples, and altered the documentation to match.
-%
-% Rev 3.10 10 May 1994 14:31:30
-% o changes to documentation;
-% o made \list@create same as \list@clear;
-% o added \f@encoding and \fontencoding;
-% o corrected \getref@num and \label@parse;
-% o brought the appendix examples more up to date and checked them;
-% o added more cross-references;
-% o added \selectfont to the end of NFSS-\select@@lemmafont.
-%
-% Rev 3.9 03 May 1994 11:42:36
-% o Full incorporation of edmacfss.doc. Appropriate changes in
-% documentation. New \morenoexpands macro. New \list@create
-% and \list@clear in anticipation of faster list handling.
-% Numerous running changes.
-%
-% Rev 3.8 14 Apr 1994 12:02:22
-% o revised the cross-referencing macros, which weren't working.
-%
-% Rev 3.7 31 Aug 1993 15:57:20
-% o Further changes in response to reviewer's observations. Correct
-% explanation of recursion problem with (some) aliases for \text.
-% Changed several more {\tt ...} strings to "..."; added some
-% \mbox{}s for italic in mathmode (wanted by NFSS2).
-%
-% Rev 3.6 27 Aug 1993 16:50:42
-% o made changes as recommended in the TUG publication reviewer's report.
-% Mostly changes to docs; added \edmac@warning.
-% o Added a paragraph to Known Bugs highlighting problem of line breaking
-% in paragraphed footnotes.
-%
-% Rev 3.5 23 Mar 1993 15:03:34
-% o added the corrections spotted by Gyula Mayer: some word duplications
-% and important changes to slhh.tex to make it compatible with the
-% current level of edmac.
-%
-% Rev 3.4 12 Mar 1993 13:47:32
-% o added appendix material: inclusion of EDMACFSS.DOC and
-% example page of Arabic from Klaus Lagally.
-% o cosmetic changes to some \index entries, and removal of
-% some unnecessary \Make/DeleteShortVerb statements.
-%
-% Rev 3.3 11 Mar 1993 12:56:34
-% o John's formatting revisions:
-% Fold long code lines so they don't overrun the measure.
-% Subsubsections changed to paragraphs.
-%
-% Rev 3.2 26 Feb 1993 17:55:12
-% o correction to def'n of \@adv: spotted by Klaus Lagally.
-%
-% Rev 3.1 25 Feb 1993 15:15:00
-% o small changes to documentation.
-%
-% Rev 3.1 25 Feb 1993 12:17:12
-% o small changes to documentation.
-%
-% Rev 3.0 25 Jun 1992 12:38:00
-% No change.
-%
-% Rev 2.25 25 Jun 1992 12:29:20
-% o cosmetic changes to examples and \ipn@skip use.
-%
-% Rev 2.24 22 Jun 1992 13:33:12
-% o cosmetic corrections.
-%
-% Rev 2.23 22 Jun 1992 11:22:52
-% o changed \interparanoteglue to calculate its value once and
-% stick it into a skip register, instead of evaluating afresh
-% in each footnote.
-%
-% Rev 2.22 19 Jun 1992 23:25:42
-% o added refreshed versions of arden.sty and features.tex; upgraded
-% the fonts section to a \subsection.
-%
-% Rev 2.21 19 Jun 1992 21:07:46
-% o numerous small changes by JL; \ifnumbering@ now becomes
-% \ifnumbering since users may want access to it.
-%
-% Rev 2.20 29 May 1992 13:04:26
-% o correction to ballast.
-% o brought "New to TeX?" section back into the document by default.
-%
-% Rev 2.19 26 May 1992 16:14:34
-% o tidied up the \rightskip and \leftskip code in the footstart
-% and vfootnote macros for the different kinds of notes, and
-% documented it (these skips are now zeroed in the vfootnote
-% code, not in footfmt); small corrections to docs.
-%
-% Rev 2.18 22 May 1992 17:35:02
-% o further revisions to the paragraph footnote code and documentation;
-% inserted the \ballast macros.
-%
-% Rev 2.17 18 May 1992 13:32:04
-% o more changes to the para-footnote code. Added @ to para@footgroup
-% and para@vfootnote, since I would not expect these to be easily
-% modified; managed to get para@footgroup back to pre-2.16 code,
-% i.e., as in TeXbook, with just an added \unpenalty; changed
-% \parafootfmt's parfillskip to put proper \interparanoteglue glue
-% between notes; used Michael Downes's \unvxh in para@vfootnote.
-%
-% Rev 2.16 08 May 1992 21:12:12
-% o applied several suggestions based on Wayne Sullivan's change
-% file of 27 April 1992. These included changing \normal@pars
-% to include resetting leftskip and rightskip to zero, and
-% setting \parfillskip to normal; changed \paravfootnote
-% to put the paragraphed footnotes into a \vbox rather
-% than an \hbox (reasons explained in the documentation);
-% changed \parafootgroup quite substantially in order to get
-% the para notes properly unboxed; cosmetic changes to
-% \@add and \everypar; added the macro \edfont@info to make
-% things simpler in edmacfss.doc;
-% o began to write in the \ballast macros.
-%
-% Rev 2.15 16 Apr 1992 17:16:52
-% o corrected minor spelling errors
-%
-% Rev 2.14 09 Dec 1991 16:56:46
-% o revision of \splitoff to get column vspacing right.
-% o more tidying of documentation and examples.
-%
-% Rev 2.13 05 Dec 1991 15:24:48
-% o changed \off@autopar to \normal@pars; changed \verb"xxx" to
-% just "xxx" globally, and put \MakeShortVerb{"} into the
-% driver file, edmacdoc.tex (this change requires the newdoc.sty
-% file, which supplements the doc.sty file); stripped out the
-% examples in the appendix, and put in new ones, tailored to fit
-% the changes in edmac.doc (removal of verbose definitions of
-% \eightpoint, etc.); changed \two- and \threecolfootgroup to
-% reduce the amount of boxing and reboxing of the footnote insertions
-% done in the output routine (not wholly sure about this); added
-% the periph4.tex file in the appendix (don't know how it got left
-% out in previous versions); small changes to columnar footnote
-% macros, and generally to the documentation.
-%
-% Rev 2.12 04 Dec 1991 17:13:22
-% o added Wayne Sullivan's new cross referencing macros.
-%
-% Rev 2.11 03 Dec 1991 10:17:48
-% o have added \eightpoint, and \notefontsetup; more work on
-% documentation of fonts, mentioned edmacfss.doc; put calls to
-% \notefontsetup into footnote macros, so default is now to
-% small notes; took out the separate \twocol@foottopskip etc.
-% macros, and put \notefontsetup in the right place to govern
-% \ht\footstrut.
-%
-% Rev 2.9 15 Nov 1991 17:46:06
-% o more macro name revisions; the bigee was \m@j -> \@l. All
-% list macros are now called ...@list. Modified \beginnumbering
-% to zero counters before reading the file, and took the zeroing
-% out of \readlinelist. Then added \pausenumbering and
-% \resumenumbering. More documentation. Added \endashchar,
-% \fullstop, \rbracket, and put \rbracket after the lemma in all
-% footnote commands (a better default, I think).
-%
-% Rev 2.8 12 Nov 1991 16:06:56
-% o major overhaul of macro names (w@rdw@rd -> word@word, etc.);
-% changed references to \count0 and \count255 (\count@) to
-% \@tempcntb and \@tempcnta; Changed the bitwise stuff in
-% \printlines to be done with new scratch counters.
-%
-% Rev 2.7 26 Aug 1991 18:06:10
-% o addition of line-number locking features.
-% o \global added to a few instances of \noteschanged@true.
-% o \@lnmoutstatus replaced by \first@lnmout@true and associated
-% macros.
-%
-% Rev 2.6 25 Jul 1991 11:27:52
-% o inserted new arden.sty and arden.tex (1 May 1991)
-% o altered the \rigidbalance definition to do away with spaces
-% in the arguments.
-% o added the \twocol@splittopskip and \threecol@splittopskip
-% dimensions to correct the vertical alignment in columnar
-% footnotes (reported by Paul Wackers).
-%
-% Rev 2.5 22 Apr 1991 9:11:40
-% o correction by W. Sullivan to addpenalties, avoiding use of \count0.
-%
-% Rev 2.4 08 Feb 1991 16:43:16
-% o added a fix to \addpenalti@s provided by Wayne Sullivan
-%
-% Rev 2.3 10 Jan 1991 20:47:34
-% o reduced the spacing around itemized lists.
-%
-% Rev 2.2 11 Dec 1990 23:02:16
-% o added the "general features" and "Periphyseon" examples.
-%
-% Rev 2.1 16 Oct 1990 15:35:42
-% o JL minor revisions to documentation, and editing of
-% the example files iocasta, gg, and arden.
-%
-% Rev 2.0 03 Oct 1990 14:19:38
-% No change.
-%
-% Rev 1.26 03 Oct 1990 12:49:20
-% o Did away with \inputverbatim, and wrote the example files
-% into edmac.doc itself. Added small amount of text to the Appendix.
-%
-% Rev 1.24 25 Sep 1990 15:45:06
-% o made a new \parafootstart, moving the \rightskip etc. from
-% \parafootfmt.
-%
-% Rev 1.23 25 Sep 1990 12:39:32
-% o Merged DW and JL changes; moved examples to \appendix; other
-% small changes to documentation.
-%
-% Rev 1.21 19 Sep 1990 22:23:02
-% o DW changes to documentation; changed "n@" to "@num" when it
-% meant "number"; likewise rationalized and slightly shortened
-% other macros; added parallel examples and picture of page.
-%
-% Rev 1.20 14 Sep 1990 12:39:58
-% o JL near final revision of documentation.
-%
-% Rev 1.18 22 Aug 1990 15:52:48
-% o revised crop mark code; small changes to documentation.
-%
-% Rev 1.18 20 Aug 1990 16:39:38
-% o Revised crop mark code
-%
-% Rev 1.17 20 Aug 1990 13:06:06
-% o Extensive changes in documentation.
-% o solved the \clubpenalty and \widowpenalty glitch
-%
-% Rev 1.16 13 Aug 1990
-% o \ignorespaces in \text and associated macros, to skip over any
-% stray spaces within #2.
-% o Crop marks, \autopar.
-% o More sensible error messages.
-%
-% Rev 1.15 03 Aug 1990 14:41:06
-% o Added two- and three- column footnotes.
-% o Corrected minor bugs in \parafootsetup and \parafootfmt.
-%
-% Rev 1.14 01 Aug 1990 17:58:08
-% o Added \label, \pageref, \lineref and \sublineref cross-referencing
-% commands and documentation. Small changes to documentation.
-%
-% Rev 1.13 27 Jul 1990 10:46:30
-% o Major revision by JL. (for earlier history log, see rev. 1.12)
-%
-% \fi
-%
-% \maketitle
-%
-% \iffalse % We're dropping the abstract for the book version.
-% \begin{abstract}
-% {\tt EDMAC} is a set of \PlainTeX\ macros providing the
-% ability to format critical editions of texts in the traditional
-% way, i.e., similar to the Oxford Classical Texts, Teubner, Arden
-% Shakespeare and other series. The principal functions that are
-% added are marginal line numbering and multiple series of
-% footnotes and endnotes keyed to line numbers. While {\tt EDMAC}'s
-% inner workings are necessarily esoteric, it seeks to provide
-% relatively simple macros to enable you to control the exact
-% format of the edition, taking into account the need to vary the
-% format for different sorts of texts.
-% \end{abstract}
-% \fi
-%
-% ^^A \addtocontents{toc}{\protect\begin{multicols}{2}}
-%
-% {\parskip 0pt ^^A We have to reset \parskip
-% ^^A (bug in \LaTeX)
-% \tableofcontents
-% }
-%
-%
-% \section{Introduction}
-% \subsection{Overview}
-%
-% The "EDMAC" macros, together with \TeX, provide several
-% important facilities for formatting critical editions of texts in
-% a traditional manner. Major features include:
-% \begin{itemize}\addtolength{\itemsep}{-1ex}
-% \item automatic stepped line numbering, by page or by chapter;
-% \item sub-lineation within the main series of line numbers;
-% \item variant readings automatically keyed to line numbers;
-% \item multiple series of footnotes and endnotes;
-% \item block or columnar formatting of footnotes.
-% \end{itemize}
-%
-% "EDMAC" allows the scholar engaged in preparing a critical
-% edition to focus attention wholly on the task of creating the
-% critical text and evaluating the variant readings, text-critical
-% notes and testimonia. \TeX{} and "EDMAC" will take care of
-% the formatting and visual correlation of all the disparate types
-% of information.
-%
-% "EDMAC" works together with the \PlainTeX{} format, and with
-% the exception of footnote-related commands, virtually all plain
-% \TeX{} commands are available for use in the normal way. Other
-% languages and fonts (Sanskrit, Greek, Russian,
-% etc.),\footnote{See, e.g., {\em TUGboat\/} {\bf 9} (1988),
-% pp.\,131--151.} can be incorporated.
-%
-% While "EDMAC" can be used ``out of the box'', with little or
-% no customization, you may also go to the other extreme and view
-% it as a collection of tools. Critical editions are amongst the
-% most idiosyncratic of books (like their authors), so we have made
-% "EDMAC" deliberately bland in some ways, while also trying to
-% document it reasonably well so that you can find out how to make
-% it do what you want.
-%
-% This documentation assumes the ``manual'' use of "EDMAC". But
-% "EDMAC" has also successfully been used (with \TeX, of
-% course) as the formatting engine or ``back end'' for the output
-% of an automatic manuscript collation program. "COLLATE" runs
-% on the Apple Macintosh, can collate simultaneously up to a
-% hundred manuscripts of any length, and provides facilities for
-% the scholar to tailor the collation
-% interactively.\footnote{"COLLATE" was created by Peter
-% Robinson\protect\index{Robinson, Peter} at The Computers and
-% Variant Texts Project, Oxford University Computing Service, 13 Banbury
-% Road, Oxford OX2 6NN, England. Email: "peterr@vax.oxford.ac.uk".
-% See "<URL http://www.shef.ac.uk/uni/projects/ctp/Main/collate.html>".}
-%
-% Another package which mediates between you as editor and the raw "EDMAC"
-% codes is Bernt Karasch's ``Critical Edition Typesetter'' (CET).
-% CET\label{CET}\index{Karasch, Bernt}
-% provides a menu-driven front end for "EDMAC" and the other programs
-% connected with \TeX. CET does not do any collation: you still have to
-% type the edition and the apparatus yourself.\footnote{For more details,
-% see "<URL http://s.top.ruhr-uni-bochum.de/cet.htm>".}
-%
-% This book contains a general description of how to use "EDMAC"
-% (in section~\ref{howto}); the complete source code for the package,
-% with extensive documentation (in sections~\ref{overview}
-% through \ref{end}); a series of examples (in
-% Appendix~\ref{examples}); and an Index to the
-% source code (in Appendix~B). We do not suggest that you need to
-% read the source code for this package in order to use it; we
-% provide this code primarily for reference, and many of our
-% comments on it repeat material that is also found in
-% section~\ref{howto}. But no documentation, however
-% thorough, can cover every question that comes up, and many can be
-% answered quickly by consultation of the code. On a first reading,
-% then, you should skip from the general documentation of
-% section~\ref{howto} to the examples in Appendix~\ref{examples},
-% unless you are particularly interested in the innards of "EDMAC".
-%
-% \subsubsection{Availability}
-%
-% The "EDMAC" macros are available from CTAN, the Comprehensive \TeX\
-% Archive Network.\footnote{See "<URL http://jasper.ora.com/ctan.html/>".}
-% And "EDMAC" has it's own home page on the world wide web: see
-% "<URL http://www.ucl.ac.uk/~ucgadkw/edmac.html>".
-%
-% \subsection{History}
-%
-% The original version of "EDMAC" was "TEXTED.TEX", written
-% by John Lavagnino in late 1987 and early 1988 for formatting
-% critical editions of English plays.
-%
-% John passed these macros on to Dominik Wujastyk who, in
-% September--October 1988, added the footnote paragraphing mechanism,
-% margin swapping and other changes to suit his own purposes, making the
-% style more like that traditionally used for classical texts in Latin and
-% Greek (e.g., the Oxford Classical Texts series). He also wrote some
-% extra documentation and sent the files out to several people. This
-% version of the macros was the first to be called "EDMAC".
-%
-% The present version was developed in the summer of 1990, with the
-% intent of adding necessary features, streamlining and documenting
-% the code, and further generalizing it to make it easily adaptable
-% to the needs of editors in different disciplines. John did most
-% of the general reworking and documentation, with the financial
-% assistance of the Division of the Humanities and Social Sciences,
-% California Institute of Technology. Dominik adapted the code to
-% the conventions of Frank Mittelbach's\index{Mittelbach, Frank}
-% "doc" option, and added some documentation, multiple-column
-% footnotes, cross-references, and crop marks.\footnote{This version of
-% the macros was used to format the Sanskrit text in volume I of {\em
-% Metarules of P\=a\d ninian Grammar\/} by Dominik Wujastyk (Groningen:
-% Forsten, 1993).} A description by John and Dominik of this version of
-% "EDMAC" was published as ``An overview of "EDMAC": a \PlainTeX\
-% format for critical editions'', {\em TUGboat\/} {\bf 11} (1990),
-% pp.\,623--643.
-%
-% From 1991 through 1994, the macros continued
-% to evolve, and were tested at a
-% number of sites. We are very grateful to all the members of the
-% (now defunct)
-% "edmac@mailbase.ac.uk" discussion group who helped us with
-% smoothing out bugs and infelicities in the macros.
-% Ron Whitney\index{Whitney, Ron} and our anonymous reviewer at
-% the TUG were both of great help in ironing out last-minute
-% wrinkles, while Ron made some important suggestions which may help
-% to make future versions of "EDMAC" even more efficient.
-% Wayne
-% Sullivan,\index{Sullivan, Wayne} in particular, provided several
-% important fixes and contributions, including adapting the
-% Mittelbach\slash
-% Sch\"opf\index{Sch\"opf, Rainer}\index{Mittelbach, Frank} ``New
-% Font Selection Scheme'' for use with \PlainTeX\ and "EDMAC" (see
-% p.\,\pageref{edmacnfss} below). Another project Wayne has worked
-% on is a "DVI" post-processor which works with an "EDMAC"
-% that has been slightly modified to output "\special"s. This
-% combination enables you to recover to some extent the text of
-% each line, as {\sc ascii} code, facilitating the creation of
-% concordances, an {\em index verborum}, etc.
-%
-% At the time of writing, we are pleased to be able to say that "EDMAC"
-% is used for real-life book production. Several interesting
-% editions have appeared in print or are underway, such as
-% the Latin texts of Euclid's {\sl
-% Elements},\footnote{Gerhard Brey\index{Brey, Gerhard} used "EDMAC" in
-% the production of Hubert L. L. Busard\index{Busard, Hubert L. L.} and
-% Menso Folkerts,\index{Folkerts, Menso} {\em Robert of Chester's
-% (?)\index{Chester, Robert of} Redaction of Euclid's\index{Euclid} {\em
-% Elements}, the so-called Adelard II\index{Adelard II} Version}, 2 vols.,
-% (Basel, Boston, Berlin: Birkh\"auser, 1992).} an edition of the letters
-% of Nicolaus Copernicus,\footnote{Being prepared at the German Copernicus
-% Research Institute, Munich, under the general editorship of Heribert
-% M. Nobis\index{Nobis, Heribert M.} and Menso Folkerts\index{Folkerts,
-% Menso}; volume 1 has appeared as {\em Documenta Copernicana: Briefe
-% (Texte und \"{U}bersetzungen)}, edited by Andreas
-% K\"{u}hne\index{Kuehne, Andreas}, et al. (Berlin: Akademie Verlag,
-% 1994).}\index{Copernicus, Nicolaus} Simon
-% Bredon's\index{Bredon, Simon} {\em Arithmetica},\footnote{Being prepared
-% by Menso Folkerts {\em et al.}, at the Institut f\"ur Geschichte der
-% Naturwissenschaften in Munich.} a Latin translation by Plato of
-% Tivoli\index{Plato of Tivoli} of an Arabic astrolabe
-% text,\footnote{Richard Lorch,\index{Lorch, Richard} Gerhard
-% Brey\index{Brey, Gerhard}, Stefan Kirschner\index{Kirschner, Stefan},
-% and Christoph Sch\"{o}ner\index{Schoener, Christoph},
-% `Ibn-a\d{s}-\d{S}aff\={a}rs Traktat \"{u}ber das Astrolab in der
-% \"{U}bersetzung von Plato von Tivoli,' in {\em Cosmographica et
-% Geographica}, ed.\ Bernhard Fritscher\index{Fritscher, Bernhard} and
-% Gerhard Brey\index{Brey, Gerhard}, (M\"{u}nchen: Instit\"{u}t f\"ur
-% Geschichte der Naturwissenschaften, 1994), vol.\,1, pp.\,125--180.} a
-% Latin
-% translation of part II of the Arabic {\em Algebra\/} by Ab\=u K\=amil
-% Shuj\=a' b. Aslam,\index{Abu Kamil Shuja' b. Aslam}\footnote{Richard
-% Lorch, `Ab\=u K\=amil on the Pentagon and Decagon' in {\em Vestigia
-% Mathematica}, ed.\ M. Folkerts\index{Folkerts, Menso} and J. P.
-% Hogendijk\index{Hogendijk, J. P.} (Amsterdam, Atlanta:
-% Rodopi, 1993).} the Latin {\em Rithmachia\/} of Werinher von
-% Tegernsee,\footnote{Menso Folkerts, `Die {\em Rithmachia\/} des Werinher
-% von Tegernsee', ibid.} a middle-Dutch romance epic on the
-% Crusades,\footnote{Geert H. M. Claassens,\index{Claassens, Geert H. M.}
-% {\em De Middelnederlandse Kruisvaartromans}, (Amsterdam: Schiphower en
-% Brinkman, 1993).}
-% Johann Widmann's German arithmetic of 1489,\footnote{{\em Behend vnd
-% h\"upsch Rechnung vff allen Kauffmanschafften}, being prepared at the
-% University of Heidelberg by Barbara G\"artner\index{Gaertner, Barbara}.}
-% a seventeenth-century Hungarian politico-philosophical
-% tract,\footnote{Emil Hargittay, {\em Cs\'aky Istv\'an: Politica
-% philosophiai Okoskod\'as-szerint val\'o rendes \'eletnek p\'eld\'aja
-% (1664--1674)\/} (Budapest: Argumentum Kiad\'o, 1992).} an anonymous
-% Latin compilation of Christian sermons from Hungary\footnote{{\em
-% Sermones Compilati in Studio Gererali Quinqeecclesiensi in Regno
-% Ungarie}, ed.\ Eduardo Petrovich\index{Petrovich, Eduardo} and Paulus
-% Ladislaus Timkovics\index{Timkovics, Paulus Ladislaus} (Budapest:
-% Akad\'emiai Kiad\'o, 1993), typeset, as was the previous book, by Gyula
-% Mayer\index{Mayer, Gyula}.} the collected letters and papers of
-% Leibniz,\index{Leibniz}\footnote{Leibniz, {\em S\"amtliche Schriften und
-% Briefe}, series {\sc I, III, VII,} being edited by Dr.\ H.
-% Breger\index{Breger, Herbert} and Dr. N. G\"adeke\index{G\"adeke, Nora}
-% at the Leibniz-Archiv, Nieders\"achsische Landesbibliothek, Hannover.}
-% Theodosius's\index{Theodosius} {\em Spherics}, the German {\em
-% Algorismus} of Sacrobosco,\index{Sacrobosco} the Sanskrit text of the
-% {\em Skandapur\=a\d{na}},\footnote{Being prepared at the University of
-% Groningen by Hans Bakker,\index{Bakker, Hans} Roelf
-% Adriaensen,\index{Adriaensen, Roelf} and
-% Harunaga Isaacson.\index{Isaacson, Harunaga}} and the English texts of
-% Thomas Middleton's\index{Middleton, Thomas} collected
-% works\footnote{{\em The Collected Works of Thomas Middleton}, Gary
-% Taylor, general editor, and John Lavagnino, electronics editor (Oxford:
-% Oxford University Press, forthcoming).}, as well as the editions by
-% Wayne Sullivan\index{Sullivan, Wayne}, Mac Pigman\index{Pigman,
-% III$^{rd}$, G. W.}, and Dominik Wujastyk\index{Wujastyk, Dominik} which
-% are illustrated in Appendix~\ref{examples}.
-%
-% \subsection{New to \TeX?}
-%
-% If you are coming to "EDMAC" primarily as the editor of a
-% text, but have not thought about using \TeX\ before, you should
-% find someone to help you get started with the program. It is not
-% really hard, but there are some points where a bit of good advice
-% might save you some time. \TeX{} is available in versions that
-% run on most computers, and many implementations of \TeX\ are
-% available free, or at a very low cost. The output of \TeX\ can
-% be printed without change on most printers and phototypesetting
-% machines. \TeX\ produces very high quality typesetting, and is
-% particularly strong in the areas of typesetting complex
-% mathematical formulae and multilingual texts.
-%
-% The \TeX{} Users Group (TUG) can advise you on all matters
-% related to \TeX. If you are not already a member of the group, it
-% is well worth joining. One of the most useful things TUG will do
-% for you initially is give you a membership list, so you can find
-% out who your local \TeX\ guru is. The address is:
-% \begin{quote}
-% \TeX{} Users Group,\\* 1850 Union Street, Suite 1637,\\*
-% San Francisco, CA 94123\\* USA.\\* Email: "tug@tug.org"\\*
-% Home page: "<URL http://www.tug.org/>".
-% \end{quote}
-%
-% This document does not include a \TeX{} tutorial.
-% Recent years have seen the publication of numerous excellent books on
-% how to learn and use \TeX, and the main implementations of \TeX, such as
-% em\TeX\ by Eberhard Mattes\index{Mattes, Eberhard}, come with first
-% class documentation. In brief, when
-% you use "EDMAC" the main text to be edited is typed into a
-% computer file as a plain text, with blank lines marking paragraph
-% breaks, and with all formatting, accented characters, and other
-% special requirements indicated by \TeX{} macros. {\em The \TeX
-% book\/}\footnote{Reading, MA: Addison-Wesley, 1984.} by
-% Donald E.~Knuth gives guidelines on various formatting commands
-% for headings, page size, etc., and is a necessary
-% reference for users of "EDMAC".
-%
-%
-% \section{How to use {\tt EDMAC}}\label{howto}
-% \subsection{Introduction}
-%
-% A document that uses "EDMAC" will use many standard \TeX{}
-% commands, along with special "EDMAC" commands. This chapter
-% describes the usage of all the "EDMAC" commands; the name of
-% each will be printed in the margin as it is introduced. We assume
-% a basic familiarity with \TeX{} conventions; if you are not
-% conversant with \TeX{}, you should be able to form an idea of
-% the specific capabilities of "EDMAC" from this account, but
-% (we repeat) you will not be able to use "EDMAC" without first
-% learning some \TeX{}.
-%
-% All you need to do to invoke "EDMAC" is to include the line
-% "\input EDMAC.DOC" at the top of your document, and to have the
-% file "EDMAC.DOC" somewhere on your disk that is ``visible''
-% to \TeX{} for input. It takes only a few
-% seconds for \TeX\ to read "EDMAC.DOC", but if you
-% are going to use it frequently, as will certainly be the case if
-% you are doing a real edition, you will find it convenient to
-% compile it into a \TeX\ format file, loading it after
-% "PLAIN.TEX" and any other private macros.
-%
-% "EDMAC" {\em is a three-pass system}, like
-% \LaTeX.\footnote{Oh yes it is, if you have a table of contents,
-% lists of figures, etc.} Although your textual apparatus and line
-% numbers will be printed even on the first run, it takes two more
-% passes through \TeX\ to be sure that everything gets to its right
-% place. Any changes you make to the input file may similarly
-% require three passes to get everything to the right place, if the
-% changes alter the number of lines or notes. "EDMAC" will tell
-% you that you need to make more runs, when it notices, but it does
-% not expend the labor to check this thoroughly. If you have
-% problems with a line or two misnumbered at the top of a page, try
-% running \TeX{} once or twice more.
-%
-% A file may mix {\em numbered\/} and {\em unnumbered\/} text.
-% Numbered text is printed with marginal line numbers and can include
-% footnotes and endnotes that are referenced to those line numbers:
-% this is how you'll want to print the text that you're editing.
-% Unnumbered text is not printed with line numbers, and you can't
-% use "EDMAC"'s note commands with it: this is appropriate for
-% introductions and other material added by the editor around the
-% edited text.
-%
-% \paragraph{The choice of editing program}
-% The careful choice of a good text editing program can make the
-% preparation of texts for "EDMAC" much easier. In common with
-% most \TeX\ documents, a file formatted with "EDMAC" macros
-% will have many sets of braces, often nested, and often enclosing
-% material that will end up at the bottom of the page as notes.
-% Some word processors or editors have the ability to ``fold'' text
-% out of sight. This means that on the computer screen a particular
-% string or passage can be hidden, perhaps behind a symbol. Most
-% modern word-processors handle footnotes in this way. When you want
-% to type a note, a window opens up; you type the note, and the
-% window closes, leaving a highlighted number to remind you that
-% a note is there. There are several folding editors available
-% commercially and in the public domain, which would allow you to
-% see only the main text of your work on the computer screen, while
-% the notes and variants, etc., would be hidden from view.\footnote{One
-% cross-platform public domain folding editor is ``Andys Editor'' which is
-% available from the well-known Hobbes Internet site,
-% "<URL http://hobbes.nmsu.edu/os2/editors/>" as the file "ae.zip".}
-% GNU "Emacs" has an "outline" mode which could probably be
-% modified to work like this. (It is important, of course, that
-% the editor doesn't pepper your text with unwanted control codes,
-% or that if it does, they can easily be removed.)
-%
-% Another helpful feature to look for in your editing program is
-% syntax-highlighting. This means that the editor displays \TeX\ codes in
-% a different colour from the textual matter. This is enormously helpful
-% in keeping clear what is what: you eye easily sees opening and closing
-% braces, text and note commands, etc. One editor which combines this and
-% other valuable features, as well as being available for most operating
-% systems, is "JED", by John E. Davis.\footnote{JED's home page on the
-% web is "<URL http://space.mit.edu/~davis/jed.html>".}
-% The CET system mentioned above (p.\,\pageref{CET} uses a simplified set
-% of tags for marking up the text, and includes a pre-processor which
-% turns these into actual "EDMAC" markup.
-%
-% An editor or system like this can be extremely helpful in keeping your
-% text in good order, and allowing you to concentrate on the edition.
-%
-% \subsection{General markup}
-%
-% \DescribeMacro{\beginnumbering}
-% \DescribeMacro{\endnumbering}
-% Each section of numbered text must be preceded by
-% "\beginnumbering" and followed by "\endnumbering":
-% \begin{samepage}
-% \smallskip
-%
-% "\beginnumbering"
-%
-% $\langle${\em text\/}$\rangle$
-%
-% "\endnumbering"
-% \end{samepage}
-%
-% The "\beginnumbering" macro resets the line number to zero,
-% reads an auxiliary file called \meta{filename}"."\meta{nn} (where
-% {\it filename\/} is the name of the main input file for this job,
-% and {\it nn\/} is "1" for the first numbered section, "2" for
-% the second section, and so on), and then creates a new version of
-% this auxiliary file to collect information during this run. The
-% first instance of "\beginnumbering" also opens a file called
-% \meta{filename}".end" to receive the text of the endnotes.
-% "\endnumbering" closes the \meta{filename}"."\meta{nn} file.
-%
-% If the line numbering of a text is to be continuous from start to end,
-% then the whole text will be typed between one pair of
-% "\beginnumbering" and "\endnumbering" commands. But your text
-% will most often contain chapter or other divisions marking sections
-% that should be independently numbered, and these will be appropriate
-% places to begin new numbered sections. "EDMAC" has to read and store
-% in memory
-% a certain amount of information about the entire section when it
-% encounters a "\beginnumbering" command, so it speeds up the
-% processing and reduces memory use when a text is divided into a larger
-% number of sections (at the expense of multiplying the number of
-% external files that are generated).
-%
-% \DescribeMacro{\pstart}
-% \DescribeMacro{\pend}
-% Within a numbered section, each paragraph of numbered text must
-% be marked using the "\pstart" and "\pend" commands:
-% \begin{samepage}
-% \smallskip
-%
-% "\pstart"
-%
-% $\langle${\em paragraph of text\/}$\rangle$
-%
-% "\pend"
-%
-% \end{samepage}
-%
-% Text that appears within a numbered section but isn't marked with
-% "\pstart" and "\pend" will not be numbered.
-%
-% The following example shows the proper section and paragraph
-% markup, and the kind of output that would typically be generated:
-% \egstart
-% \begin{verbatim}
-% \beginnumbering
-% \pstart
-% This is a sample paragraph, with
-% lines numbered automatically.
-% \pend
-%
-% \pstart
-% This paragraph too has its
-% lines automatically numbered.
-% \pend
-%
-% The lines of this paragraph are
-% not numbered.
-%
-% \pstart
-% And here the numbering begins
-% again.
-% \pend
-% \endnumbering
-% \end{verbatim}
-% \egmid
-% {\parskip0pt \count255=0
-% \everypar={\advance \count255 by 1 \hbox to 1.5em{\the\count255\hfil}}
-% This is a sample paragraph\par
-% with lines numbered\par
-% automatically.\smallskip
-%
-% This paragraph too\par
-% has its lines automatically\par
-% numbered.\smallskip
-%
-% \everypar={\hbox to 1.5em{\hfil}}
-% The lines of this paragraph\par
-% are not numbered.\smallskip
-%
-% \everypar={\advance \count255 by 1 \hbox to 1.5em{\the\count255\hfil}}
-% And here the numbering\par
-% begins again.\par}
-% \egend
-%
-% \DescribeMacro{\autopar}
-% You can use "\autopar" to avoid the nuisance of this paragraph markup
-% and still have every paragraph automatically numbered. The scope of the
-% "\autopar" command needs to be limited by keeping it within a group, as
-% follows:
-% \egstart
-% \begin{verbatim}
-% \begingroup
-% \beginnumbering
-% \autopar
-%
-% A paragraph of numbered text.
-%
-% Another paragraph of numbered
-% text.
-%
-% \endnumbering
-% \endgroup
-% \end{verbatim}
-% \egmid
-% {\parskip0pt \count255=0
-% \everypar={\advance \count255 by 1 \hbox to 1.5em{\the\count255\hfil}}
-% A paragraph of numbered\par
-% text.\smallskip
-%
-% Another paragraph of\par
-% numbered text.\par}
-% \egend
-% "\autopar" fails, however, on paragraphs that start with a
-% "{" or with any other command that starts a new group before it
-% generates any text. Such paragraphs need to be started explicitly,
-% before the new group is opened,
-% using "\indent", "\noindent", or "\leavevmode", or using
-% "\pstart" itself.\footnote{For a detailed study of the
-% reasons for this restriction, see Barbara Beeton, ``Initiation
-% rites'', {\em TUGboat\/} {\bf 12} (1991),
-% pp.\,257--258.\protect\index{Beeton, Barbara Ann Neuhaus Friend}}
-%
-% \DescribeMacro{\pausenumbering}
-% \DescribeMacro{\resumenumbering}
-% \label{pause}\relax
-% "EDMAC" stores a lot of information about line numbers and
-% footnotes in memory as it goes through a numbered section. But
-% at the end of such a section, it empties its memory out, so to
-% speak. If your text has a very long numbered section it is
-% possible that your \TeX\ may reach its memory limit. There are
-% two solutions to this. The first is to get a new \TeX\ with
-% increased memory. There are several Big\TeX\ implementations
-% easily available today, both commercial and public-domain,
-% depending on your operating system. The second solution is to
-% split your long section into several smaller ones. The trouble
-% with this is that your line numbering will start again at zero
-% with each new section. To avoid this problem, we provide
-% "\pausenumbering" and "\resumenumbering" which are just
-% like "\endnumbering" and "\beginnumbering", except that
-% they arrange for your line numbering to continue across the break.
-% Use "\pausenumbering" only between numbered paragraphs:
-% \egstart
-% \begin{verbatim}
-% \beginnumbering
-% \pstart
-% Paragraph of text.
-% \pend
-% \pausenumbering
-%
-% \resumenumbering
-% \pstart
-% Another paragraph.
-% \pend
-% \endnumbering
-% \bye
-% \end{verbatim}
-% \egmid
-% {\parskip0pt \count255=0
-% \everypar={\advance \count255 by 1 \hbox to 1.5em{\the\count255\hfil}}
-% Paragraph of\par
-% text.\medskip
-%
-% Another paragraph.\par}
-%
-% \egend
-%
-% We have
-% defined these commands as two macros, in case you find it necessary
-% to insert text between numbered sections without disturbing the
-% line numbering. But if you are really just using these macros to
-% save memory, you might as well say
-% \begin{verbatim}
-% \def\memorybreak{\pausenumbering\resumenumbering}
-% \end{verbatim}
-% and say "\memorybreak" between the relevant "\pend" and
-% "\pstart".
-%
-%
-%
-% \subsection{The apparatus}
-%
-% \DescribeMacro{\text}
-% Within numbered paragraphs, all footnotes and endnotes are generated
-% by forms of the "\text" macro:
-% \begin{verse}
-% "\text{"\meta{lemma}"}"\meta{commands}"/"
-% \end{verse}
-%
-% The \meta{lemma} argument is the lemma in the main text: "\text"
-% both prints this as part of the text, and makes it available to the
-% \meta{commands} you specify to generate notes. The "/" at the
-% end terminates the command; it is part of the macro's definition so
-% that spaces after the macro will be treated as significant.
-%
-% For example:
-% \egstart
-% \begin{verbatim}
-% I saw my friend \text{Smith}
-% \Afootnote{Jones C, D.}/
-% on Tuesday.
-% \end{verbatim}
-% \egmid
-% 1\enspace I saw my friend\\
-% 2\enspace Smith on Tuesday.\smallskip
-% \hrule width 1.5cm
-% \strut {\bf 2} Smith] Jones C, D.
-% \egend
-%
-% The lemma "Smith" is printed as part of this sentence in
-% the text, and is also made available to the footnote
-% that specifies a variant, "Jones C, D". The footnote macro
-% is supplied with the line number at which the lemma appears
-% in the main text.
-%
-% The \meta{lemma} may contain further "\text" commands; this is the
-% other reason why "\text"'s arguments are terminated by "/". Nesting makes
-% it possible to print an explanatory note on a long passage together with
-% notes on variants for individual words within the passage. For
-% example:
-% \egstart
-% \begin{verbatim}
-% \text{I saw my friend
-% \text{Smith}\Afootnote{Jones
-% C, D.}/ on Tuesday.}
-% \Bfootnote{The date was
-% July 16, 1954.}
-% /
-% \end{verbatim}
-% \egmid
-% 1\enspace I saw my friend\\
-% 2\enspace Smith on Tuesday.\smallskip
-% \hrule width 1.5cm
-% \strut {\bf 2} Smith] Jones C, D.\smallskip
-% \hrule width 1.5cm
-% \strut {\bf 1--2} I saw my friend \\
-% Smith on Tuesday.] The\\ date was
-% July 16, 1954.
-% \egend
-%
-% However, "\text" cannot handle overlapping but unnested
-% notes---for example, one note covering lines 10--15, and another
-% covering 12--18; a "\text" that starts in the \meta{lemma}
-% argument of another "\text" must end there, too. (The
-% "\lemma" and "\linenum" commands may be used to
-% generate overlapping notes if necessary.)
-%
-% \paragraph{Commands used in {\tt\protect\bslash text}'s second argument}
-%
-% The second argument of the "\text" macro, \meta{commands},
-% may contain a series of subsidiary commands that generate
-% various kinds of notes.
-%
-% \DescribeMacro{\Afootnote}
-% \DescribeMacro{\Bfootnote}
-% \DescribeMacro{\Cfootnote}
-% \DescribeMacro{\Dfootnote}
-% \DescribeMacro{\Efootnote}
-% Five separate series of footnotes are maintained; when all five
-% are used, the "A" notes appear in a layer just below the main
-% text, followed by the rest in turn, down to the "E" notes at
-% the bottom. These are the main macros that you will use to construct
-% the critical apparatus of your text. "EDMAC" provides five
-% layers of notes in the belief that this will be adequate for
-% the most demanding editions. But it is not hard to add further
-% layers of notes to "EDMAC" should they be required.
-%
-% \DescribeMacro{\Aendnote}
-% \DescribeMacro{\Bendnote}
-% \DescribeMacro{\Cendnote}
-% \DescribeMacro{\Dendnote}
-% \DescribeMacro{\Eendnote}
-% "EDMAC" also maintains five separate series of endnotes.
-% Normally, none of them is printed: you must use the
-% "\doendnotes" macro described below
-% (p.\,\pageref{doendnotes}) to call for their
-% output at the appropriate point in your document.
-%
-% \DescribeMacro{\lemma}
-% Sometimes you want to change the lemma that gets passed to the notes.
-% You can do this by using "\lemma" within the second argument to
-% "\text", before the note commands.
-% \begin{verse}
-% "\lemma{"\meta{alternative lemma}"}"
-% \end{verse}
-% The most common use of this command is to abbreviate the lemma that's
-% printed in the notes. For example:
-% \egstart
-% \begin{verbatim}
-% \text{I saw my friend
-% \text{Smith}\Afootnote{Jones
-% C, D.}/ on Tuesday.}
-% \lemma{I \dots\ Tuesday.}
-% \Bfootnote{The date was
-% July 16, 1954.}
-% /
-% \end{verbatim}
-% \egmid
-% 1\enspace I saw my friend\\
-% 2\enspace Smith on Tuesday.\smallskip
-% \hrule width 1.5cm
-% \strut {\bf 2} Smith] Jones C, D.\smallskip
-% \hrule width 1.5cm
-% \strut {\bf 1--2} I \dots\ Tuesday.] \\
-% The date was July 16, 1954.
-% \egend
-%
-% \DescribeMacro{\linenum}
-% \label{linenum}\relax
-% You can use "\linenum" to change the line numbers passed to
-% the notes. The notes are actually given seven parameters: the page,
-% line, and sub-line number for the start of the lemma; the same
-% three numbers for the end of the lemma; and the font specifier
-% for the lemma. As argument to "\linenum", you specify
-% those seven parameters in that order, separated by vertical bars
-% (the "|" character). However, you can retain the value
-% computed by "EDMAC" for any number by simply omitting it; and
-% you can omit a sequence of vertical bars at the end of the
-% argument. For example, "\linenum{|||23}" changes one number,
-% the ending page number of the current lemma.
-%
-% This command doesn't change the marginal line numbers in any way;
-% it just changes the numbers passed to the footnotes. Its use comes in
-% situations that "\text" has trouble dealing with for
-% whatever reason. If you need notes for overlapping passages that
-% aren't nested, for instance, you can use "\lemma" and
-% "\linenum" to generate such notes despite the limitations of
-% "\text". If the \meta{lemma} argument to "\text" is
-% extremely long, you may run out of memory; here again you can
-% specify a note with an abbreviated lemma using "\lemma" and
-% "\linenum". The numbers used in "\linenum" need not be
-% entered manually; you can use the ``"x-"'' symbolic cross-referencing
-% commands below (p.\,\pageref{crossref}) to compute them
-% automatically.
-%
-% Similarly, being able to manually change the lemma's font specifier
-% in the notes might be important if you were using multiple scripts or
-% languages. The form of the font specifier depends on the font
-% selection scheme you are using (see section~\ref{fonts} below).
-% If you're using Plain, it is the
-% ``font family'' number; if you're using NFSS, it is actually three
-% separate codes separated by "/" characters, giving the family,
-% series, and shape codes as defined within NFSS.
-%
-% \paragraph{Changing the names of these commands}
-%
-% The commands for generating the apparatus have been given
-% rather bland names, because editors in different fields have
-% widely divergent notions of what sort of notes are required, where
-% they should be printed, and what they should be called. But this
-% doesn't mean you have to type "\Afootnote" when you'd rather
-% say something you find more meaningful, like "\variant". We
-% recommend that you create a series of such aliases and use them
-% instead of the names chosen here; all you have to do is put commands
-% of this form at the start of your file:
-% \begin{verbatim}
-% \let\variant=\Afootnote
-% \let\explanatory=\Bfootnote
-% \let\trivial=\Aendnote
-% \let\testimonia=\Cfootnote
-% \end{verbatim}
-%
-% It is also possible to define aliases for "\text", which
-% can be easier to type. You can make a single character substitute
-% for "\text" by saying this:
-% \begin{verbatim}
-% \catcode`\<=\active
-% \let<=\text
-% \end{verbatim}
-%
-% Then you might say "<{Smith}\variant{Jones}/". This of course
-% destroys the ability to use "<" in any new macro definitions, so
-% long as it remains in effect; hence it should be used with care.
-%
-% Changing the character at the end of the command requires more work:
-% \begin{verbatim}
-% \catcode`\<=\active
-% \def\xtext#1#2>{\text{#1}{#2}/}
-% \let<=\xtext
-% \end{verbatim}
-% This allows you to say "<{Smith}\Afootnote{Jones}>".
-%
-% Aliases for "\text"
-% of the first kind shown here also can't be nested---that is,
-% you can't use the alias in the text that forms the first argument
-% to "\text". (See section~\ref{text} to find out why.) Aliases of
-% the second kind may be nested without any problem.
-%
-% \subsection{Lineation commands}
-%
-% \DescribeMacro{\lineation}
-% "EDMAC" can number lines either by page or by section; you specify
-% this using the "\lineation{"\meta{arg}"}"
-% macro, where \meta{arg} is either
-% "page" or "section". You may only use this command at places
-% where numbering is not in effect; you can't change the lineation system
-% within a section. You can change it between sections: they don't all
-% have to use the same lineation system. The line-of-section system is
-% "EDMAC"'s standard setting.
-%
-% \DescribeMacro{\linenummargin}
-% The marginal line numbers will be printed in the "left",
-% "right", "inner", or "outer" margin, depending on which you
-% specify as argument to the "\linenummargin"
-% command: for example, "\linenummargin{inner}".
-% Normally, line numbers appear
-% in the left margin. You can change this whenever you're not in the
-% middle of making a paragraph.
-%
-% \DescribeMacro{\firstlinenum}
-% \DescribeMacro{\linenumincrement}
-% \DescribeMacro{\firstsublinenum}
-% \DescribeMacro{\sublinenumincrement}
-% In most cases, you will not want a number printed for every
-% single line of the text. Four \TeX{} "count" registers control
-% the printing of marginal numbers.
-% "\firstlinenum" specifies the number of the first line in a
-% section to number, and "\linenumincrement" is the increment
-% between numbered lines. "\firstsublinenum" and
-% "\sublinenumincrement" do the same for
-% sub-lines. Initially, all these counters are set equal to $5$.
-%
-% \DescribeMacro{\leftlinenum}
-% \DescribeMacro{\rightlinenum}
-% \DescribeMacro{\linenumsep}
-% When a marginal line number is to be printed, there are a
-% lot of ways to display it.
-% You can redefine "\leftlinenum" and "\rightlinenum" to
-% change the way marginal line numbers are printed in the
-% left and right margins respectively; the initial
-% versions print the number in font "\numlabfont" (described
-% below) at a distance "\linenumsep" (initially set to one pica)
-% from the text.
-%
-% \subsection{Changing the line numbers}
-%
-% Normally the line numbering starts at 1 for the first line of
-% a section and steps up by one for each line thereafter. There
-% are various common modifications of this system, however; the
-% commands described here allow you to put such modifications
-% into effect.
-%
-% \DescribeMacro{\startsub}
-% \DescribeMacro{\endsub}
-% You insert the "\startsub" and "\endsub" commands in your text
-% to turn sub-lineation on and off. In plays, for
-% example, stage directions are often numbered with sub-line
-% numbers: as line $10.1$, $10.2$,
-% $10.3$, rather than as $11$, $12$, and $13$.
-% Titles and headings are sometimes numbered with sub-line numbers
-% as well.
-%
-% When sub-lineation is in effect, the line number counter is
-% frozen and the sub-line counter advances instead. If one of these
-% commands appears in the middle of a line, it doesn't take effect
-% until the next line; in other words, a line is counted as a line
-% or sub-line depending on what it started out as, even if that
-% changes in the middle.
-%
-% \DescribeMacro{\startlock}
-% \DescribeMacro{\endlock}
-% The "\startlock" command, used in running text, locks the
-% line number at its current value, until you say "\endlock".
-% It can tell for itself whether you are in a patch of line or
-% sub-line numbering. One use for line-number locking is in printing
-% poetry: there the line numbers should be those of verse lines
-% rather than of printed lines, even when a verse line requires several
-% printed lines.
-%
-% \DescribeMacro{\lockdisp}
-% When line-number locking is used,
-% several printed lines may have the same line number, and you have to
-% specify whether you want the number attached to the first printed
-% line or the last, or whether you just want the number printed by
-% them all. (This assumes that, on the basis of the settings of
-% the previous parameters, it is necessary to display a line number for
-% this line.) You specify your preference using "\lockdisp"; its
-% argument is a word, either "first", "last", or "all".
-% "EDMAC" initially sets this to "first".
-%
-% \DescribeMacro{\setline}
-% \DescribeMacro{\advanceline}
-% In some cases you may want to modify the line numbers that are
-% automatically calculated: if you are printing only fragments
-% of a work but want to print line numbers appropriate to a complete
-% version, for example. The "\setline" and "\advanceline" commands
-% may be used to change the current line's number (or the sub-line
-% number, if sub-lineation is currently on). They change both the
-% marginal line numbers and the line numbers passed to the notes.
-% "\setline" takes one argument, the value to which you want
-% the line number set; it must be $0$ or greater. "\advanceline"
-% takes one argument, an amount that should be added to the current
-% line number; it may be positive or negative.
-%
-% \subsection{Alternate footnote formatting}
-% If you just launch into "EDMAC" using the commands outlined
-% above, you will get a standard layout for your text and notes. You
-% may be happy to accept this at the very beginning, while you
-% get the hang of things, but the standard layout is not particularly
-% pretty, and you will certainly want to modify it in due course.
-% "EDMAC" provides ways of changing the fonts and layout of
-% your text, but these are not aimed at being totally comprehensive.
-% They are enough to deal with simple variations from the norm, and
-% to exemplify how you might go on to make more swingeing changes.
-%
-% \DescribeMacro{\footparagraph}
-% \DescribeMacro{\foottwocol}
-% \DescribeMacro{\footthreecol}
-% All footnotes will normally be formatted as a series of separate
-% paragraphs in one column. But there are three other formats
-% available for notes, and using these macros you can select a
-% different format for a series of notes. "\footparagraph" formats
-% all the footnotes of a series as a single paragraph (see
-% figs.~\ref{iocasta-out}, \ref{periphyseon-out} and \pageref{vyadi},
-% pp.\,\pageref{iocasta-out}, \pageref{periphyseon-out}, and
-% \pageref{vyadi}); "\foottwocol" formats them as separate paragraphs,
-% but in two columns (see bottom notes in fig.~\ref{arden-out},
-% p.\,\pageref{arden-out});
-% "\footthreecol", in three columns (see second layer of notes in
-% fig.\ref{features-out}, p.\,\pageref{features-out}). Each of these
-% macros
-% takes one argument: a letter (between "A" and "E") for
-% the series of notes you want changed.
-% So a text with three layers of notes might begin thus:
-% \begin{verbatim}
-% \footnormal{A}
-% \footthreecol{B}
-% \footparagraph{C}
-% \end{verbatim}
-% This would make the A-notes ordinary, B-notes would be in three
-% columns, and the bottom layer of notes would be formed into
-% a paragraph on each page.
-%
-% \DescribeMacro{\interparanoteglue}
-% If you use paragraphed footnotes, the macro "\interparanoteglue"
-% defines the glue appearing in between footnotes in the paragraph.
-% It is a macro whose argument is the glue you want, and its
-% initial setting is (see p.\,\pageref{interparanoteglue}):
-% \begin{verbatim}
-% \interparanoteglue{1em plus .4em minus .4em}
-% \end{verbatim}
-%
-% You should set "\hsize" for the text, and the "\baselineskip" of
-% the footnotes (this is done for you if you use the standard
-% "\notefontsetup"), before you call any
-% of these macros, because their action depends on those values;
-% too much or too little space will be allotted for the notes on
-% the page if these macros use the wrong
-% values.\footnote{\label{nobreaks}There
-% is one tiny proviso about using paragraphed notes: you shouldn't
-% force any explicit line-breaks inside such notes: do not use
-% {\tt \bslash par},
-% {\tt \bslash break}, or {\tt \bslash penalty=-10000}. If
-% you must have a line-break for some obscure reason, just suggest
-% the break very strongly: {\tt \bslash penalty=-9999} will do
-% the trick. Page \pageref{nobreak} explains why this restriction
-% is necessary.}
-%
-% \subsection{Fonts}\label{fonts}
-% One of the most important features of the appearance of the notes,
-% and indeed of your whole document, will be the fonts used. Because
-% the demands of critical editions tax the font-handling system of
-% \PlainTeX, we provide both that system and an alternative, the
-% New Font Selection System (NFSS) developed for \LaTeX. We will
-% first describe the commands that give you control over the
-% use of fonts in the different structural elements of the document,
-% especially within the notes, and then in
-% subsequent sections specify how these commands are used with each
-% of the font-handling systems.
-%
-% (For those who are setting up "EDMAC" for a large job, here is
-% a list of the complete set of "EDMAC" macros relating to fonts that
-% are intended for manipulation by the user: "\endashchar", "\fullstop",
-% "\headlinefont", "\notefontsetup", "\notenumfont",
-% "\numlabfont", and "\rbracket". "EDMAC" also assumes that "\rm" has
-% been defined so as to select a roman font in the current size,
-% and that some reasonable standard font has been selected before
-% the package is loaded.)
-%
-% \DescribeMacro{\notefontsetup}
-% \label{notefonts}\relax
-% The "\notefontsetup" macro defines the standard set of
-% fonts for all your footnotes. This command redefines such commands as
-% "\it" so that they refer to an appropriate family of fonts, typically
-% different from that used for the main text;
-% normally, "EDMAC" chooses eight-point
-% fonts for your footnotes, as against ten-point fonts for the main
-% text.
-%
-% \DescribeMacro{\notenumfont}
-% The "\notenumfont" macro specifies the font used for the line
-% numbers printed in notes. This will typically be a command like
-% "\bf" ("EDMAC"'s initial value is "\sevenrm") that selects a
-% distinctive style for the
-% note numbers, but leaves the choice of a size up to
-% "\notefontsetup".
-%
-% \DescribeMacro{\numlabfont}
-% Line numbers for the main text
-% are usually printed in a smaller font in the margin.
-% The "\numlabfont" macro is provided as a standard name for
-% that font: it is initially set to be a seven-point roman font.
-% You might wish to use a different font if, for example,
-% you preferred to have these line numbers printed using
-% old-style numerals.
-%
-% \DescribeMacro{\select@lemmafont}
-% We will briefly discuss "\select@lemmafont"
-% here because it is important to know about
-% it now, although it is not one of the macros you would expect to
-% change in the course of a simple job. Hence it is ``protected''
-% by having the @-sign in its name.
-%
-% When you use the "\text" macro to mark a word in your text
-% as a lemma, that word will normally be printed again in your
-% apparatus. If the word in the text happens to be in a font such
-% as italic or bold you would probably expect it to appear in the
-% apparatus in the same font. This becomes an absolute necessity
-% if the font is actually a different script, such as Arabic or
-% Cyrillic. "\select@lemmafont" does the work of
-% decoding "EDMAC"'s data about the fonts used to print the lemma in
-% the main text and calling up those fonts for printing the lemma in
-% the note.
-%
-% "\select@lemmafont" is a macro that takes one long
-% argument---the cluster of line numbers passed to the note
-% commands. This cluster ends with a code indicating what
-% fonts were in use at the start of the lemma.
-% "\select@lemmafont" selects the appropriate font for the
-% note using that font specifier.
-%
-% "EDMAC" uses "\select@lemmafont" in a standard footnote
-% format macro called "\normalfootfmt". The footnote formats
-% for each of the layers "A" to "E" are "\let" equal
-% to "\normalfootfmt". So all the layers of footnotes are
-% formatted in the same way.
-%
-% But it is also likely that you might want to have different fonts
-% for just, say, the note numbers in layers "A" and "B" of
-% your apparatus. To do this, make two copies of the
-% "\normalfootfmt" macro (see p.\,\pageref{normalfootfmt})---or
-% "\twocolfootfmt", or the other appropriate macro ending in
-% "-footfmt", depending on what footnote format you have
-% selected---and give these macros the names "\Afootfmt" and
-% "\Bfootfmt". Then, in these new macros, change the font
-% specifications (and spacing, or whatever) to your liking.
-%
-% \DescribeMacro{\endashchar}
-% \DescribeMacro{\fullstop}
-% \DescribeMacro{\rbracket}
-% \font\teni=cmmi10
-% A relatively trivial matter relates to punctuation. In your
-% footnotes, there will sometimes be spans of line numbers like
-% this: 12--34, or lines with sub-line numbers like this: 55.6. The
-% en-dash and the full stop are taken from the same font as the
-% numbers, and it all works nicely. But what if you wanted to use
-% old-style numbers, like {\teni12} and {\teni34}? These look nice
-% in an edition, but when you use the fonts provided by \PlainTeX\
-% they are taken from a math font which does not
-% have the en-dash or full stop in the same places as a text font.
-% If you (or your macros) just typed "$\oldstyle 12--34$" or
-% "$\oldstyle 55.6$" you would get ``{\teni12--34}''and
-% ``{\teni55.6}''. So we define "\endashchar" and
-% "\fullstop", which produce an en-dash and a full stop
-% respectively from the "\rm" font, whatever font you are using
-% for the numbers. These two macros are used in the
-% macros which format the line numbers in the margins and
-% footnotes, instead of explicit punctuation.
-% We also define an "\rbracket" macro for the
-% right square bracket printed at the end of the lemma in many
-% styles of textual notes (including "EDMAC"'s standard style).
-%
-% \subsubsection{The New Font Selection Scheme}
-% \label{edmacnfss}\relax
-%
-% While the handling the fonts in \PlainTeX\ works for simple cases, it
-% quickly gets inadequate if you want \TeX\ to load many different
-% fonts, or if you frequently change font sizes, languages, etc. We
-% recommend that for all but the simplest editions you consider using the
-% New Font Selection Scheme.
-%
-% The New Font Selection Scheme (NFSS) is a major piece of programming by
-% Frank Mittelbach\index{Mittelbach, Frank} and Rainer
-% Sch\"opf\index{Sch\"opf, Rainer} which completely rewrites the way \TeX\
-% macros handle fonts. It was first published in {\em TUGboat} in
-% 1989.\footnote{{\em TUGboat\/} {\bf 10} (1989), pp.\,222--238.}
-% Initially, the NFSS was aimed at replacing the \LaTeX\ system of font
-% handling, as contained in "lfonts.tex".\footnote{See {\em TUGboat} {\bf
-% 11} (1990), pp.\,297--305.} Later it became part of a major revision of
-% the whole of \LaTeX, and is now documented in {\em The \LaTeX\
-% Companion}\footnote{By Michel Goossens, Frank Mittelbach and Alexander
-% Samarin (Reading, etc.: Addison Wesley, 1994). See especially
-% chapter~7.} and in the files distributed with \LaTeX\
-% itself.\footnote{Of the files in the \LaTeXe\ distribution, you should
-% especially read "features.tex" and "fontcmds.dtx".} Another reason why
-% you might wish to use the NFSS is that you may already be accustomed to
-% using it if you are using \LaTeX\ for other parts of your book, or for
-% other publications.
-%
-% Wayne Sullivan\index{Sullivan, Wayne} adapted an early release of the
-% NFSS for separate use with \PlainTeX\ and "EDMAC".\footnote{See the file
-% "plainfss.zip" available from internet archive sites of \TeX-related
-% material.} Since then, the NFSS has become more closely integrated
-% into \LaTeX. So today, if you wish to use the NFSS, you should start by
-% installing the latest version of \LaTeX. This does not mean that
-% "EDMAC" is compatible with \LaTeX\ in general: it isn't. But the
-% accompanying file "ed-nfss.tex" contains instructions about a simple way
-% in which "EDMAC" can use just those parts of \LaTeX\ that define the
-% NFSS.\label{ed-nfss} We have kept these instructions separate because
-% \LaTeX\ is in a period of evolution, and things may work differently in
-% future. But "EDMAC" itself does contain the `hooks' required to access
-% the NFSS if it has been defined.
-%
-% What will you gain by using the NFSS with "EDMAC"? {\em The \LaTeX\
-% Companion}, referred to above, makes the general case for NFSS in clear
-% terms at the beginning of chapter~7. More specifically, if you
-% read the documentation below, you will come across several places
-% where we highlight how hamstrung we felt, being limited to the
-% font macros available in \PlainTeX. See the discussion of
-% "\select@lemmafont" in particular
-% (p.\,\pageref{selectlemmafont}). If you are happy with the CM
-% fonts used by \PlainTeX, plus just a very few others, then you could
-% stay with "EDMAC" as it is. But if you want to use
-% completely different families of fonts, such as PostScript fonts,
-% or if you plan to use several different languages or alphabets
-% such as Armenian or Greek, then your work will be made much easier
-% by the NFSS.
-%
-% Here are some examples of how you might define some of the font
-% macros when you use NFSS.
-% \begin{verbatim}
-% \def\notefontsetup{\fontsize{7}{8}\selectfont}
-% \let\notenumfont=\rm
-% \end{verbatim}
-% These commands select seven-point fonts on eight-point baselines
-% for the notes, and choose a roman font for the line numbers
-% within notes.
-%
-% \subsubsection{The Plain font selection scheme}
-%
-% If you run ordinary \TeX\ with "edmac.doc", the
-% main font commands of \PlainTeX\ will be available in the normal way
-% (see the {\em \TeX book}, chapter 4).
-%
-% "EDMAC" also defines a set of macros (modelled on some of the "manmac"
-% macros from appendix E of {\em The \TeX book}) to
-% invoke eight-point fonts, and an "\eightpoint" macro to select
-% a whole set of fonts at that size; when the Plain font selection
-% scheme is used, this is the initial value of "\notefontsetup". If you
-% want to use some other font size for the notes, you will need to
-% load the appropriate fonts in your file, and then
-% define your own macro on the model of "\eightpoint" that will
-% properly assign the baseline spacing, set the various font
-% families, and redefine the commands "\rm", "\it", etc.
-%
-% If your document requires font shapes other than those found
-% in \PlainTeX, you will need to go further and modify the
-% "\select@lemmafont" macro to handle these shapes:
-% see its use on
-% p.\,\pageref{selectlemmafont} for more details. As you will see
-% from that description, if you are using some new, outlandish font
-% such as Devan\=agar\=\i, you should assign it a new font family,
-% in order for "\select@lemmafont" to be able to handle it
-% this way. But once you get to this level of complexity, it
-% might be better to switch over to the New Font Selection Scheme
-% anyway. Note that our use of the Plain font selection scheme makes
-% a use of the ``font family'' specifier that is not what was
-% intended; and because \TeX's maximum font-family number is $15$,
-% it is possible to run out of font families if your text has many
-% different kinds of font or uses other macro packages that also
-% define new font families. When "EDMAC" uses NFSS, it does not
-% meddle with font-family numbers in this way.
-%
-% Because "\notefontsetup" sets up the whole set of fonts used
-% within notes that are likely to change font shapes, it needs
-% to be equated to a complex macro like "\eightpoint". But the
-% other "EDMAC" font macros---"\notenumfont" and
-% "\numlabfont"---are used for text which should not contain any
-% font changes, and it is usually good enough to equate one of
-% these to a command that selects a specific font at a specific
-% size. For example, saying "\let\numlabfont=\seveni" selects
-% a seven-point math italic font for marginal line numbers, so
-% that the numbers will be printed using old-style figures.
-%
-% \subsection{Crop marks}
-%
-% Publishers usually like crop marks on the camera-ready copy for
-% works of this kind, so a facility for generating them has been
-% incorporated into "EDMAC".
-%
-% Publishers specify crop marks (or trim lines, etc.) in terms of
-% two dimensions, height and width, and they also usually specify
-% back and head margins.
-%
-% The ``head margin'' is the distance between the top of the printed
-% text and the top crop marks; it is normally measured
-% from the top of the running head, \PlainTeX's
-% "\headline". The ``back margins'' (or ``gutter margins'') are
-% the right margins of even-numbered pages, and the left margins of
-% odd-numbered pages. If you hold a book open in front of you, they
-% are the margins in the middle of the opening.
-% \begin{figure}
-% \unitlength=0.80mm
-% \linethickness{0.4pt}
-% \begin{picture}(138.00,90.00)
-% \put(64.00,80.00){\line(-1,0){5.00}}
-% \put(14.01,80.00){\line(1,0){5.00}}
-% \put(14.00,15.00){\line(1,0){5.00}}
-% \put(59.00,15.00){\line(1,0){5.00}}
-% \put(20.01,81.00){\line(0,1){5.00}}
-% \put(58.00,86.00){\line(0,-1){5.00}}
-% \put(20.00,9.00){\line(0,1){5.00}}
-% \put(58.00,14.00){\line(0,-1){5.00}}
-% \put(25.00,20.00){\dashbox{2.00}(29.00,45.00)[cc]{}}
-% \put(25.00,70.00){\dashbox{2.00}(29.00,2.00)[cc]{{\tiny headline}}}
-% \put(10.00,5.00){\framebox(60.00,85.00)[cc]{\shortstack{\strut even\\
-% \strut page\\ \strut text}}}
-% \put(133.00,80.00){\line(-1,0){5.00}}
-% \put(83.00,80.00){\line(1,0){5.00}}
-% \put(83.00,15.00){\line(1,0){5.00}}
-% \put(128.00,15.00){\line(1,0){5.00}}
-% \put(89.00,81.00){\line(0,1){5.00}}
-% \put(127.00,86.00){\line(0,-1){5.00}}
-% \put(89.00,9.00){\line(0,1){5.00}}
-% \put(127.00,14.00){\line(0,-1){5.00}}
-% \put(93.00,20.00){\dashbox{2.00}(29.00,45.00)[cc]{}}
-% \put(93.00,70.00){\dashbox{2.00}(29.00,2.00)[cc]{{\tiny headline}}}
-% \put(78.00,5.00){\framebox(60.00,85.00)[cc]{\shortstack{\strut odd\\
-% \strut page\\ \strut text}}}
-% \put(25.00,77.00){\vector(0,-1){5.00}}
-% \put(25.00,77.00){\vector(0,1){3.00}}
-% \put(54.03,41.97){\makebox(0,0)[lb]{{\tiny back margin}}}
-% \put(91.00,45.00){\vector(-1,0){2.00}}
-% \put(91.00,45.00){\vector(1,0){2.00}}
-% \put(78.10,42.99){\makebox(0,0)[lb]{{\tiny back margin}}}
-% \put(16.00,45.00){\vector(0,1){35.00}}
-% \put(16.00,45.00){\vector(0,-1){30.00}}
-% \put(-0.03,44.00){\makebox(0,0)[lb]{{\tiny cropsetup \#1}}}
-% \put(31.01,8.00){\makebox(0,0)[lb]{{\tiny cropsetup \#2}}}
-% \put(54.03,39.97){\makebox(0,0)[lb]{{\tiny (cropsetup \#4)}}}
-% \put(26.00,75.00){\makebox(0,0)[lb]{{\tiny (cropsetup \#3)}}}
-% \put(26.00,77.00){\makebox(0,0)[lb]{{\tiny head margin}}}
-% \put(56.00,45.00){\vector(-1,0){2.00}}
-% \put(56.00,45.00){\vector(1,0){2.00}}
-% \put(38.03,11.01){\vector(-1,0){17.96}}
-% \put(38.03,11.01){\vector(1,0){20.00}}
-% \put(105.01,18.01){\vector(1,0){17.04}}
-% \put(105.01,18.01){\vector(-1,0){11.96}}
-% \put(103.04,16.04){\makebox(0,0)[lb]{{\tiny hsize}}}
-% \put(123.97,41.99){\vector(0,-1){21.94}}
-% \put(124.00,41.98){\vector(0,1){24.96}}
-% \put(124.94,43.05){\makebox(0,0)[lb]{{\tiny vsize}}}
-% \put(126.99,66.01){\makebox(0,0)[lc]{{\tiny topskip}}}
-% \put(125.99,70.01){\vector(0,-1){3.02}}
-% \put(125.99,62.00){\vector(0,1){2.99}}
-% \put(124.99,64.99){\line(1,0){2.03}}
-% \put(124.99,66.99){\line(1,0){2.03}}
-% \end{picture}
-% \caption{Crop marks, back and head margins.}
-% \label{pages}
-% \end{figure}
-% ^^A Ouch! I'd hate to do that without
-% ^^A Georg Horn's TeXcad program!
-%
-% \DescribeMacro{\cropsetup}
-% \label{cropsetup}\relax
-% If you want to have crop marks, and to control the back and
-% head margins, you issue the "\cropsetup" macro. It takes
-% four parameters (see Figure \ref{pages}):
-% \begin{enumerate}\addtolength{\itemsep}{-1ex}
-% \item the vertical distance between crop marks,
-% \item the horizontal distance between crop marks,
-% \item the head margin, and
-% \item the back margin.
-% \end{enumerate}
-%
-% In addition to these arguments, "EDMAC"
-% uses the "\hsize" of the page, as well as information about the
-% height at which the "\headline" floats above the main text (which
-% is set in \PlainTeX's "\makeheadline" macro). "EDMAC"
-% performs these calculations when you issue the "\cropsetup"
-% command. Therefore, it is important that you set the "\hsize"
-% and make any changes to "\makeheadline" {\sl before\/} you issue
-% the "\cropsetup" command. If you do change these values, issue
-% the "\cropsetup" command again.
-%
-% \DescribeMacro{\headlinefont}
-% \DescribeMacro{\magicvskip}
-% In particular, if the "\headline" is going to be set at a
-% different height from the top of the text, or in a different
-% font, you can change the appropriate values easily by using
-% "\headlinefont" and "\magicvskip". The former is what
-% you would expect; just "\let" it to be whatever font you
-% are using (the font macro should include a definition of an
-% appropriate "\strutbox" for that font). Note that this specification
-% does {\em not\/} change what font is actually used by \TeX, unless
-% you modify \TeX's "\headline" macro; it serves only to inform
-% "\cropsetup" of the size of your headline font.
-%
-% The "\magicvskip" gives you direct
-% access to what Donald Knuth calls
-% a ``magic constant'' on p.\,255 of {\em The \TeX book}. For
-% \PlainTeX, "\magicvskip" is $-22.5$\,pt, but you can change
-% this if you want the "\headline" higher or lower than the
-% built-in value. See p.\,\pageref{magic} below for more details.
-%
-% Apart from this stricture that the "\cropsetup" command
-% should follow any changes in "\hsize" and the "\headline",
-% there is no relation (other than visual) between the crop marks
-% and the "\hsize" and "\vsize". You can vary any of
-% these dimensions independently, without affecting any other. Your
-% publisher will almost always want the "\hsize" and
-% "\vsize" to be a few picas smaller than the horizontal and
-% vertical distances between crop marks. And if you want to shift
-% the whole of your printed page about on the paper, use
-% "\hoffset" and "\voffset" as described in {\em The \TeX
-% book}, p.\,251, or use the facilities of your "DVI" translator.
-%
-% \DescribeMacro{\cropwidth}
-% \DescribeMacro{\cropgap}
-% "\cropwidth" and "\cropgap" define the thickness of
-% the rules used for drawing crop marks and the gap by which crop marks
-% don't cross; as before, if you change either, do so before using
-% the "\cropsetup" macro.
-%
-% If, for example, you want your text to have a back margin,
-% for two-sided printing, but
-% you don't want crop marks, just set "\cropwidth=0pt".
-%
-% \subsection{Endnotes}
-%
-% \DescribeMacro{\doendnotes}
-% \DescribeMacro{\endprint}
-% \label{doendnotes}\relax
-% "\doendnotes" closes the ".end" file that contains
-% the text of the endnotes, if it's open, and
-% prints one series of endnotes, as specifed by a series-letter
-% argument, e.g., "\doendnotes{A}". "\endprint" is the
-% macro that's called to print each note. It uses
-% "\notenumfont", "\select@lemmafont", and
-% "\notefontsetup" to select fonts, just as the footnote
-% macros do (see p.\,\pageref{notefonts} above).
-%
-% \DescribeMacro{\noendnotes}
-% If you aren't going to have any endnotes, you can say "\noendnotes"
-% in your file, before the first "\beginnumbering", to suppress the
-% generation of an unneeded ".end" file.
-%
-% \subsection{Cross referencing}
-% \label{crossref}\relax
-% "EDMAC" provides a simple cross-referencing facility that allows
-% you to mark places in the text with labels, and generate page and
-% line number references to those places elsewhere in the text using
-% those labels.
-%
-% \DescribeMacro{\label}
-% First you place a label in the text using the command
-% "\label{foo}". ``"foo"'' can be almost anything you like, including
-% letters, numbers, punctuation, or a combination---anything but spaces;
-% you might say "\label{toves-3}", for example.\footnote{More precisely,
-% you should stick to characters in the \TeX\ categories of ``letter''
-% and ``other''.}
-%
-% \DescribeMacro{\pageref}
-% \DescribeMacro{\lineref}
-% \DescribeMacro{\sublineref}
-% Elsewhere in the text, either before or after the "\label",
-% you can refer to its location by saying "\pageref{foo}", or
-% "\lineref{foo}", or "\sublineref{foo}". These commands
-% will produce, respectively, the page, line and sub-line on which
-% the "\label{foo}" command occurred.
-%
-% A "\label" command may appear in the main text, or in the
-% first argument of "\text", but not in the apparatus itself. But
-% "\pageref", "\lineref" and "\sublineref" commands can also be used in
-% the apparatus to refer to "\label"s in the text.
-%
-% The "\label" command works by writing macros to an ".aux"
-% file (which will only be created if you are actually using
-% some of these commands). Clearly, then, you will need to process
-% your document through \TeX\ twice in order for the references to
-% be resolved.
-%
-% You will be warned if you say "\label{foo}" and "foo"
-% has been used as a label before. The "ref" commands will
-% return references to the last place in the file marked with this
-% label. You will also be warned if a reference is made to an
-% undefined label. (This will also happen the first time you
-% process a document after adding a new "\label" command: the
-% auxiliary file will not have been updated yet.)
-%
-% If you want to refer to a word inside a
-% \verb"\text{...}/" command, the "\label" should be defined inside
-% the first argument, e.g.,
-% \begin{verbatim}
-% The \text{creature\label{elephant} was quite
-% unafraid}\Afootnote{Of the mouse, that is.}/
-% \end{verbatim}
-%
-% \DescribeMacro{\xpageref}
-% \DescribeMacro{\xlineref}
-% \DescribeMacro{\xsublineref}
-% However, there are situations in which you'll want "EDMAC" to
-% return a number without displaying any
-% warning messages about undefined labels or the like: if you want to
-% use the reference in a context where \TeX\ is looking for a
-% number, such a warning will lead to a complaint that the number
-% is missing. This is the case for references used within the
-% argument to "\linenum", for example. For this situation,
-% three variants of the reference commands, with the "x"
-% prefix, are supplied: "\xpageref", "\xlineref", and "\xsublineref".
-% The only operations they perform are ones
-% that \TeX\ can do in its ``mouth''. They have these limitations:
-% they will not tell you if the label is undefined, and they must
-% be preceded in the file by at least one of the four other
-% cross-reference commands---e.g., a "\label{foo}" command,
-% even if you never refer to that label---since those commands can all
-% do the necessary processing of the ".aux" file, and these
-% cannot.
-%
-% \DescribeMacro{\xxref}
-% The macros "\xxref" and "\makelabel" let you manipulate numbers
-% and labels in ways which you may find helpful in tricky
-% situations.
-%
-% The "\xxref" command generates a reference to a sequence of
-% lines, for use in the second argument of "\text".
-% It takes two arguments, both of which are
-% labels: e.g., "\xxref{mouse}{elephant}". It calls "\linenum"
-% (q.v., p.\,\pageref{linenum} above) and sets the beginning page,
-% line, and sub-line numbers to those of the place where
-% "\label{mouse}" was placed, and the ending numbers to those where
-% "\label{elephant}" occurs.
-%
-% \DescribeMacro{\makelabel}
-% Sometimes the "\label" command cannot be used to specify exactly
-% the page and line desired---for example, if you want to refer to a
-% page and line number in another volume of your edition. In such
-% cases, you can use the "\makelabel" macro so that you can ``roll
-% your own'' label. For example, if you say
-% ``"\makelabel{elephant}{10|25|0}"'' you will have created a new
-% label, and a later call to "\pageref{elephant}" would print
-% ``10'' and "\lineref{elephant}" would print ``25''. The sub-line
-% number here is zero. It is usually best to collect your
-% "\makelabel" statements near the top of your document, so that
-% you can see them at a glance.
-%
-% \subsection{Miscellaneous}
-%
-% Generally, you should set the "\vsize" and "\hsize" of you
-% document at the top, before any "EDMAC" commands are issued,
-% since "EDMAC" uses these values to work out some things, like
-% crop marks and footnote spacing. As {\em The \TeX book\/} says
-% (p.\,251), ``It's best not to monkey with "\hsize" and "\vsize"
-% except at the very beginning of a job\ldots''.
-%
-% Any changes you make to "\leftskip" or "\rightskip" will apply to
-% the main body text, but not to the footnotes. This is how you
-% can get a narrow-set text on a wider base of notes, a common
-% style for critical editions. Footnote material is always set
-% "\hsize" wide.
-%
-% \DescribeMacro{\extensionchars}
-% When "EDMAC" assembles the name of the auxiliary file for a
-% section, it prefixes "\extensionchars" to the section number.
-% This is initially defined to be empty, but you can add some characters to
-% help distinguish these files if you like; what you use is likely
-% to be system-dependent. If, for example, you said
-% "\def\extensionchars{!}", then you would get temporary
-% files called "jobname.!1", "jobname.!2", etc.
-%
-% \subsection{Known bugs}
-%
-% The \PlainTeX{} "\footnote" command will work only within
-% unnumbered text; within numbered text it will wreak havoc.
-% In general, "EDMAC"'s system for adding marginal line numbers
-% breaks anything that makes direct use of the \TeX{} insert system.
-%
-% "\parshape" cannot be used within numbered text, except in a
-% very restricted way (see p.\,\pageref{parshape}).
-%
-% \DescribeMacro{\ballast}
-% \label{ballastdesc}\relax
-% "EDMAC" is a three-pass system, but even after a document has
-% been processed three times, there are some tricky situations in
-% which the page breaks decided by \TeX\ never settle down. At
-% each successive run of \TeX, "EDMAC" oscillates between two
-% different sets of page decisions. To stop this happening, should
-% it arise, Wayne Sullivan\index{Sullivan, Wayne} suggested the
-% inclusion of the quantity "\ballast". The amount of "\ballast"
-% will be subtracted from the penalties which apply to the page
-% breaks calculated on the {\em previous\/} run through \TeX, thus
-% reinforcing these breaks. So if you find your page breaks
-% oscillating, say "\ballast=100" or some such figure, and with any
-% luck the page breaks will settle down. Luckily, this problem
-% doesn't crop up at all often.
-%
-% The restriction on explicit line-breaking in paragraphed footnotes,
-% mentioned in footnote \ref{nobreaks}, p.\,\pageref{nobreaks}, and
-% described in more detail on p.\,\pageref{nobreaks-detail}, really is a
-% nuisance if that's something you need to do. There are some possible
-% solutions, described by Michael Downes\index{Downes, Michael},
-% but this area remains unsatisfactory.
-%
-% Help, suggestions and corrections will be gratefully received.
-%
-%
-% \StopEventually{%
-% \addcontentsline{toc}{section}{\protect\numberline{B}Index}
-% \PrintIndex
-% ^^A \addtocontents{toc}{\protect\end{multicols}}
-% }
-%
-% \section{Implementation overview}\label{overview}
-%
-% We present the "EDMAC" code in roughly the order in which it's used
-% during a run of \TeX. The order is {\em exactly\/} that in which
-% it's read when you load the "EDMAC" package, because the same file
-% is used to generate this book and to generate the \TeX{} input
-% file. Most of what follows consists of macro definitions, but there
-% are some \TeX{} commands that are executed immediately---especially
-% at the start of the code. The documentation generally describes the
-% code from the point of view of what happens when the macros are
-% executed, though. As each macro is introduced, its name is printed
-% in the margin.
-%
-% We begin with the commands you use to start and
-% stop line numbering in a section of text (Section~\ref{preliminaries}).
-% Next comes the machinery for writing and reading the auxiliary file for
-% each section that helps us count lines, and for creating list macros
-% encoding the information from that file (Section~\ref{lineation}); this
-% auxiliary file will be read at the start of each section, to create
-% those list macros, and a new version of the file will be started to
-% collect information from the body of the section.
-%
-% Next are commands for marking sections of
-% the text for footnotes (Section~\ref{text}), followed by the macros
-% that take each paragraph apart, attach the line numbers and insertions,
-% and send the result to the vertical list (Section~\ref{paragraph}). The
-% footnote commands (Section~\ref{footnotes}) and output routine
-% (Section~\ref{output}) finish the main part of the processing;
-% cross-referencing (Section~\ref{xref}) and endnotes
-% (Section~\ref{endnotes}) complete the story.
-%
-% In what follows, macros with an @ in their name are more internal
-% to the workings of "EDMAC" than those made up just of
-% ordinary letters, just as in \PlainTeX\ (see {\em The \TeX
-% book}, p.\,344). You are meant to be able to make free with
-% ordinary macros, but the ``@'' ones should be treated with more
-% respect, and changed only if you are pretty sure of what you are
-% doing.
-%
-%
-% \section{Preliminaries}
-% \label{preliminaries}\relax
-%
-% When this file is loaded by \TeX, it makes a check, before
-% anything else is done, for whether this set of macros has
-% already been loaded before. If it has, this file exits without
-% being read further; if it hasn't, some informative messages
-% are printed.
-%
-% \begin{macrocode}
-\ifx\edmacloaded\relax\endinput\else\let\edmacloaded=\relax\fi
-{\newlinechar=`\^^J
-\message{^^J
- ********************************************************************^^J
- EDMAC Critical edition macros.^^J
- Copyright (C) 1990--1996 John Lavagnino and Dominik Wujastyk.^^J
- This is free software, and you are welcome to redistribute it under^^J
- certain conditions; see the accompanying file COPYING for details.^^J
- ^^J%
-\fileversion\space\space\space <\filedate>.^^J
- ********************************************************************^^J^^J }}
-% \end{macrocode}
-%
-% \begin{macro}{\makeatletter}
-% \begin{macro}{\makeatother}
-% You can't normally use @ signs within \TeX{} macro names. We
-% define macros that allow you to turn this capability on and off;
-% and then we turn it on for the time being, since this file
-% will use and define many macros with @ signs in their names.
-% \begin{macrocode}
-\def\makeatletter{\catcode`\@=11 }
-\def\makeatother{\catcode`\@=12 }
-\makeatletter
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@tempcnta}
-% \begin{macro}{\@tempcntb}
-% In imitation of \LaTeX, we create a couple of scratch counters,
-% "\@tempcnta" and "\@tempcntb", that we can
-% use like "\count255" (see {\em The \TeX book}, p.\,122).
-% \begin{macrocode}
-\newcount\@tempcnta \newcount\@tempcntb
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\edmac@warning}
-% "EDMAC" will sometimes want to warn you about what's going
-% on by writing to your terminal and log file; that operation
-% is handled by the "\edmac@warning" macro.
-% \begin{macrocode}
-\def\edmac@warning#1{\immediate\write\sixt@@n{EDMAC warning: #1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Sectioning commands}
-%
-% \begin{macro}{\section@num}
-% You use "\beginnumbering" and "\endnumbering" to begin
-% and end a line-numbered section of the text; the pair of commands may
-% be used as many times as you like within one document to start
-% and end multiple, separately line-numbered sections. \TeX\ will
-% maintain and display a ``section number'' as a counter named
-% "\section@num" that counts how many
-% "\beginnumbering" and "\resumenumbering"
-% commands have appeared; it needn't be
-% related to the logical divisions of your text.
-%
-% \begin{macro}{\extensionchars}
-% Each section will read and write an associated ``line-list
-% file'', containing information used to do the numbering; the file
-% will be called \meta{jobname}"."\meta{nn}, where {\it nn\/} is the
-% section number. However, you may direct that
-% an extra string be added before the
-% {\it nn\/} in that filename, in order to distinguish these
-% temporary files from others: that string is called
-% "\extensionchars". Initially it's empty, since different
-% operating systems have greatly varying ideas about what
-% characters are permitted in file names. So
-% "\def\extensionchars{-}" gives temporary files called
-% "jobname.-1", "jobname.-2", etc.
-% \begin{macrocode}
-\newcount\section@num
-\section@num=0
-\let\extensionchars=\empty
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\ifnumbering}
-% \begin{macro}{\numberingtrue}
-% \begin{macro}{\numberingfalse}
-% The "\ifnumbering" flag is
-% set to "true" if we're within a numbered section (that is, between
-% "\beginnumbering" and "\endnumbering"). You can use "\ifnumbering"
-% in your own code to check whether you're in a numbered section, but
-% don't change the flag's value.
-% \begin{macrocode}
-\newif\ifnumbering
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\beginnumbering}
-% "\beginnumbering" begins a section of numbered text.
-% When it's executed we increment the section number,
-% initialize our counters, send a message to your terminal, and
-% call macros to start the lineation machinery and endnote files.
-%
-% The initializations here are trickier than they look.
-% "\line@list@stuff" will use all of the counters
-% that are zeroed here when it assembles
-% the line-list and other lists of information about the lineation.
-% But it will do all of this locally and
-% within a group, and when it's done the
-% lists will remain but the counters will return to zero. Those same
-% counters will then be used as we process the text of this section,
-% but the assignments will be made globally. These initializations
-% actually apply to both uses, though in all other respects there
-% should be no direct interaction between the use of these counters
-% and variables in the two processing steps.
-% \begin{macrocode}
-\def\beginnumbering{%
- \ifnumbering
- \errmessage{Numbering has already been started}%
- \endnumbering
- \fi
- \global\numberingtrue
- \global\advance\section@num by 1
- \global\absline@num=0
- \global\line@num=0
- \global\subline@num=0
- \global\@lock=0
- \global\sub@lock=0
- \global\sublines@false
- \global\let\next@page@num=\relax
- \global\let\sub@change=\relax
- \message{Section \the\section@num }%
- \line@list@stuff{\jobname.\extensionchars\the\section@num}%
- \end@stuff}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\endnumbering}
-% "\endnumbering" must follow the last text for a numbered section.
-% It takes care of notifying you when changes have been noted in the
-% input that require running the file through again to move everything
-% to the right place.
-% \begin{macrocode}
-\def\endnumbering{%
- \ifnumbering
- \global\numberingfalse
- \normal@pars
- \ifx\insertlines@list\empty\else
- \global\noteschanged@true
- \fi
- \ifx\line@list\empty\else
- \global\noteschanged@true
- \fi
- \ifnoteschanged@
- \immediate\write\sixt@@n{EDMAC reminder: }%
- \immediate\write\sixt@@n{ The number of footnotes in this section
- has changed since the last run.}%
- \immediate\write\sixt@@n{ You will need to run TeX two more times
- before the footnote placement}%
- \immediate\write\sixt@@n{ and line numbering in this section are
- correct.}%
- \fi
- \else
- \errmessage{Numbering was not started}%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\pausenumbering}
-% \begin{macro}{\resumenumbering}
-% The "\pausenumbering" macro is just the same as
-% "\endnumbering", but with the "\ifnumbering" flag set to "true", to
-% show that numbering continues across the gap.\footnote{Our thanks
-% to Wayne Sullivan,\index{Sullivan, Wayne} who suggested the idea
-% behind these macros.}
-% \begin{macrocode}
-\def\pausenumbering{\endnumbering\global\numberingtrue}
-% \end{macrocode}
-% The "\resumenumbering" macro is a bit more involved, but not much.
-% It does most of the same things as "\beginnumbering", but
-% without resetting the various counters. Note that no check is made
-% by "\resumenumbering" to ensure that "\pausenumbering" was actually
-% invoked.
-% \begin{macrocode}
-\def\resumenumbering{%
- \ifnumbering
- \global\advance\section@num by 1
- \message{Section \the\section@num\space
- (continuing the previous section)}%
- \line@list@stuff{\jobname.\extensionchars\the\section@num}%
- \end@stuff
- \else
- \errmessage{Numbering should already have been started.}%
- \endnumbering
- \beginnumbering
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% \section{Line counting}
-% \label{lineation}\relax
-%
-% \subsection{Choosing the system of lineation}
-%
-% Sometimes you want line numbers that start at $1$ at the top of each
-% page; other times you want line numbers that start at $1$ at the start
-% of each section and increase regardless of page breaks.
-% "EDMAC" can do it either way, and you can switch from one to the
-% other within one work.
-% But you have to choose one or the other for all line numbers and
-% line references within each section. Here we will define
-% internal codes for these systems and the macros you use to select them.
-%
-% \begin{macro}{\ifbypage@}
-% \begin{macro}{\bypage@true}
-% \begin{macro}{\bypage@false}
-% The "\ifbypage@" flag specifies the current lineation
-% system: "true" for line-of-section, "false" for line-of-page.
-% "EDMAC" will use the line-of-section system unless instructed otherwise.
-% \begin{macrocode}
-\newif\ifbypage@
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\lineation}
-% "\lineation" is the macro you use to select the lineation system.
-% Its argument is a string: either "page" or "section".
-% \begin{macrocode}
-\def\lineation#1{{%
- \ifnumbering
- \errmessage{You can't use \string\lineation\space
- within a numbered section}%
- \else
- \def\@tempa{#1}\def\@tempb{page}%
- \ifx\@tempa\@tempb
- \global\bypage@true
- \else
- \def\@tempb{section}%
- \ifx\@tempa\@tempb
- \global\bypage@false
- \else
- \edmac@warning{Bad \string\lineation\space argument.}%
- \fi
- \fi
- \fi}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\linenummargin}
-% \begin{macro}{\line@margin}
-% You call "\linenummargin" to specify which margin you want your
-% line numbers in; it takes one argument, a string.
-% You can put the line numbers in the same margin on every page using
-% "left" or "right"; or you can use "inner" or
-% "outer" to get them in the inner or outer margins. (These last
-% two options assume that even-numbered pages will be on the
-% left-hand side of every opening in your book.)
-% You can change this within a numbered section, but the
-% change may not take effect just when you'd like; if it's done between
-% paragraphs nothing surprising should happen.
-%
-% The selection is recorded in "\line@margin":
-% $0$ for left, $1$ for right, $2$ for outer, and $3$ for inner.
-% \begin{macrocode}
-\newcount\line@margin
-\def\linenummargin#1{{%
- \def\@tempa{#1}\def\@tempb{left}%
- \ifx\@tempa\@tempb
- \global\line@margin=0
- \else
- \def\@tempb{right}%
- \ifx\@tempa\@tempb
- \global\line@margin=1
- \else
- \def\@tempb{outer}%
- \ifx\@tempa\@tempb
- \global\line@margin=2
- \else
- \def\@tempb{inner}%
- \ifx\@tempa\@tempb
- \global\line@margin=3
- \else
- \edmac@warning{Bad \string\linenummargin\space argument.}%
- \fi
- \fi
- \fi
- \fi}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\firstlinenum}
-% \begin{macro}{\linenumincrement}
-% The following parameters tell "EDMAC" which lines should be
-% printed with line numbers. "\firstlinenum" is the number of the
-% first line in each section that gets a number;
-% "\linenumincrement"
-% is the difference between successive numbered lines. The initial
-% values of these counters produce labels on lines $5$, $10$, $15$, etc.
-% "\linenumincrement" must be at least $1$.
-% \begin{macrocode}
-\newcount\firstlinenum
-\newcount\linenumincrement
-\firstlinenum=5
-\linenumincrement=5
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\firstsublinenum}
-% \begin{macro}{\sublinenumincrement}
-% The following parameters are just like "\firstlinenum" and
-% "\linenumincrement", but for sub-line numbers.
-% "\sublinenumincrement" must be at least $1$.
-% \begin{macrocode}
-\newcount\firstsublinenum
-\newcount\sublinenumincrement
-\firstsublinenum=5
-\sublinenumincrement=5
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\lockdisp}
-% \begin{macro}{\lock@disp}
-% When line locking is being used, the "\lockdisp" macro
-% specifies whether a line number---if one is due to
-% appear---should be printed on the first printed line or on the
-% last, or by all of them. Its argument is a word, either
-% "first", "last", or "all". Initially, it is set to "first".
-%
-% "\lock@disp" encodes the selection: $0$ for first, $1$ for last,
-% $2$ for all.
-% \begin{macrocode}
-\newcount\lock@disp
-\def\lockdisp#1{{%
- \def\@tempa{#1}\def\@tempb{first}%
- \ifx\@tempa\@tempb
- \global\lock@disp=0
- \else
- \def\@tempb{last}%
- \ifx\@tempa\@tempb
- \global\lock@disp=1
- \else
- \def\@tempb{all}%
- \ifx\@tempa\@tempb
- \global\lock@disp=2
- \else
- \edmac@warning{Bad \string\lockdisp\space argument.}%
- \fi
- \fi
- \fi}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\sublockdisp}
-% \begin{macro}{\sublock@disp}
-% The same questions about where to print the line number apply to
-% sub-lines, and these are the analogous macros for dealing with
-% the problem.
-% \begin{macrocode}
-\newcount\sublock@disp
-\def\sublockdisp#1{{%
- \def\@tempa{#1}\def\@tempb{first}%
- \ifx\@tempa\@tempb
- \global\sublock@disp=0
- \else
- \def\@tempb{last}%
- \ifx\@tempa\@tempb
- \global\sublock@disp=1
- \else
- \def\@tempb{all}%
- \ifx\@tempa\@tempb
- \global\sublock@disp=2
- \else
- \edmac@warning{Bad \string\sublockdisp\space argument.}%
- \fi
- \fi
- \fi}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\leftlinenum}
-% \begin{macro}{\rightlinenum}
-% \begin{macro}{\linenumsep}
-% \begin{macro}{\numlabfont}
-% "\leftlinenum" and "\rightlinenum" are the macros that are
-% called to print marginal line numbers on
-% a page, for left- and right-hand margins respectively.
-% They're made easy to access and change, since you may
-% often want to change the styling in some way. These standard versions
-% illustrate the general sort of thing that will be needed; they're
-% based on the "\leftheadline" macro in {\em The \TeX book}, p.\,416.
-%
-% Whatever these macros output gets printed in a box that will be
-% put into the appropriate margin without any space between it and the
-% line of text. You'll generally want a kern between a line number and
-% the text, and "\linenumsep" is provided as a standard way of
-% storing its size. Line numbers are usually printed in a smaller
-% font, and "\numlabfont" is provided as a standard name for that
-% font. When called, these macros
-% will be executed within a group, so font changes and the like will
-% remain local.
-% \begin{macrocode}
-\newdimen\linenumsep
-\linenumsep=1pc
-\ifx\selectfont\undefined
- \let\numlabfont=\sevenrm
-\else
- \def\numlabfont{\fontsize{7}{8pt}\rm}
-\fi
-\def\leftlinenum{\numlabfont\the\line@num
- \ifsublines@
- \ifnum\subline@num>0
- \unskip\fullstop\the\subline@num
- \fi
- \fi
- \kern\linenumsep}
-\def\rightlinenum{\kern\linenumsep \numlabfont\the\line@num
- \ifsublines@
- \ifnum\subline@num>0
- \unskip\fullstop\the\subline@num
- \fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{List macros}
-%
-% We will make heavy use of lists of information, which will be built
-% up and taken apart by the following macros; they are
-% adapted from {\em The \TeX book}, pp.\,378--379, which discusses
-% their use in more detail.
-%
-% These macros consume a large amount of the run-time of this code.
-% We intend to replace them in a future version, and in anticipation
-% of doing so have defined their interface in such a way that it is
-% not sensitive to details of the underlying code.
-%
-% \begin{macro}{\list@create}
-% The "\list@create" macro creates a new list. In this version of
-% "EDMAC" this macro doesn't do anything beyond initializing an empty
-% list macro, but in future versions it will do more.
-% \begin{macrocode}
-\def\list@create#1{\global\let#1=\empty}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\list@clear}
-% The "\list@clear" macro just initializes a list to the empty list;
-% in this version of "EDMAC" it is no different from
-% "\list@create".
-% \begin{macrocode}
-\def\list@clear#1{\global\let#1=\empty}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\xright@appenditem}
-% \begin{macro}{\@toksa}
-% \begin{macro}{\@toksb}
-% "\xright@appenditem" expands an item and appends it to the right
-% end of a list macro. We want the expansion because we'll often
-% be using this to store the current value of a counter.
-% It creates global control sequences, like "\xdef", and uses two
-% temporary token-list registers, "\@toksa" and "\@toksb".
-% \begin{macrocode}
-\newtoks\@toksa \newtoks\@toksb
-\global\@toksa={\\}
-\long\def\xright@appenditem#1\to#2{%
- \global\@toksb=\expandafter{#2}%
- \xdef#2{\the\@toksb\the\@toksa\expandafter{#1}}%
- \global\@toksb={}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\xleft@appenditem}
-% "\xleft@appenditem" expands an item and appends it to the left
-% end of a list macro; it is otherwise identical to
-% "\xright@appenditem".
-% \begin{macrocode}
-\long\def\xleft@appenditem#1\to#2{%
- \global\@toksb=\expandafter{#2}%
- \xdef#2{\the\@toksa\expandafter{#1}\the\@toksb}%
- \global\@toksb={}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\gl@p}
-% The "\gl@p" macro removes the leftmost
-% item from a list and places it in a
-% control sequence. You say "\gl@p\l\to\z"
-% (where "\l" is the list macro, and
-% "\z" receives the left item). "\l" is assumed nonempty: say
-% "\ifx\l\empty" to test for an empty "\l". The control
-% sequences created by "\gl@p" are all global.
-% \begin{macrocode}
-\def\gl@p#1\to#2{\expandafter\gl@poff#1\gl@poff#1#2}
-\long\def\gl@poff\\#1#2\gl@poff#3#4{\gdef#4{#1}\gdef#3{#2}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Line-number counters and lists}
-%
-% Footnote references using line numbers rather than symbols can't be
-% generated in one pass, because we don't know the line numbers till we
-% ship out the pages. It would be possible if footnotes were never keyed
-% to more than one line; but some footnotes gloss passages that may run
-% for several lines, and they must be tied to the first line of the
-% passage glossed. And even one-line passages require two passes if we
-% want line-per-page numbering rather than line-per-section numbering.
-%
-% So we run \TeX\ over the text several times, and each time save
-% information about page and line numbers in a ``line-list file'' to
-% be used during the next pass. At the start of each section---whenever
-% "\beginnumbering" is executed---the line-list file
-% for that section
-% is read, and the information from it is encoded into a few list
-% macros.
-%
-% We need first to define the different line numbers that are involved
-% in these macros, and the associated counters.
-%
-% \begin{macro}{\line@num}
-% The "\line@num" counter stores the line number that's used in
-% marginal line numbering and in notes: counting either from the start of
-% the page or from the start of the section, depending on your
-% choice for this section. This may be qualified by "\subline@num".
-% \begin{macrocode}
-\newcount\line@num
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\subline@num}
-% The "\subline@num" counter stores
-% a sub-line number that qualifies "\line@num". For example,
-% line $10$ might have sub-line numbers $1$, $2$ and $3$, which might be
-% printed as lines $10.1$, $10.2$, $10.3$.
-% \begin{macrocode}
-\newcount\subline@num
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ifsublines@}
-% \begin{macro}{\sublines@true}
-% \begin{macro}{\sublines@false}
-% We maintain an associated flag, "\ifsublines@",
-% to tell us whether we're within
-% a sub-line range or not.
-%
-% You may wonder why we don't just use the value of "\subline@num"
-% to determine this---treating anything greater than $0$ as an
-% indication that sub-lineation is on. We need a separate flag because
-% sub-lineation can be used together with line-number locking in odd
-% ways: several pieces of a logical line might be interrupted by
-% pieces of sub-lineated text, and those sub-line numbers should not
-% return to zero until the next change in the major line number. This
-% is common in the typesetting of English Renaissance verse
-% drama\index{Middleton, Thomas}, in which stage directions are
-% given sub-line numbers: a single line of verse may be
-% interrupted by several stage directions.
-% \begin{macrocode}
-\newif\ifsublines@
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\absline@num}
-% The "\absline@num" counter stores the
-% absolute number of lines since the start
-% of the section: that is, the number we've actually printed, no matter
-% what numbers we attached to them.
-% This value is never printed on an output page, though
-% "\line@num" will often be equal to it. It is used internally to
-% keep track of where notes are to appear and where new
-% pages start: using this value rather than "\line@num" is a lot
-% simpler, because it doesn't depend on the lineation system in use.
-% \begin{macrocode}
-\newcount\absline@num
-% \end{macrocode}
-% \end{macro}
-%
-% We'll be calling "\absline@num" numbers ``absolute'' numbers, and
-% "\line@num" and "\subline@num" numbers ``visible'' numbers.
-%
-% \begin{macro}{\@lock}
-% \begin{macro}{\sub@lock}
-% The "\@lock" and "\sub@lock" counters
-% tell us the state of line-number
-% and sub-line-number locking. $0$ means we're not within a locked set of
-% lines; $1$ means we're at the first line in the set; $2$, at some
-% intermediate line; and $3$, at the last line.
-% \begin{macrocode}
-\newcount\@lock
-\newcount\sub@lock
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\line@list}
-% \begin{macro}{\insertlines@list}
-% \begin{macro}{\actionlines@list}
-% \begin{macro}{\actions@list}
-% Now we can define the list macros that will be created from the
-% line-list file. We will maintain the following lists:
-% \begin{itemize}\addtolength{\itemsep}{-1ex}
-% \item "\line@list": the page and line numbers for every
-% lemma marked by "\text".
-% There are seven pieces of information, separated by vertical bars:
-% \label{linenumbers}
-% \begin{enumerate}\addtolength{\itemsep}{-1ex}
-% \item the starting page,
-% \item line, and
-% \item sub-line numbers, followed by the
-% \item ending page,
-% \item line, and
-% \item sub-line numbers, and then the
-% \item font specifier for the lemma.
-% \end{enumerate}
-% These line numbers are all visible numbers. Thus a lemma that
-% started on page $23$, line $35$ and
-% went on until page $24$, line $3$
-% (with no sub-line numbering), and was typeset in a font from
-% "\fam0" would have a line list entry like this:
-% "23|35|0|24|3|0|0". That assumes the use of the Plain font selection
-% scheme, which uses the family number as its font specifier. When
-% NFSS is used, the font specifier is a set of four codes for
-% font encoding,
-% family, series, and shape, separated by "/" characters; in that
-% case, the line-list entry would be
-% "23|35|0|24|3|0|OT1/cmr/m/n".
-%
-% There is one item in this list for every lemma marked by
-% "\text", even if there are several notes to that lemma, or no
-% notes at all. "\text" reads the data in this list, making it
-% available for use in the text of notes.
-%
-% \item "\insertlines@list": the line numbers of lines that have
-% footnotes or other insertions.
-% These are the absolute numbers where the corresponding
-% lemmas begin. This list contains one entry for every footnote in the
-% section; one lemma may contribute no footnotes or many footnotes.
-% This list is used by "\add@inserts" within "\do@line", to tell
-% it where to insert notes.
-%
-% \item "\actionlines@list": a list of absolute line numbers at
-% which we are to perform special
-% actions; these actions are specified by the "\actions@list" list
-% defined below.
-%
-% \item "\actions@list": action codes corresponding to the line
-% numbers in "\actionlines@list". These codes tell "EDMAC" what action
-% it's supposed to take at each of these lines. One action, the
-% page-start action, is generated behind the scenes by "EDMAC" itself;
-% the others, for specifying sub-lineation, line-number locking, and
-% line-number alteration, are generated only by explicit commands in
-% your input file. The page-start and line-number-alteration actions
-% require arguments, to specify the new values for the page or line
-% numbers; instead of storing those arguments in another list, we have
-% chosen the action-code values so that they can encode both the action
-% and the argument in these cases. Action codes greater than $-1000$
-% are page-start actions, and the code value is the page number; action
-% codes less than $-5000$ specify line numbers, and the code value is
-% a transformed version of the line number; action codes between these
-% two values specify other actions which require no argument.
-%
-% Here is the full list of action codes and their meanings:
-%
-% Any number greater than $-1000$ is a page-start action: the line number
-% associated with it is the first line on a page, and the action number is
-% the page number. (The cutoff of $-1000$ is chosen because negative
-% page-number values are used by some macro packages; we assume that
-% page-number values less than $-1000$ are not common.)
-% Page-start action codes are added to the list by
-% the "\page@action" macro, which is (indirectly) triggered by the
-% workings of the "\page@start" macro; that macro should always be
-% called in the output routine, just before the page contents are
-% assembled. "EDMAC" calls it in "\pagecontents".
-%
-% The action code $-1001$ specifies the start of sub-lineation: meaning
-% that, starting with the next line, we should be advancing
-% "\subline@num" at each start-of-line command, rather than
-% "\line@num".
-%
-% The action code $-1002$ specifies the end of sub-lineation. At the
-% next start-of-line, we should clear the sub-line counter and start
-% advancing the line number. The action codes for starting and ending
-% sub-lineation are added to the list by the "\sub@action" macro, as
-% called to implement the "\startsub" and "\endsub" macros.
-%
-% The action code $-1003$ specifies the start of line number locking.
-% After the number for the current line is computed, it will remain
-% at that value through the next line that has an action code to end
-% locking.
-%
-% The action code $-1004$ specifies the end of line number locking.
-%
-% The action code $-1005$ specifies the start of sub-line number locking.
-% After the number for the current sub-line is computed, it will remain
-% at that value through the next sub-line that has an action code to end
-% locking.
-%
-% The action code $-1006$ specifies the end of sub-line number locking.
-%
-% The four action codes for line and sub-line number locking are added
-% to the list by the "\do@lockon" and "\do@lockoff" macros, as called
-% to implement the "\startlock" and "\endlock" macros.
-%
-% An action code of $-5000$ or less sets the current visible line
-% number (either the line number or the sub-line number, whichever is
-% currently being advanced) to a specific positive value. The value of
-% the code is $-(5000+n)$, where $n$ is the value (always $\ge 0$)
-% assigned to the current line number. Action codes of this type are
-% added to the list by the "\set@line@action" macro, as called to
-% implement the "\advanceline" and "\setline" macros: this action only
-% occurs when the user has specified some change to the line numbers
-% using those macros. Normally "EDMAC" computes the visible line numbers
-% from the absolute line numbers with reference to the other
-% action codes and the settings they invoke; it doesn't require an
-% entry in the action-code list for every line.
-%
-% Here are the commands to create these lists:
-%
-% \begin{macrocode}
-\list@create{\line@list}
-\list@create{\insertlines@list}
-\list@create{\actionlines@list}
-\list@create{\actions@list}
-% \end{macrocode}
-%
-% \end{itemize}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\page@num}
-% \begin{macro}{\endpage@num}
-% \begin{macro}{\endline@num}
-% \begin{macro}{\endsubline@num}
-% We'll need some counters while we read the line-list,
-% for the page number and the ending page, line, and sub-line numbers.
-% Some of these will be used again later on, when we are acting on the
-% data in our list macros.
-% \begin{macrocode}
-\newcount\page@num
-\newcount\endpage@num
-\newcount\endline@num
-\newcount\endsubline@num
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\ifnoteschanged@}
-% \begin{macro}{\noteschanged@true}
-% \begin{macro}{\noteschanged@false}
-% If the number of footnotes in a section is different from what it was
-% during the last run, or if this is the very first time you've run
-% \TeX\
-% on this file, the information from the line-list used to place the
-% notes will be wrong, and some notes will probably be misplaced.
-% When this happens, we prefer
-% to give a single error message for the whole section rather than
-% messages at every point where we notice the problem, because
-% we don't really know where in the section notes were added or removed,
-% and the solution in any case is simply to run \TeX\ two more times;
-% there's no fix needed to the document. The
-% "\ifnoteschanged@" flag is set if such
-% a change in the number of notes is discovered at any point.
-% \begin{macrocode}
-\newif\ifnoteschanged@
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Reading the line-list file}
-%
-% \begin{macro}{\read@linelist}
-% \begin{macro}{\@inputcheck}
-% "\read@linelist" is the control sequence
-% that's called by "\beginnumbering"
-% (via "\line@list@stuff") to open and process a
-% line-list file; its argument is the name of the file, which will
-% be opened on stream "\@inputcheck" to check for its existence.
-% The first thing we do is initialize all the lists we just
-% described.\label{readlinelist}
-% \begin{macrocode}
-\newread\@inputcheck
-\def\read@linelist#1{%
- \list@clear{\line@list}%
- \list@clear{\insertlines@list}%
- \list@clear{\actionlines@list}%
- \list@clear{\actions@list}%
-% \end{macrocode}
-%
-% Try to open the line-list file, as a check on whether it exists.
-% \begin{macrocode}
- \openin\@inputcheck=#1
- \ifeof\@inputcheck
- \edmac@warning{Can't find line-list file #1}%
- \global\noteschanged@true
- \else
- \global\noteschanged@false
- \closein\@inputcheck
-% \end{macrocode}
-%
-% The file's there. We start a new group and make some special
-% definitions we'll need to process it: it's a sequence of \TeX\
-% commands, but they require a few special settings. We make [ and
-% ] become grouping characters: they're used that way in the
-% line-list file, because we need to write them out one at a time
-% rather than in balanced pairs, and it's easier to just use
-% something other than real braces. @ must become a letter, since
-% this is run in the ordinary \TeX\ context. We ignore carriage
-% returns, since if we're in horizontal mode they can get
-% interpreted as spaces to be printed.
-%
-% \begin{macrocode}
- \begingroup
- \catcode`\[=1 \catcode`\]=2
- \makeatletter \catcode`\^^M=9
-% \end{macrocode}
-%
-% Our line, page, and line-locking counters were already zeroed
-% by "\line@list@stuff" if this is being called from within
-% "\beginnumbering"; sub-lineation will be turned off as well
-% in that case. On the other hand,
-% if this is being called from "\resumenumbering", those things
-% should still have the values they had when "\pausenumbering"
-% was executed.
-%
-% Now, after these preliminaries, we start interpreting the file.
-%
-% \begin{macrocode}
- \input #1
- \endgroup
- \fi
-% \end{macrocode}
-%
-% When the "\input" is done, we're all through with the
-% line-list file. All the information we needed
-% from it will now be encoded in our list macros.
-%
-% Finally, we
-% initialize the "\next@actionline" and "\next@action" macros,
-% which specify where and what the next action to be taken is.
-% \begin{macrocode}
- \global\page@num=-1
- \ifx\actionlines@list\empty
- \gdef\next@actionline{1000000}%
- \else
- \gl@p\actionlines@list\to\next@actionline
- \gl@p\actions@list\to\next@action
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% This version of "\read@linelist" creates list macros
-% containing data for the entire section, so they could get rather
-% large. It would be no more difficult to read the line-list file
-% incrementally rather than all at once: we could read, at the
-% start of each paragraph, only the commands relating to that
-% paragraph, using "\read". But this would require that we
-% have two line-lists open at once, one for reading, one for
-% writing, and on systems without version numbers we'd have to do
-% some file renaming outside of \TeX{} for that to work. We've
-% retained this slower approach to avoid that sort of hacking
-% about, but have provided the "\pausenumbering" and
-% "\resumenumbering" macros to help you if you run into
-% macro memory limitations (see p.\,\pageref{pause} above).
-%
-% \subsection{Commands within the line-list file}
-%
-% This section defines the commands that can appear within a
-% line-list file. They all have very short names because we are
-% likely to be writing very large numbers of them out. One macro,
-% "\@l", is especially short, since it will be written to the
-% line-list file once for every line of text in a numbered section.
-% (Another of these commands, "\@lab", will be introduced in a
-% later section, among the cross-referencing commands it is
-% associated with.)
-%
-% When these commands modify the various page and line counters,
-% they deliberately do not say "\global". This is because we
-% want them to affect only the counter values within the current
-% group when nested calls of "\@ref" occur. (The code assumes
-% throughout that the value of "\globaldefs" is zero.)
-%
-% The macros with "action" in their names contain all the code
-% that modifies the action-code list: again, this is so that they
-% can be turned off easily for nested calls of "\@ref".
-%
-% \begin{macro}{\@l}
-% "\@l" does everything related to the start of a
-% new line of numbered text.
-%
-% First increment the absolute line-number, and perform
-% deferred actions relating to page starts and sub-lines.
-% \begin{macrocode}
-\def\@l{\advance\absline@num by 1
- \ifx\next@page@num\relax \else
- \page@action
- \let\next@page@num=\relax
- \fi
- \ifx\sub@change\relax \else
- \ifnum\sub@change>0
- \sublines@true
- \else
- \sublines@false
- \fi
- \sub@action
- \let\sub@change=\relax
- \fi
-% \end{macrocode}
-%
-% Fix the lock counters, if necessary. A value of $1$ is advanced to
-% $2$; $3$ advances to $0$; other values are unchanged.
-% \begin{macrocode}
- \ifcase\@lock
- \or
- \@lock=2
- \or \or
- \@lock=0
- \fi
- \ifcase\sub@lock
- \or
- \sub@lock=2
- \or \or
- \sub@lock=0
- \fi
-% \end{macrocode}
-%
-% Now advance the visible line number, unless it's been locked.
-% \begin{macrocode}
- \ifsublines@
- \ifnum\sub@lock<2
- \advance\subline@num by 1
- \fi
- \else
- \ifnum\@lock<2
- \advance\line@num by 1 \subline@num=0
- \fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@page}
-% "\@page" marks the start of a new output page; its argument is
-% the number of that page.
-%
-% First we reset the visible line numbers, if we're numbering by page,
-% and store the page number itself in a counter.
-% \begin{macrocode}
-\def\@page#1{\ifbypage@
- \line@num=0 \subline@num=0
- \fi
- \page@num=#1
-% \end{macrocode}
-%
-% And we set a flag that tells "\@l" that a new page number is
-% to be set, because other associated actions shouldn't occur until the
-% next line-start occurs.
-% \begin{macrocode}
- \def\next@page@num{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\sub@on}
-% \begin{macro}{\sub@off}
-% The "\sub@on" and "\sub@off" macros
-% turn sub-lineation on and off\/: but not directly, since such changes
-% don't really take effect until the next line of text. Instead
-% they set a flag that notifies "\@l" of the necessary action.
-% \begin{macrocode}
-\def\sub@on{\ifsublines@
- \let\sub@change=\relax
- \else
- \def\sub@change{1}%
- \fi}
-\def\sub@off{\ifsublines@
- \def\sub@change{-1}%
- \else
- \let\sub@change=\relax
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@adv}
-% The "\@adv" macro advances
-% the current visible line number by the amount specified as
-% its argument. This is used to implement "\advanceline".
-% \begin{macrocode}
-\def\@adv#1{\ifsublines@
- \advance\subline@num by #1
- \ifnum\subline@num<0
- \edmac@warning{\string\advanceline\space produced
- a sub-line number less than zero.}%
- \subline@num=0
- \fi
- \else
- \advance\line@num by #1
- \ifnum\line@num<0
- \edmac@warning{\string\advanceline\space produced
- a line number less than zero.}%
- \line@num=0
- \fi
- \fi
- \set@line@action}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@set}
-% The "\@set" macro sets
-% the current visible line number to the value specified as
-% its argument. This is used to implement "\setline".
-% \begin{macrocode}
-\def\@set#1{\ifsublines@
- \subline@num=#1
- \else
- \line@num=#1
- \fi
- \set@line@action}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\page@action}
-% "\page@action"
-% adds an entry to the action-code list to change the page number.
-% \begin{macrocode}
-\def\page@action{%
- \xright@appenditem{\the\absline@num}\to\actionlines@list
- \xright@appenditem{\next@page@num}\to\actions@list}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\set@line@action}
-% "\set@line@action" adds an entry to the action-code
-% list to change the visible line number.
-% \begin{macrocode}
-\def\set@line@action{%
- \xright@appenditem{\the\absline@num}\to\actionlines@list
- \ifsublines@
- \@tempcnta=-\subline@num
- \else
- \@tempcnta=-\line@num
- \fi
- \advance\@tempcnta by -5000
- \xright@appenditem{\the\@tempcnta}\to\actions@list}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\sub@action}
-% "\sub@action"
-% adds an entry to the action-code list to turn sub-lineation on or
-% off, according to the current value of the "\ifsublines@" flag.
-% \begin{macrocode}
-\def\sub@action{%
- \xright@appenditem{\the\absline@num}\to\actionlines@list
- \ifsublines@
- \xright@appenditem{-1001}\to\actions@list
- \else
- \xright@appenditem{-1002}\to\actions@list
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\lock@on}
-% \begin{macro}{\do@lockon}
-% "\lock@on"
-% adds an entry to the action-code list to turn line number
-% locking on. The current setting of the sub-lineation flag tells us
-% whether this applies to line numbers or sub-line numbers.
-%
-% Adding commands to the action list is slow, and it's very often the
-% case that a lock-on command is immediately followed by a lock-off
-% command in the line-list file, and therefore really does nothing.
-% We use a look-ahead scheme here to detect such pairs, and add nothing
-% to the line-list in those cases.
-% \begin{macrocode}
-\def\lock@on{\futurelet\next\do@lockon}
-\def\do@lockon{%
- \ifx\next\lock@off
- \global\let\lock@off=\skip@lockoff
- \else
- \xright@appenditem{\the\absline@num}\to\actionlines@list
- \ifsublines@
- \xright@appenditem{-1005}\to\actions@list
- \ifcase\sub@lock
- \sub@lock=1
- \else
- \sub@lock=0
- \fi
- \else
- \xright@appenditem{-1003}\to\actions@list
- \ifcase\@lock
- \@lock=1
- \else
- \@lock=0
- \fi
- \fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\lock@off}
-% \begin{macro}{\do@lockoff}
-% \begin{macro}{\skip@lockoff}
-% "\lock@off" adds an entry to the action-code list
-% to turn line number locking off.
-% \begin{macrocode}
-\def\do@lockoff{%
- \xright@appenditem{\the\absline@num}\to\actionlines@list
- \ifsublines@
- \xright@appenditem{-1006}\to\actions@list
- \ifnum\sub@lock=2
- \sub@lock=3
- \else
- \sub@lock=0
- \fi
- \else
- \xright@appenditem{-1004}\to\actions@list
- \ifnum\@lock=2
- \@lock=3
- \else
- \@lock=0
- \fi
- \fi}
-\def\skip@lockoff{\global\let\lock@off=\do@lockoff}
-\global\let\lock@off=\do@lockoff
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\@ref}
-% \begin{macro}{\insert@count}
-% "\@ref"
-% marks the start of a passage, for creation of a footnote reference.
-% It takes two arguments:
-% \begin{itemize}\addtolength{\itemsep}{-1ex}
-% \item "#1", the number of entries to add to "\insertlines@list"
-% for this reference. \SpecialMainIndex{\insert@count}
-% This value, here and within "\text",
-% which computes it and writes it to the line-list file,
-% will be stored in the "\insert@count" counter.
-% \begin{macrocode}
-\newcount\insert@count
-% \end{macrocode}
-%
-% \item "#2", a sequence of other line-list-file commands, executed to
-% determine the ending line-number. (This may also include other
-% "\@ref" commands, corresponding to uses of "\text"
-% within the first argument of another instance of "\text".)
-% \end{itemize}
-%
-% \begin{macro}{\dummy@ref}
-% When nesting of "\@ref" commands does occur, it's necessary to
-% temporarily redefine "\@ref" within "\@ref", so that we're only
-% doing one of these at a time.
-% \begin{macrocode}
-\def\dummy@ref#1#2{#2}
-% \end{macrocode}
-% \end{macro}
-%
-% The first thing "\@ref" itself does is to add the specified number
-% of items to the "\insertlines@list" list.
-% \begin{macrocode}
-\def\@ref#1#2{%
- \global\insert@count=#1
- \loop\ifnum\insert@count>0
- \xright@appenditem{\the\absline@num}\to\insertlines@list
- \global\advance\insert@count by -1
- \repeat
-% \end{macrocode}
-%
-% Next, process the second argument to determine the page
-% and line numbers for the end of this lemma.
-% We temporarily equate "\@ref" to a different macro that just executes
-% its argument, so that nested "\@ref" commands are just skipped
-% this time. Some other macros need to be temporarily redefined to
-% suppress their action.
-% \begin{macrocode}
- \begingroup
- \let\@ref=\dummy@ref
- \let\page@action=\relax
- \let\sub@action=\relax
- \let\set@line@action=\relax
- \let\@lab=\relax
- #2
- \global\endpage@num=\page@num
- \global\endline@num=\line@num
- \global\endsubline@num=\subline@num
- \endgroup
-% \end{macrocode}
-%
-% Now store all the information about the location of the lemma's
-% start and end in "\line@list".
-% \begin{macrocode}
- \xright@appenditem%
- {\the\page@num|\the\line@num|%
- \ifsublines@ \the\subline@num \else 0\fi|%
- \the\endpage@num|\the\endline@num|%
- \ifsublines@ \the\endsubline@num \else 0\fi}\to\line@list
-% \end{macrocode}
-%
-% Finally, execute the second argument of "\@ref" again,
-% to perform for real all the commands within it.
-% \begin{macrocode}
- #2}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Writing to the line-list file}
-%
-% We've now defined all the counters, lists, and commands involved in
-% reading the line-list file at the start of a section. Now we'll
-% cover the commands that "EDMAC" uses within the text of a
-% section to write commands out to the line-list.
-%
-% \begin{macro}{\linenum@out}
-% The file will be opened on output stream "\linenum@out".
-% \begin{macrocode}
-\newwrite\linenum@out
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\iffirst@linenum@out@}
-% \begin{macro}{\first@linenum@out@true}
-% \begin{macro}{\first@linenum@out@false}
-% Once any file is opened on this stream, we keep it open forever, or
-% else switch to another file that we keep open. The reason is that
-% we want the output routine to write the page number for every page
-% to this file; otherwise we'd have to write it at the start of
-% every line.
-% But it's not very easy for the output routine to tell whether an
-% output stream is open or not. There's no way to test the status of
-% a particular output stream directly, and
-% the asynchronous nature of output routines makes the
-% status hard to determine by other means.
-%
-% We can manage pretty well by means of the "\iffirst@linenum@out@"
-% flag; its inelegant name suggests the nature of the problem that
-% made its creation necessary. It's set
-% to be "true" before any "\linenum@out" file is opened. When such a file
-% is opened for the first time, it's done using "\immediate", so that
-% it will at once be safe for the output routine to write to it; we then
-% set this flag to "false".
-% \begin{macrocode}
-\newif\iffirst@linenum@out@
-\first@linenum@out@true
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\line@list@stuff}
-% The "\line@list@stuff" macro, which
-% is called by "\beginnumbering", performs
-% all the line-list operations needed at the start of a section.
-% Its argument is the name of the line-list file.
-% \begin{macrocode}
-\def\line@list@stuff#1{%
-% \end{macrocode}
-%
-% First, use the commands of the previous section to interpret the
-% line-list file from the last run.
-% \begin{macrocode}
- \read@linelist{#1}%
-% \end{macrocode}
-%
-% Now close the current output line-list file, if any, and open a new one.
-% The first time we open a line-list file for output, we do it using
-% "\immediate", and clear the "\iffirst@linenum@out@" flag.
-% \begin{macrocode}
- \iffirst@linenum@out@
- \immediate\closeout\linenum@out
- \global\first@linenum@out@false
- \immediate\openout\linenum@out=#1
- \else
-% \end{macrocode}
-% If we get here, then this is
-% not the first line-list we've seen, so we
-% don't open or close the files immediately. We also need to insert
-% a "\@page" command, since this might begin in the middle of
-% a page.
-% \begin{macrocode}
- \closeout\linenum@out
- \openout\linenum@out=#1
- \page@start
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\new@line}
-% The "\new@line" macro sends the "\@l" command to the line-list
-% file, to mark the start of a new text line.
-% \begin{macrocode}
-\def\new@line{\write\linenum@out{\string\@l}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flag@start}
-% \begin{macro}{\flag@end}
-% We enclose a lemma marked by "\text" in
-% "\flag@start" and "\flag@end": these send the "\@ref"
-% command to the line-list file. "\text" is responsible for
-% setting the value of "\insert@count" appropriately; it
-% actually gets done by the various footnote macros.
-% \begin{macrocode}
-\def\flag@start{%
- \edef\next{\write\linenum@out{%
- \string\@ref[\the\insert@count][}}%
- \next}
-\def\flag@end{\write\linenum@out{]}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\page@start}
-% "\page@start" writes a command to the line-list
-% file noting the current page number.
-% When used within an output routine, this should be called so as to place
-% its "\write" within the box that gets shipped out, and as close to
-% the top of that box as possible.
-% \begin{macrocode}
-\def\page@start{%
- \iffirst@linenum@out@ \else
- \write\linenum@out{\string\@page[\the\pageno]}%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\startsub}
-% \begin{macro}{\endsub}
-% "\startsub" and "\endsub"
-% turn sub-lineation on and off, by writing
-% appropriate instructions to the line-list file. When
-% sub-lineation is in effect, the line number counter is frozen and
-% the sub-line counter advances instead. If one of these commands
-% appears in the middle of a line, it doesn't take effect until the
-% next line; in other words, a line is counted as a line or
-% sub-line depending on what it started out as, even if that
-% changes in the middle.
-%
-% We tinker with "\lastskip" because a command of either sort
-% really needs to be attached to the last word preceding the change, not
-% the first word that follows the change. This is because sub-lineation
-% will often turn on and off in mid-line---stage directions, for example,
-% often are mixed with dialogue in that way---and when a line is mixed
-% we want to label it using the system that was in effect at its start.
-% But when sub-lineation begins at the very start of a line we have a
-% problem, if we don't put in this code.
-% \begin{macrocode}
-\def\startsub{\dimen0\lastskip
- \ifdim\dimen0>0pt \unskip \fi
- \write\linenum@out{\string\sub@on}%
- \ifdim\dimen0>0pt \hskip\dimen0 \fi}
-\def\endsub{\dimen0\lastskip
- \ifdim\dimen0>0pt \unskip \fi
- \write\linenum@out{\string\sub@off}%
- \ifdim\dimen0>0pt \hskip\dimen0 \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\advanceline}
-% You can use "\advanceline"
-% in running text to advance the current visible
-% line-number by a specified value, positive or negative.
-% \begin{macrocode}
-\def\advanceline#1{\write\linenum@out{\string\@adv[#1]}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\setline}
-% You can use "\setline"
-% in running text to set the current visible
-% line-number to a specified positive value.
-% \begin{macrocode}
-\def\setline#1{%
- \ifnum#1<0
- \edmac@warning{Bad setline argument.}%
- \else
- \write\linenum@out{\string\@set[#1]}%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\startlock}
-% \begin{macro}{\endlock}
-% You can use "\startlock" or "\endlock"
-% in running text to start or end line number locking at
-% the current line. They decide whether line numbers or sub-line numbers
-% are affected, depending on the current state of the sub-lineation flags.
-% \begin{macrocode}
-\def\startlock{\write\linenum@out{\string\lock@on}}
-\def\endlock{\write\linenum@out{\string\lock@off}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \section{Marking text for notes}
-% \label{text}\relax
-%
-% The "\text" macro is used to create all footnotes and endnotes,
-% as well as to print the portion of the main text to which a given note
-% or notes is keyed. The idea is to have that lemma appear only once in
-% the ".tex" file: all instances of it in the main text and in the
-% notes are copied from that one appearance.
-%
-% "\text" requires two arguments. At any point within numbered
-% text, you use it by saying:
-% \begin{verbatim}
-% \text{#1}{#2}/
-% \end{verbatim}
-% where
-% \begin{itemize}\addtolength{\itemsep}{-1ex}
-% \item "#1" is the piece of the main text being glossed;
-% it gets added to the
-% main text, and is also used as a lemma for notes to it.
-%
-% \item "#2" is a series of subsidiary macros that generate
-% various kinds of notes. The "/" after "#2" {\em must\/} appear:
-% it marks the end of the macro. ({\em The \TeX{}book},
-% p.\,204, points out that when
-% additional text to be matched follows the arguments like this, spaces
-% following the macro are not skipped, which is very desirable since
-% this macro will never be used except within text. Having an
-% explicit terminator also helps keep things straight when nested
-% calls to "\text" are used.) Braces around
-% "#2" are optional.
-% \end{itemize}
-%
-% The "\text" macro may be used (somewhat) recursively; that
-% is, "\text" may be used within its own first argument. The
-% code would be much simpler without this feature, but nested notes
-% will commonly be necessary: it's quite likely that we'll have an
-% explanatory note for a long passage and notes on variants for
-% individual words within that passage. The situation we can't
-% handle is overlapping notes that aren't nested: for example, one
-% note covering lines 10--15, and another covering 12--18. You can
-% handle such cases by using the "\lemma" and "\linenum"
-% macros within "#2": they alter the copy of the lemma and the
-% line numbers that are passed to the notes, and hence allow you to
-% overcome any limitations of this system, albeit with extra
-% effort.
-%
-% The recursive operation of "\text" will fail if you try to use a copy
-% that is called something other than "\text". In order to handle
-% recursion, "\text" needs to redefine its own definition temporarily
-% at one point, and that doesn't work if the macro you are calling is
-% not actually named "\text". There's no problem as long as "\text"
-% is not invoked in the first argument. If you want to call "\text"
-% something else, it is best to create instead a macro that expands
-% to an invocation of "\text", rather than copying "\text" and giving
-% it a new name; otherwise you will need to add an appropriate
-% definition for your new macro to "\morenoexpands".
-%
-% Side effects of our line-numbering code make it impossible to use
-% the usual footnote macros directly within a paragraph whose lines are
-% numbered (see comments to
-% "\do@line", p.\,\pageref{doline}).
-% Instead, the appropriate note-generating command
-% is appended to the list macro "\inserts@list", and when "\pend"
-% completes the paragraph it inserts all the notes at the proper places.
-%
-% Note that we don't provide previous-note information, although it's
-% often wanted; your own macros must handle that. We can't do it
-% correctly without keeping track of what kind of notes have gone past:
-% it's not just a matter of remembering the line numbers associated with
-% the previous invocation of "\text", because that might have been for
-% a different kind of note. It is preferable for your footnote macros
-% to store and recall this kind of information if they need it.
-%
-% \label{parallel}An example where some ``memory'' of line numbers
-% might be required is where there are several variant readings
-% per line of text, and you do not wish the line number to be repeated
-% for each lemma in the notes. After the first occurrence of the line
-% number, you might want the symbol ``$\parallel$'' instead of further
-% occurrences, for instance. This can easily be done by a macro like
-% "\printlines", if it saves the last value of "\@nums" that {\em it\/}
-% saw, and then performs a simple conditional test to see whether to print
-% a number or a~``$\parallel$'' (see p.\,\pageref{multinotes} for an
-% example of how to do this).
-%
-% \subsection{{\tt \protect\bslash text} itself}
-%
-% \begin{macro}{\end@lemmas}
-% The various note-generating macros might want to request that
-% commands be executed not at once, but in close connection with the
-% start or end of the lemma. For example, footnote numbers in the text
-% should be connected to the end of the lemma; or, instead of a single
-% macro to create a note listing variants, you might want to use
-% several macros in series to create individual variants, which would
-% each add information to a private macro or token register, which in
-% turn would be formatted and output when all of "#2" for the lemma
-% has been read.
-%
-% To accomodate this, we provide a list macro
-% to which macros may add commands that should subsequently
-% be executed at the end of the lemma when that lemma is added
-% to the text of the paragraph. A macro should add its contribution to
-% "\end@lemmas" by using "\xleft@appenditem".
-% (Anything that needs to be done at
-% the {\em start\/} of the lemma may be handled using "\aftergroup", since
-% the commands specified within "\text"'s second argument are
-% executed within a group that ends just before the lemma is added to
-% the main text.)
-%
-% "\end@lemmas" is intended for the few things that need to be
-% associated with the end of the lemma, like footnote numbers. Such
-% numbers are not implemented in the current version, and indeed
-% no use is currently made of "\end@lemmas" or of the "\aftergroup"
-% trick. The general
-% approach would be to define a macro to be used within the second
-% argument of "\text" that would add the appropriate command to
-% "\end@lemmas".
-%
-% Commands that are added to this list should always take care
-% not to do anything that adds possible line-breaks to the output;
-% otherwise line numbering could be thrown off.
-% \begin{macrocode}
-\list@create{\end@lemmas}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\dummy@text}
-% We now need to define a number of macros that allow us to weed out
-% nested instances of "\text", and other problematic macros, from
-% our lemma. This is similar to what we did in reading the line-list
-% file using "\dummy@ref" and various redefinitions---and that's
-% because nested "\text" macros create nested "\@ref" entries
-% in the line-list file.
-%
-% Here's a macro that takes the same arguments as
-% "\text" but merely returns the first argument and ignores
-% the second.
-% \begin{macrocode}
-\long\def\dummy@text#1#2/{#1}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@gobble}
-% We're going to need another macro that takes one argument and ignores
-% it entirely. This one is identical to the \LaTeX{} macro of the same
-% name.
-% \begin{macrocode}
-\def\@gobble#1{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\no@expands}
-% \begin{macro}{\morenoexpands}
-% We need to turn off macro expansion for certain sorts of macros we're
-% likely to see within the lemma and within the notes.
-%
-% The first class is font-changing macros. We suppress expansion for
-% them by letting them become equal to zero.\footnote{Since ``control
-% sequences equivalent to characters are not expandable''---{\em The
-% \TeX book\/}, answer to Exercise 20.14.} This is done because we want to
-% pass into our notes the generic commands to change to roman or
-% whatever, and not their expansions that will ask for a particular style at
-% a specified size. The notes may well be in a smaller font, so the
-% command should be expanded later, when the note's environment is in
-% effect.
-%
-% A second sort to turn off includes a few of the accent macros.
-% Most are not a problem: an accent that's expanded to an "\accent"
-% command may be harder to read but it works just the same. The
-% ones that cause problems are: those that use alignments---\TeX\
-% seems to get confused about the difference between alignment
-% parameters and macro parameters; those that use temporary control
-% sequences; and those that look carefully at what the current font
-% is.
-%
-% (The "\copyright" macro defined in \PlainTeX\ has this sort of
-% problem as well, but isn't used enough to bother with. That macro,
-% and any other that causes trouble, will get by all right if you put
-% a "\noexpand" in front of it in your file---or a "\protect" if
-% you're using NFSS.)
-%
-% We also need to eliminate all "EDMAC" macros like "\label" and
-% "\setline" that write things to auxiliary files: that writing
-% should be done only once. And we make
-% "\text" itself, if it appears within its own
-% argument, do nothing but copy its first argument.
-%
-% Finally, we execute "\morenoexpands". The version of
-% "\morenoexpands" defined here does nothing; but you may define
-% a version of your own when you need to add more expansion
-% suppressions as needed with your macros. That makes it possible
-% to make such additions without needing to copy or modify the
-% standard "EDMAC" code. If you define your own
-% "\morenoexpands", you must be very careful about spaces: if the
-% macro adds any spaces to the text when it runs, extra space
-% will appear in the main text when "\text" is used.
-%
-% (A related problem, not addressed by these two macros,
-% is that of characters whose category code is changed by any
-% the macros used in the arguments to "\text". Since the
-% category codes are set when the arguments are scanned, macros
-% that depend on changing them will not work. We have most often
-% encountered this with characters that are made ``active'' within
-% text in some, but not all, of the languages used within the document.
-% One way around the problem, if it takes this form,
-% is to ensure that those characters are {\em always\/} active; within
-% languages that make no special use of them, their associated
-% control sequences should simply return the proper character.)
-% \begin{macrocode}
-\def\no@expands{\let\rm=0\let\it=0\let\sl=0\let\bf=0\let\tt=0%
- \let\b=0\let\c=0\let\d=0\let\t=0%
- \let\select@@lemmafont=0%
- \def\protect{\noexpand\protect\noexpand}%
- \let\startsub=\relax \let\endsub=\relax
- \let\startlock=\relax \let\endlock=\relax
- \let\label=\@gobble \let\pageref=\@gobble
- \let\lineref=\@gobble \let\sublineref=\@gobble
- \let\setline=\@gobble \let\advanceline=\@gobble
- \let\text=\dummy@text
- \morenoexpands}
-\let\morenoexpands=\relax
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\text}
-% Now we begin "\text" itself. The definition requires a "/" after
-% the arguments: this eliminates the possibility of problems about
-% knowing where "#2" ends. This also changes the handling of spaces
-% following an invocation of the macro: normally such spaces are
-% skipped, but in this case they're significant because "#2" is
-% a ``delimited parameter''. Since "\text" is always used in running
-% text, it seems more appropriate to pay attention to spaces than to
-% skip them.
-%
-% When executed, "\text" first ensures that we're in
-% horizontal mode.
-% \begin{macrocode}
-\long\def\text#1#2/{\leavevmode
-% \end{macrocode}
-%
-% \begin{macro}{\@tag}
-% Our normal lemma is just argument "#1"; but that argument could have
-% further invocations of "\text" within it. We get a copy of the
-% lemma without any "\text" macros within it by temporarily redefining
-% "\text" to just copy its first argument and ignore the other,
-% and then expand "#1" into "\@tag", our lemma.
-%
-% This is done within a group that starts here, in order to get the
-% original "\text" restored; within this group we've also turned
-% off the expansion of those control sequences commonly found within text
-% that can cause trouble for us.
-% \begin{macrocode}
- \begingroup
- \no@expands
- \xdef\@tag{#1}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@nums}
-% \label{nums}
-% Prepare more data for the benefit of note-generating macros: the line
-% references and font specifier for this lemma go to "\@nums".
-% \begin{macrocode}
- \set@line
-% \end{macrocode}
-% \end{macro}
-%
-% "\insert@count" will be altered by the note-generating macros:
-% it counts the number of deferred footnotes or other insertions
-% generated by this instance of "\text".
-% \begin{macrocode}
- \global\insert@count=0
-% \end{macrocode}
-%
-% Now process the note-generating macros in argument "#2"
-% (i.e., "\Afootnote", "\lemma", etc.). "\ignorespaces" is here to
-% skip over any spaces that might appear at the start of "#2";
-% otherwise they wind up in the main text. Footnote and other
-% macros that are used within "#2" should all end with
-% "\ignorespaces" as well, to skip any spaces between macros when
-% several are used in series.
-% \begin{macrocode}
- \ignorespaces #2\relax
-% \end{macrocode}
-%
-% Finally, we're ready to admit the first argument into the current
-% paragraph.
-%
-% It's important that we generate and output all the notes for this
-% chunk of text {\em before} putting the text into the paragraph: notes
-% that are referenced by line number should generally be tied to the
-% start of the passage they gloss, not the end. That should all be done
-% within the expansion of "#2" above, or in "\aftergroup"
-% commands within that expansion.
-% \begin{macrocode}
- \flag@start
- \endgroup
- #1%
-% \end{macrocode}
-%
-% Finally, we add any insertions that are
-% associated with the {\em end\/} of
-% the lemma. Footnotes that are identified by symbols rather than by
-% where the lemma begins in the main text need to be done here, and
-% not above.
-%
-% \begin{macrocode}
- \ifx\end@lemmas\empty \else
- \gl@p\end@lemmas\to\x@lemma
- \x@lemma
- \global\let\x@lemma=\relax
- \fi
- \flag@end}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\set@line}
-% The "\set@line" macro
-% is called by "\text" to put the line-reference field and
-% font specifier for the current block of text into "\@nums".
-%
-% One instance of "\text" may generate several notes, or it
-% may generate none---it's legitimate for argument "#2" to "\text" to
-% be empty. But "\flag@start" and "\flag@end" induce the generation of
-% a single entry in "\line@list" during the next run, and it's vital
-% to also remove one and only one "\line@list" entry here.
-% \begin{macrocode}
-\def\set@line{%
-% \end{macrocode}
-%
-% If no more lines are listed in "\line@list", something's
-% wrong---probably just some change in the input. We set all the numbers
-% to zeros, following an old publishing convention for numerical
-% references that haven't yet been resolved.
-% \begin{macrocode}
- \ifx\line@list\empty
- \global\noteschanged@true
- \xdef\@nums{000|000|000|000|000|000|\edfont@info}%
-% \end{macrocode}
-%
-% All's well; our reference is there.
-% \begin{macrocode}
- \else
- \gl@p\line@list\to\@tempb
- \xdef\@nums{\@tempb|\edfont@info}%
- \global\let\@tempb=\undefined
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\edfont@info}
-% The macro "\edfont@info" returns coded information about the
-% current font; the coding depends on the font selection scheme
-% in use. See section~\ref{fontcode} for more on font selection
-% schemes.
-%
-% \begin{macrocode}
-\ifx\selectfont\undefined % we're using Plain fonts
- \def\edfont@info{\the\fam}
-\else % we're using NFSS
- \def\edfont@info{\f@encoding/\f@family/\f@series/\f@shape}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Substitute lemma}
-%
-% \begin{macro}{\lemma}
-% The "\lemma" macro allows you to change the lemma
-% that's passed on to the notes.
-% \begin{macrocode}
-\def\lemma#1{\xdef\@tag{#1}\ignorespaces}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Substitute line numbers}
-%
-% \begin{macro}{\linenum}
-% \label{linenumdef}\relax
-% The "\linenum" macro can change any or all of
-% the page and line numbers that are
-% passed on to the notes.
-%
-% As argument "\linenum" takes a set of seven parameters
-% separated by vertical bars, in the format used internally for
-% "\@nums" (see p.\,\pageref{linenumbers}): the starting page,
-% line, and sub-line numbers, followed by the ending page, line, and
-% sub-line numbers, and then the font specifier for the lemma.
-% However, you can omit any parameters you don't want to change, and
-% you can omit a string of vertical bars at the end of the
-% argument. Hence "\linenum{18|4|0|18|7|1|0}" is an invocation
-% that changes all the parameters, but "\linenum{|3}" only
-% changes the starting line number, and leaves the rest unaltered.
-%
-% We use "\\" as an internal separator for the macro parameters.
-% \begin{macrocode}
-\def\linenum#1{%
- \xdef\@tempa{#1|||||||\noexpand\\\@nums}%
- \global\let\@nums=\empty
- \expandafter\line@set\@tempa|\\\ignorespaces}
-% \end{macrocode}
-%
-% \begin{macro}{\line@set}
-% "\linenum" calls "\line@set" to do the actual work; it
-% looks at the first number in the argument to "\linenum",
-% sets the corresponding value in "\@nums", and then calls
-% itself to process the next number in the "\linenum"
-% argument, if there are more numbers in "\@nums" to process.
-% \begin{macrocode}
-\def\line@set#1|#2\\#3|#4\\{%
- \gdef\@tempb{#1}%
- \ifx\@tempb\empty
- \@add{#3}%
- \else
- \@add{#1}%
- \fi
- \gdef\@tempb{#4}%
- \ifx\@tempb\empty\else
- \@add{|}\line@set#2\\#4\\%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@add}
-% "\line@set" uses "\@add" to tack numbers or vertical bars
-% onto the right hand end of "\@nums".
-% \begin{macrocode}
-\def\@add#1{\xdef\@nums{\@nums#1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \section{Paragraph decomposition and reassembly}
-% \label{paragraph}\relax
-%
-% In order to be able to count the lines of text and affix line
-% numbers, we add an extra stage of processing for each paragraph.
-% We send the paragraph into a box
-% register, rather than straight onto the vertical list, and when
-% the paragraph ends we
-% slice the paragraph into its component lines; to each line we
-% add any notes or line numbers, add a command to write to the
-% line-list, and then at last send the line to the vertical list.
-% This section contains all the code for this processing.
-%
-% \subsection{Boxes, counters, {\tt\protect\bslash pstart}
-% and {\tt\protect\bslash pend}}
-%
-% \begin{macro}{\raw@text}
-% \begin{macro}{\ifnumberedpar@}
-% \begin{macro}{\numberedpar@true}
-% \begin{macro}{\numberedpar@false}
-% \begin{macro}{\num@lines}
-% \begin{macro}{\one@line}
-% \begin{macro}{\par@line}
-% Here are numbers and flags that are used internally in the course
-% of the paragraph decomposition.
-%
-% When we first form the paragraph, it goes into a box register,
-% "\raw@text", instead of onto the current vertical list.
-% The "\ifnumberedpar@" flag will be "true" while a paragraph is
-% being processed in that way.
-% "\num@lines" will store the number of lines in the paragraph
-% when it's complete. When we chop it up into lines, each line
-% in turn goes into the
-% "\one@line" register, and "\par@line" will be the number
-% of that line within the paragraph.
-% \begin{macrocode}
-\newbox\raw@text
-\newif\ifnumberedpar@
-\newcount\num@lines
-\newbox\one@line
-\newcount\par@line
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\pstart}
-% "\pstart" starts the paragraph by
-% clearing the "\inserts@list" list and other
-% relevant variables, and then arranges for the
-% subsequent text to go into the
-% "\raw@text" box. "\pstart" needs to appear at the start of
-% every paragraph that's to be numbered; the "\autopar" command below
-% may be used to insert these commands automatically.
-%
-% Beware: everything that occurs between "\pstart" and "\pend"
-% is happening within a group; definitions must be global if you want
-% them to survive past the end of the paragraph.
-% \begin{macrocode}
-\def\pstart{\ifnumbering \else
- \errmessage{\string\pstart\space must be used
- within a numbered section}%
- \beginnumbering
- \fi
- \ifnumberedpar@
- \errmessage{\string\pstart\space encountered while another
- \string\pstart\space was in effect}%
- \pend
- \fi
- \list@clear{\inserts@list}%
- \global\let\next@insert=\empty
- \begingroup\normal@pars
- \global\setbox\raw@text=\vbox\bgroup
- \numberedpar@true}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\pend}
-% "\pend" must be used to end a numbered paragraph.
-%
-% \begin{macrocode}
-\def\pend{\ifnumbering \else
- \errmessage{\string\pend\space must be used
- within a numbered section}%
- \fi
- \ifnumberedpar@ \else
- \errmessage{\string\pend\space must follow a \string\pstart}%
- \fi
-% \end{macrocode}
-% We set all the usual interline penalties to zero and then immediately
-% call "\endgraf" to end the paragraph; this ensures that there'll
-% be no large interline penalties to prevent us from slicing the
-% paragraph into pieces. These penalties revert to the values
-% that you set when the group for the "\vbox" ends. Then we call
-% "\do@line" to slice a line off the top of the
-% paragraph, add a line number and footnotes, and restore it to the page;
-% we keep doing this until there aren't any more lines left.
-% \begin{macrocode}
- \brokenpenalty=0 \clubpenalty=0
- \displaywidowpenalty=0 \interlinepenalty=0 \predisplaypenalty=0
- \postdisplaypenalty=0 \widowpenalty=0
- \endgraf\global\num@lines=\prevgraf\egroup
- \global\par@line=0
- \loop\ifvbox\raw@text
- \do@line
- \repeat
-% \end{macrocode}
-% Deal with any leftover notes, and then end the group that was begun
-% in the "\pstart".
-% \begin{macrocode}
- \flush@notes
- \endgroup
- \ignorespaces}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\autopar}
-% In most cases it's only an annoyance to have to label the paragraphs
-% to be numbered with "\pstart" and "\pend". "\autopar" will
-% do that automatically, allowing you to start a paragraph with its
-% first word and no other preliminaries, and to end it with a blank line
-% or a "\par" command. The command should be issued within a
-% group, after "\beginnumbering" has been used to start the
-% numbering; all paragraphs within the group will be affected.
-%
-% A few situations can cause problems. One is a paragraph that begins with
-% a begin-group character or command: "\pstart" will not get invoked
-% until after such a group beginning is processed; as a result the
-% character that ends the group will be mistaken for the end of the
-% "\vbox" that "\pstart" creates, and the rest of the paragraph
-% will not be numbered. Such paragraphs need to be started explicitly
-% using "\indent", "\noindent", or "\leavevmode"---or "\pstart", since
-% you can still include your own "\pstart" and "\pend"
-% commands even with "\autopar" on.
-%
-% Prematurely ending the group within which "\autopar" is in
-% effect will cause a similar problem. You must either leave a
-% blank line or use "\par" to end the last paragraph before
-% you end the group.
-%
-% The functioning of this macro is more tricky than the usual
-% "\everypar": we don't want anything to go onto the vertical
-% list at all, so we have to end the paragraph, erase any evidence
-% that it ever existed, and start it again using "\pstart".
-% We remove the paragraph-indentation box using "\lastbox" and
-% save the width, and then skip backwards over the "\parskip"
-% that's been added for this paragraph. Then we start again with
-% "\pstart", restoring the indentation that we saved, and
-% locally change "\par" so that it'll do our "\pend" for us.
-% \begin{macrocode}
-\def\autopar{\ifnumbering \else
- \errmessage{\string\autopar\space must be used
- within a numbered section}%
- \beginnumbering
- \fi
- \everypar={\setbox0=\lastbox
- \endgraf \vskip-\parskip
- \pstart \noindent \kern\wd0
- \let\par=\pend}%
- \ignorespaces}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\normal@pars}
-% We also define a macro which we can rely on to turn off the
-% "\autopar" definitions at various important places, if they
-% are in force. We'll want to do this within footnotes, for
-% example.
-% \begin{macrocode}
-\def\normal@pars{\everypar={}\let\par\endgraf}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Processing one line}
-%
-% \begin{macro}{\do@line}
-% The "\do@line" macro is called by "\pend" to
-% do all the processing for a single line of text.
-% \begin{macrocode}
-\def\do@line{%
-% \end{macrocode}
-%
-% First, pull
-% one line off the top of "\raw@text", which contains the remaining
-% unprocessed lines of the paragraph. "\vbadness" must be cranked up to
-% suppress "Underfull vbox" errors from
-% "\vsplit"; "\splittopskip" will be inserted at the top of
-% "\one@line", so we zero it. (This skip will appear in the final
-% vertical list, just before every "\baselineskip".)
-% \begin{macrocode}
- {\vbadness=10000 \splittopskip=0pt
- \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
-% \end{macrocode}
-%
-% "\one@line" comes out of "\vsplit" as a "vbox";
-% we now convert it to an "hbox".
-%
-% This operation breaks if there's an insert connected to the
-% \label{doline} line. In that case, the content of the "vbox"
-% "\one@line" before this operation is not just an "hbox": it's
-% an "hbox" followed by an insert. After the "\unvbox", the
-% last thing on the vertical list is not the "hbox" but the
-% insert. The result is that our line heads prematurely onto the
-% vertical list---with incorrect interline spacing, because there's
-% still a level of boxing that should be undone---and "\one@line"
-% is the void box, because the last thing on the vertical list
-% wasn't a box. The subsequent code consequently prints a blank
-% line.
-%
-% All this is why insertions need to be kept out of the paragraph
-% until this point; our footnote macros add all insertions to list
-% macros, and the "\add@inserts" macro below puts them onto the
-% vertical list at the proper time.
-% \begin{macrocode}
- \unvbox\one@line \global\setbox\one@line=\lastbox
-% \end{macrocode}
-%
-% Calculate the line and page number for this line.
-% \begin{macrocode}
- \getline@num
-% \end{macrocode}
-%
-% Now we'll add the line to the vertical list, with a line
-% number attached if necessary.
-%
-% The "\hfil\hbox to \wd\one@line" is necessary to position a
-% hangindented line correctly: without it, "\one@line" gets
-% stretched out to "\hsize" in width and the indentation
-% disappears. This is because hanging indentation is done by
-% setting a nonzero ``shift'' value for the "hbox" that
-% contains the line within the "vbox", and that shift vanishes, like
-% the penalties, when we slice up the paragraph; one can examine
-% the "\ht" or "\wd" of a box within \TeX{}, but it provides no
-% way of examining the "\shift", though it would be a trivial
-% modification of the \TeX{} program to add that function.
-% ("\parshape"\label{parshape}
-% also works by setting a nonzero shift, but this fix isn't good
-% enough there, because the total width of the lines is also varied
-% in that case; our algorithm will push all the lines of text over
-% to the right margin.)
-%
-% We put the "\new@line" start-of-line marker in the output list at
-% this point too: putting it within the "\hbox" here ensures that
-% it comes before any of the text of the line in the vertical list,
-% but cannot be broken away from it at a page break.
-% \begin{macrocode}
-\hbox to \hsize{\affixline@num{%
- \hfil\hbox to \wd\one@line{\new@line\unhbox\one@line}}}%
-% \end{macrocode}
-%
-% Now we pull the footnotes and insertions for this line out of the
-% "\inserts@list" list macro and attach them.
-% \begin{macrocode}
- \add@inserts
-% \end{macrocode}
-%
-% Penalties get stripped off by this slicing process; the following
-% macro puts them back in as the last step.
-% \begin{macrocode}
- \add@penalties}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Line and page number computation}
-%
-% \begin{macro}{\getline@num}
-% The "\getline@num" macro
-% determines the page and line numbers for the line we're about to
-% send to the vertical list.
-% \begin{macrocode}
-\def\getline@num{%
- \global\advance\absline@num by 1
- \do@actions
- \do@ballast
- \ifsublines@
- \ifnum\sub@lock<2
- \global\advance\subline@num by 1
- \fi
- \else
- \ifnum\@lock<2
- \global\advance\line@num by 1
- \global\subline@num=0
- \fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\do@ballast}
-% \label{do@ballast}\relax
-% The real work in the macro above is done in "\do@actions", but
-% before we plunge into that, let's get "\do@ballast" out of the
-% way. This macro looks to see if there is an action to be
-% performed on the {\em next\/} line, and if it is going to be a
-% page break action, "\do@ballast" decreases the "\ballast@count"
-% counter
-% by the amount of "\ballast". This means, in practice, that when
-% "\add@penalties" assigns penalties at this point, \TeX\ will be
-% given extra encouragement to break the page here (see
-% p.\,\pageref{add@penalties}).
-%
-% \begin{macro}{\ballast}
-% \begin{macro}{\ballast@count}
-% First we set up the required counters; they are initially
-% set to zero, and will remain so unless you say
-% "\ballast="\meta{some figure} in your document.
-% \begin{macrocode}
-\newcount\ballast@count
-\newcount\ballast
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% And here is "\do@ballast" itself. It advances "\absline@num"
-% within the protection of a group to make its check for what
-% happens on the next line.
-% \begin{macrocode}
-\def\do@ballast{\global\ballast@count=0
- \begingroup
- \advance\absline@num by 1
- \ifnum\next@actionline=\absline@num
- \ifnum\next@action>-1001
- \global\advance\ballast@count by -\ballast
- \fi
- \fi
- \endgroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\do@actions}
-% \begin{macro}{\do@actions@next}
-%
-% The "\do@actions" macro
-% looks at the list of actions to take at particular absolute line
-% numbers, and does everything that's specified for the current line.
-%
-% It may call itself recursively, and to do this efficiently (using
-% \TeX's optimization for tail recursion), we define a control-sequence
-% called "\do@actions@next" that is always the last thing that
-% "\do@actions" does. If there could be more actions to process for
-% this line, "\do@actions@next" is set equal to "\do@actions";
-% otherwise it's just "\relax".
-%
-% \begin{macrocode}
-\def\do@actions{%
- \global\let\do@actions@next=\relax
- \ifnum\absline@num<\next@actionline\else
-% \end{macrocode}
-%
-% First, page number changes, which will generally be the most common
-% actions. If we're restarting lineation on each page, this is where it
-% happens.
-% \begin{macrocode}
- \ifnum\next@action>-1001
- \global\page@num=\next@action
- \ifbypage@
- \global\line@num=0 \global\subline@num=0
- \fi
-% \end{macrocode}
-%
-% Next, we handle
-% commands that change the line-number values. (We subtract $5001$ rather
-% than $5000$ here because the line number is going to be incremented
-% automatically in "\getline@num".)
-% \begin{macrocode}
- \else
- \ifnum\next@action<-4999
- \@tempcnta=-\next@action
- \advance\@tempcnta by -5001
- \ifsublines@
- \global\subline@num=\@tempcnta
- \else
- \global\line@num=\@tempcnta
- \fi
-% \end{macrocode}
-%
-% It's one of the fixed codes. We rescale the value in
-% "\@tempcnta" so that we can use a case statement.
-% \begin{macrocode}
- \else
- \@tempcnta=-\next@action
- \advance\@tempcnta by -1000
- \ifcase\@tempcnta
-% \end{macrocode}
-%
-% Commands that turn sub-lineation on and off.
-% \begin{macrocode}
- \or
- \global\sublines@true
- \or
- \global\sublines@false
-% \end{macrocode}
-%
-% Line locking. We ignore these indications when they don't appear
-% at the right times: a start-lock should appear only when locking
-% is entirely off, and an end-lock should only appear when locking is
-% in the ``middle''.
-% \begin{macrocode}
- \or
- \ifcase\@lock
- \global\@lock=1
- \else
- \global\@lock=0
- \fi
- \or
- \ifnum\@lock=2
- \global\@lock=3
- \else
- \global\@lock=0
- \fi
-% \end{macrocode}
-%
-% Sub-line locking. Same comments as for line locking.
-% \begin{macrocode}
- \or
- \ifcase\sub@lock
- \global\sub@lock=1
- \else
- \global\sub@lock=0
- \fi
- \or
- \ifnum\sub@lock=2
- \global\sub@lock=3
- \else
- \global\sub@lock=0
- \fi
-% \end{macrocode}
-%
-% If we get here, some unknown action code has been encountered.
-% \begin{macrocode}
- \else
- \edmac@warning{Bad action code,
- value \next@action.}%
- \fi
- \fi
- \fi
-% \end{macrocode}
-%
-% Now we get information about the next action off the list,
-% and then set "\add@inserts@next" so that we'll
-% call ourself recursively: the next action might also be for this
-% line.
-%
-% There's no warning if we find "\actionlines@list" empty,
-% since that will always happen near the end of the section.
-%
-% \begin{macrocode}
- \ifx\actionlines@list\empty
- \gdef\next@actionline{1000000}%
- \else
- \gl@p\actionlines@list\to\next@actionline
- \gl@p\actions@list\to\next@action
- \global\let\do@actions@next=\do@actions
- \fi
- \fi
-% \end{macrocode}
-%
-% Make the recursive call, if necessary.
-%
-% \begin{macrocode}
-\do@actions@next}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Line number printing}
-%
-% \begin{macro}{\affixline@num}
-% "\affixline@num" takes a single argument, a series of
-% commands for printing the line just split off by "\do@line"; it
-% puts that line back on the vertical list, and adds a line number if
-% necessary.
-%
-% To determine whether we need to affix a line number to this line,
-% we compute the following:
-% \begin{tabbing}
-% \quad $m$ \= \kill
-% $n$ \> $= \mbox{\it int\/} ( ( \mbox{\it linenum\/} -
-% \mbox{\it firstlinenum\/} ) /
-% \mbox{\it linenumincrement\/} )$ \\
-% $m$ \> $= \mbox{\it firstlinenum\/} +
-% ( n \times \mbox{\it linenumincrement\/})$
-% \end{tabbing}
-% (where {\it int\/} truncates a real number to an integer).
-% $m$ will be equal to {\it linenum\/} only
-% if we're to paste a number on here.
-% However, the formula breaks down for the first line to number (and any
-% before that), so we check that case separately: if "\line@num" $\le$
-% "\firstlinenum", we compare the two directly instead of making these
-% calculations.
-%
-% We compute, in the scratch counter "\@tempcnta", the number
-% of the next line that should be printed with a number ($m$ in the
-% above discussion), and move the current line number into the
-% counter "\@tempcntb" for comparison.
-%
-% First, the case when we're within a sub-line range.
-% \begin{macrocode}
-\def\affixline@num#1{%
- \ifsublines@
- \@tempcntb=\subline@num
- \ifnum\subline@num>\firstsublinenum
- \@tempcnta=\subline@num
- \advance\@tempcnta by-\firstsublinenum
- \divide\@tempcnta by\sublinenumincrement
- \multiply\@tempcnta by\sublinenumincrement
- \advance\@tempcnta by\firstsublinenum
- \else
- \@tempcnta=\firstsublinenum
- \fi
-% \end{macrocode}
-%
-% That takes care of computing the values for comparison, but if line
-% number locking is in effect we have to make a further check. If this
-% check fails, then we disable the line-number display by setting the
-% counters to arbitrary but unequal values.
-% \begin{macrocode}
- \ifcase\sub@lock
- \or
- \ifnum\sublock@disp=1
- \@tempcntb=0 \@tempcnta=1
- \fi
- \or
- \ifnum\sublock@disp=2 \else
- \@tempcntb=0 \@tempcnta=1
- \fi
- \or
- \ifnum\sublock@disp=0
- \@tempcntb=0 \@tempcnta=1
- \fi
- \fi
-% \end{macrocode}
-%
-% Now the line number case, which works the same way.
-% \begin{macrocode}
- \else
- \@tempcntb=\line@num
- \ifnum\line@num>\firstlinenum
- \@tempcnta=\line@num
- \advance\@tempcnta by-\firstlinenum
- \divide\@tempcnta by\linenumincrement
- \multiply\@tempcnta by\linenumincrement
- \advance\@tempcnta by\firstlinenum
- \else
- \@tempcnta=\firstlinenum
- \fi
-% \end{macrocode}
-%
-% A locking check for sub-lines, just like the version for line
-% numbers above.
-% \begin{macrocode}
- \ifcase\@lock
- \or
- \ifnum\lock@disp=1
- \@tempcntb=0 \@tempcnta=1
- \fi
- \or
- \ifnum\lock@disp=2 \else
- \@tempcntb=0 \@tempcnta=1
- \fi
- \or
- \ifnum\lock@disp=0
- \@tempcntb=0 \@tempcnta=1
- \fi
- \fi
- \fi
-% \end{macrocode}
-%
-% The following test is true if we need to print a line number.
-% \begin{macrocode}
- \ifnum\@tempcnta=\@tempcntb
-% \end{macrocode}
-%
-% If we got here,
-% we're going to print a line number; so now we need to
-% calculate a number that will tell us which side of the page will get
-% the line number. We start from "\line@margin", which asks for
-% one side always if it's less than $2$; and then if the side does
-% depend on the page number, we simply add the page number to this
-% side code---because the values of "\line@margin" have been devised so
-% that this produces a number that's even for left-margin numbers and
-% odd for right-margin numbers.
-% \begin{macrocode}
- \@tempcntb=\line@margin
- \ifnum\@tempcntb>1
- \advance\@tempcntb by\page@num
- \fi
-% \end{macrocode}
-%
-% Now print the line ("#1") with its page number.
-% \begin{macrocode}
- \ifodd\@tempcntb
- #1\rlap{{\rightlinenum}}%
- \else
- \llap{{\leftlinenum}}#1%
- \fi
- \else
-% \end{macrocode}
-%
-% If no line number is to be appended, we just print the line as is.
-% \begin{macrocode}
- #1%
- \fi
-% \end{macrocode}
-%
-% Now fix the lock counters, if necessary. A value of $1$ is advanced to
-% $2$; $3$ advances to $0$; other values are unchanged.
-% \begin{macrocode}
- \ifcase\@lock
- \or
- \global\@lock=2
- \or \or
- \global\@lock=0
- \fi
- \ifcase\sub@lock
- \or
- \global\sub@lock=2
- \or \or
- \global\sub@lock=0
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Add insertions to the vertical list}
-%
-% \begin{macro}{\inserts@list}
-% "\inserts@list" is the list macro that contains the inserts that
-% we save up for one paragraph.
-%
-% \begin{macrocode}
-\list@create{\inserts@list}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\add@inserts}
-% \begin{macro}{\add@inserts@next}
-% "\add@inserts"
-% is the penultimate macro used by "\do@line"; it takes
-% insertions saved in a list macro and sends them onto the vertical list.
-%
-% It may call itself recursively, and to do this efficiently (using
-% \TeX's optimization for tail recursion), we define a control-sequence
-% called "\add@inserts@next" that is always the last thing that
-% "\add@inserts" does. If there could be more inserts to process for
-% this line, "\add@inserts@next" is set equal to "\add@inserts";
-% otherwise it's just "\relax".
-%
-% \begin{macrocode}
-\def\add@inserts{%
- \global\let\add@inserts@next=\relax
-% \end{macrocode}
-%
-% If "\inserts@list" is empty, there aren't any more notes or insertions
-% for this paragraph, and we needn't waste our time.
-% \begin{macrocode}
- \ifx\inserts@list\empty \else
-% \end{macrocode}
-%
-% The "\next@insert" macro records the number of the line that
-% receives the next footnote or other insert; it's empty when we start
-% out, and just after we've affixed a note or insert.
-% \begin{macrocode}
- \ifx\next@insert\empty
- \ifx\insertlines@list\empty
- \global\noteschanged@true
- \gdef\next@insert{100000}%
- \else
- \gl@p\insertlines@list\to\next@insert
- \fi
- \fi
-% \end{macrocode}
-%
-% If the next insert's for this line, tack it on (and then erase the
-% contents of the insert macro, as it could be quite large).
-% In that case, we also set "\add@inserts@next" so that we'll
-% call ourself recursively: there might be another insert for this same
-% line.
-%
-% \begin{macrocode}
- \ifnum\next@insert=\absline@num
- \gl@p\inserts@list\to\@insert
- \@insert
- \global\let\@insert=\undefined
- \global\let\next@insert=\empty
- \global\let\add@inserts@next=\add@inserts
- \fi
-\fi
-% \end{macrocode}
-%
-% Make the recursive call, if necessary.
-%
-% \begin{macrocode}
-\add@inserts@next}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Penalties}
-%
-% \begin{macro}{\add@penalties}
-% "\add@penalties" is
-% the last macro used by "\do@line". It adds up the club,
-% widow, and interline penalties, and puts a single penalty
-% of the appropriate size
-% back into the paragraph; these penalties get
-% removed by the "\vsplit" operation. "\displaywidowpenalty" and
-% "\brokenpenalty" are not restored, since we have no easy way to
-% find out where we should insert them.
-%
-% \label{add@penalties}
-% In this code, "\num@lines" is the number of lines in the whole
-% paragraph, and "\par@line" is the line we're working on at the
-% moment. The counter "\@tempcnta" is used to calculate and
-% accumulate the penalty; it is initially set to the value of
-% "\ballast@count", which has been worked out in "\do@ballast"
-% above (p.\,\pageref{do@ballast}). Finally, the penalty is
-% checked to see that it doesn't go below $-10000$.
-% \begin{macrocode}
-\def\add@penalties{\@tempcnta=\ballast@count
- \ifnum\num@lines>1
- \global\advance\par@line by 1
- \ifnum\par@line=1
- \advance\@tempcnta by \clubpenalty
- \fi
- \@tempcntb=\par@line \advance\@tempcntb by 1
- \ifnum\@tempcntb=\num@lines
- \advance\@tempcnta by \widowpenalty
- \fi
- \ifnum\par@line<\num@lines
- \advance\@tempcnta by \interlinepenalty
- \fi
- \fi
- \ifnum\@tempcnta=0
- \relax
- \else
- \ifnum\@tempcnta>-10000
- \penalty\@tempcnta
- \else
- \penalty -10000
- \fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Printing leftover notes}
-%
-% \begin{macro}{\flush@notes}
-% The "\flush@notes"
-% macro is called after the entire paragraph has been sliced up
-% and sent on to the vertical list.
-% If the number of notes to this paragraph has increased since the last
-% run of \TeX, then there can be leftover notes that haven't yet been
-% printed. An appropriate error message will be printed elsewhere; but
-% it's best to go ahead and
-% print these notes somewhere, even if it's not in quite the
-% right place. What we do is dump them all out here, so that they should
-% be printed on the same page as the last line
-% of the paragraph. We can hope that's not
-% too far from the proper location, to which they'll move on the next
-% run.
-% \begin{macrocode}
-\def\flush@notes{%
- \@xloop
- \ifx\inserts@list\empty \else
- \gl@p\inserts@list\to\@insert
- \@insert
- \global\let\@insert=\undefined
- \repeat}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@xloop}
-% "\@xloop" is
-% a variant of the \PlainTeX\ "\loop" macro, useful when it's
-% hard to construct a positive test using the \TeX\ "\if" commands---as
-% in "\flush@notes" above. One says "\@xloop" "..." "\if" "..." "\else"
-% "..." "\repeat", and the action following "\else" is repeated as long
-% as the "\if" test fails. (This macro will work wherever the \PlainTeX\
-% "\loop" is used, too, so we could just call it "\loop";
-% but it seems preferable not to change the definitions of any of
-% the standard macros.)
-%
-% This variant of "\loop" was introduced by
-% Alois Kabelschacht\index{Kabelschacht, Alois} in
-% {\em TUGboat\/} {\bf 8} (1987), pp.\,184--5.
-%
-% \begin{macrocode}
-\def\@xloop#1\repeat{%
- \def\body{#1\expandafter\body\fi}%
- \body}
-% \end{macrocode}
-% \end{macro}
-%
-% \section{Footnotes}
-% \label{footnotes}\relax
-%
-% The footnote macros are adapted from those in \PlainTeX, but they
-% differ in these respects: the outer-level commands must add other
-% commands to a list macro rather than doing insertions immediately;
-% there are five separate levels of footnotes, not just one; and there
-% are options to reformat footnotes into paragraphs or into multiple
-% columns.
-%
-% \subsection{Fonts (using the Plain font selection scheme)}
-% \label{fontcode}\relax
-% Before getting into the details of formatting the notes, we set
-% up some font macros. It is the notes that present the greatest
-% challenge for our font-handling mechanism, because we need to be
-% able to take fragments of our main text and print them in
-% different forms: it is common to reduce the size,
-% for example, without otherwise changing the fonts used.
-%
-% "EDMAC" supports two different systems for
-% font handling: the ``Plain font selection scheme'', that is,
-% the original \PlainTeX\ system, with some minor
-% extensions needed for our purposes here; and the New Font Selection
-% Scheme (NFSS) of Frank Mittelbach\index{Mittelbach, Frank} and Rainer
-% Sch\"opf\index{Sch\"opf, Rainer}, as adapted for use with \PlainTeX\
-% by Wayne Sullivan\index{Sullivan, Wayne}. The NFSS is strongly
-% recommended, but the Plain font selection scheme will suffice for
-% simple applications.
-%
-% "EDMAC" will define different versions of the following
-% macros, depending on which scheme is used: "\edfont@info",
-% "\notefontsetup", "\notenumfont", "\numlabfont", and
-% "\select@lemmafont". If the Plain font selection
-% scheme is chosen, "EDMAC" will also define an "\eightpoint"
-% macro and load additional Computer Modern fonts for use with it.
-%
-% The choice of a font selection scheme is made implicitly. If NFSS
-% has been loaded, it is assumed that you want to use it; otherwise
-% "EDMAC" uses the Plain font selection scheme. If you're using NFSS,
-% load it and make any choices of customizations and standard settings
-% before you load "EDMAC".
-%
-% We know that NFSS has been loaded if the "\selectfont" macro is
-% present.
-%
-% \begin{macrocode}
-\ifx\selectfont\undefined
-% \end{macrocode}
-%
-% The rest of this section defines macros for use with the Plain
-% font selection scheme; see the next section for definitions used
-% with NFSS.
-%
-% What we want to provide with these macros is something a little bit
-% more general than \PlainTeX, without going the whole way to
-% implementing a full, planned font scheme.
-%
-% \begin{macro}{\notefontsetup}
-% The font setup defined in "\notefontsetup" defines the
-% fonts which will normally be used
-% for the text of the footnotes. Parts of the footnote, such
-% as the line number references and the lemma, are enclosed in
-% groups, with their own font macros, so a note in plain roman can
-% still have line numbers in bold, say, and the lemma in the same
-% family of font as in the main text.
-%
-% Since it is common to have notes in a font smaller than
-% the main text, we set up an "\eightpoint" macro which contains
-% definitions for smaller versions of "\rm", "\it",
-% "\bf", "\tt", and "\sl". It also contains
-% definitions of the appropriate "\fam" for each of these
-% styles, as well as a smaller "\strutbox" and a setting of
-% the "\baselineskip".
-%
-% If you want to change the size or style of the standard footnote
-% font, it is important that your macro define at least these
-% items:
-% \begin{itemize}\addtolength{\itemsep}{-1ex}
-% \item fonts
-% \item "\fam"(s)
-% \item "\strutbox"
-% \item "\baselineskip"
-% \end{itemize}
-% For example, like \PlainTeX\ itself, "EDMAC" uses the height of a
-% "\strutbox" in a few crucial places, such as the crop marks,
-% the alignment of the top line of footnotes, etc. (Page
-% \pageref{magic} explains the reasons why this is important in one
-% instance.) If you change the size of your fonts, but don't
-% change the size of the "\strutbox" too, then there will be
-% various discrepancies in the spacing. The same holds for the
-% "\baselineskip", and the other macros mentioned here.
-%
-% The size of a "\strutbox" for the standard ten-point fonts
-% is already set by \PlainTeX, as are the other quantities. This
-% takes care of the "\headlinefont", since this is initially set to ten-point
-% "\rm". But once again, if you change the font of
-% the headline, be sure to add appropriate definitions of
-% "\baselineskip" and "\strutbox" too.
-%
-% The first thing, then, is to load some font metric information
-% for the small fonts that \PlainTeX\ doesn't load (cf.\ {\em The
-% \TeX book}, pp.\,413--415). (We load eight-point fonts where we
-% should load six-point ones, because the normal \TeX\ distributions
-% don't have "cmtt6" etc. If you have them, you may want to create
-% your own "\eightpoint" with proper definitions.)
-% \begin{macrocode}
- \font\eightrm=cmr8 \font\eighti=cmmi8 \skewchar\eighti='177
- \font\eightsy=cmsy8 \skewchar\eightsy='60 \font\eightbf=cmbx8
- \font\eighttt=cmtt8 \hyphenchar\eighttt=-1 % inhibit hyphenation
- \font\eightsl=cmsl8 \font\eightit=cmti8
- \font\sixrm=cmr8 \font\sixi=cmmi8 \skewchar\sixi='177
- \font\sixsy=cmsy8 \skewchar\sixsy='60 \font\sixbf=cmbx8
- \font\sixtt=cmtt8 \hyphenchar\sixtt=-1 % inhibit hyphenation
- \font\sixsl=cmsl8 \font\sixit=cmti8
-% \end{macrocode}
-%
-% \begin{macro}{\eightpoint}
-% \label{eightpoint}\relax
-% With that out of the way, we can now define an "\eightpoint"
-% macro that is taken almost directly from p.\,415 of {\em The \TeX
-% book\/} (can you spot the differences?).
-% \begin{macrocode}
- \def\eightpoint{\def\rm{\fam0\eightrm}%
- \textfont0=\eightrm \scriptfont0=\sixrm
- \scriptscriptfont0=\fiverm
- \textfont1=\eighti \scriptfont1=\sixi
- \scriptscriptfont1=\fivei
- \textfont2=\eightsy \scriptfont2=\sixsy
- \scriptscriptfont2=\fivesy
- \textfont3=\tenex \scriptfont3=\tenex
- \scriptscriptfont3=\tenex
- \def\it{\fam\itfam\eightit}\textfont\itfam=\eightit
- \def\sl{\fam\slfam\eightsl}\textfont\slfam=\eightsl
- \def\bf{\fam\bffam\eightbf}\textfont\bffam=\eightbf
- \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf
- \def\tt{\fam\ttfam\eighttt}\textfont\ttfam=\eighttt
- \normalbaselineskip=9pt
- \setbox\strutbox=\hbox{\vrule height7pt depth2pt width0pt}%
- \normalbaselines\rm}
-% \end{macrocode}
-% And finally, we set "\notefontsetup" to be the new font setup
-% macro:
-% \begin{macrocode}
- \let\notefontsetup=\eightpoint
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% With the above macros, remember to use "\eightpoint" (alias
-% "\notefontsetup") inside a group. If you want to use it
-% outside a group, you will need to define a "\tenpoint" macro
-% to set all these definitions back to the standard ten-point settings of
-% \PlainTeX.
-%
-% \begin{macro}{\notenumfont}
-% The macro controlling the font for line numbers
-% within notes, "\notenumfont", is
-% more simple. It really is just a font call.
-% \begin{macrocode}
- \let\notenumfont=\sevenrm
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\select@lemmafont}
-% \label{selectlemmafont}\relax
-% "\select@lemmafont" is provided to set the right font for
-% the lemma in a note. This macro extracts the font-family number
-% from the line and page number cluster, and issues the associated
-% font-changing command, so that the lemma is printed in its
-% original font.
-% \begin{macrocode}
- \def\select@lemmafont#1|#2|#3|#4|#5|#6|#7|{%
- \ifcase#7
- \rm \or \rm \or \rm \or \rm % families 0--3
- \or \it \or \sl \or \bf \or \tt % families 4--7
- \else \rm
- \fi}
-% \end{macrocode}
-% \end{macro}
-% Note that this is a departure from the normal behavior of
-% \PlainTeX\ regarding font selection.
-% As Donald Knuth remarks ({\em The
-% \TeX book}, p.\,154), the "\fam" value is usually irrelevant
-% when \TeX\ is typesetting text in horizontal mode; "\fam"
-% only matters in math mode. But here we are using the
-% "\fam" value as a convenient way to select a font group. If
-% you are editing a text in some other font, say Cyrillic, be sure
-% to assign it a font "\fam", and add that to the list here in
-% "\select@lemmafont" (see the example given on p.\,\pageref{fam-fiddle}
-% below for using a Sanskrit font with "EDMAC").
-% The ideal in this situation would be to be
-% able to test for such parameters such as font series, style, and
-% size. Exactly those
-% capabilities are provided in the New Font Selection Scheme
-% written by Frank Mittelbach\index{Mittelbach, Frank} and Rainer
-% Sch\"opf,\index{Sch\"opf, Rainer}
-% and this is one place in "EDMAC" where
-% such a system can be used to good effect (see the discussion
-% above, page \pageref{edmacnfss}, and the following section).
-%
-% \subsection{Fonts: using the New Font Selection Scheme}
-%
-% These are the font macros used with NFSS. They will be activated if
-% the NFSS macros have been loaded as described above
-% (p.\,\pageref{ed-nfss}).
-% \begin{macrocode}
-\else
-% \end{macrocode}
-%
-% \begin{macro}{\notefontsetup}
-% The font setup defined in "\notefontsetup" defines the standard
-% fonts for the text of the footnotes. Parts of the footnote, such
-% as the line number references and the lemma, are enclosed in
-% groups, with their own font macros, so a note in plain roman can
-% still have line numbers in bold, say, and the lemma in the same
-% font encoding, family, series, and shape
-% of font as in the main text. Typically this definition should
-% specify only a size. It should always end with "\selectfont" or
-% with a command like "\rm" that does a "\selectfont".
-%
-% \begin{macrocode}
- \def\notefontsetup{\fontsize{8}{9pt}\selectfont}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\notenumfont}
-% The line numbers will be printed using the font selected by
-% executing "\notenumfont".
-% \begin{macrocode}
- \def\notenumfont{\fontsize{7}{8pt}\rm}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\select@lemmafont}
-% \begin{macro}{\select@@lemmafont}
-% "\select@lemmafont" is provided to set the right font for
-% the lemma in a note. This macro extracts the font specifier
-% from the line and page number cluster, and issues the associated
-% font-changing command, so that the lemma is printed in its
-% original font.
-% \begin{macrocode}
- \def\select@lemmafont#1|#2|#3|#4|#5|#6|#7|{\select@@lemmafont#7|}
- \def\select@@lemmafont#1/#2/#3/#4|%
- {\fontencoding{#1}\fontfamily{#2}\fontseries{#3}\fontshape{#4}%
- \selectfont}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% This is the end of the conditional section for font macro definition.
-% \begin{macrocode}
-\fi
-% \end{macrocode}
-%
-% \subsection{Outer-level footnote commands}
-% \begin{macro}{\Afootnote}
-% The outer-level footnote commands will look familiar: they're
-% just called "\Afootnote", "\Bfootnote", etc., instead of
-% plain "\footnote". What they do, however, is quite different,
-% since they have to operate in conjunction with "\text" when
-% numbering is in effect.
-%
-% If we're within a line-numbered paragraph, then, we tack this note onto
-% the "\inserts@list" list, and increment the deferred-page-bottom-note
-% counter.
-% \begin{macrocode}
-\def\Afootnote#1{%
- \ifnumberedpar@
- \xright@appenditem{\noexpand\vAfootnote{A}%
- {{\@nums}{\@tag}{#1}}}\to\inserts@list
- \global\advance\insert@count by 1
-% \end{macrocode}
-%
-% Within free text, there's no need to put off making the insertion
-% for this note. No line numbers are available, so this isn't generally
-% that useful; but you might want to use it to get around some
-% limitation of "EDMAC".
-% \begin{macrocode}
- \else
- \vAfootnote{A}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi\ignorespaces}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Bfootnote}
-% \begin{macro}{\Cfootnote}
-% \begin{macro}{\Dfootnote}
-% \begin{macro}{\Efootnote}
-% We need similar commands for the other footnote series.
-% \begin{macrocode}
-\def\Bfootnote#1{%
- \ifnumberedpar@
- \xright@appenditem{\noexpand\vBfootnote{B}%
- {{\@nums}{\@tag}{#1}}}\to\inserts@list
- \global\advance\insert@count by 1
- \else
- \vBfootnote{B}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Cfootnote#1{%
- \ifnumberedpar@
- \xright@appenditem{\noexpand\vCfootnote{C}%
- {{\@nums}{\@tag}{#1}}}\to\inserts@list
- \global\advance\insert@count by 1
- \else
- \vCfootnote{C}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Dfootnote#1{%
- \ifnumberedpar@
- \xright@appenditem{\noexpand\vDfootnote{D}%
- {{\@nums}{\@tag}{#1}}}\to\inserts@list
- \global\advance\insert@count by 1
- \else
- \vDfootnote{D}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Efootnote#1{%
- \ifnumberedpar@
- \xright@appenditem{\noexpand\vEfootnote{E}%
- {{\@nums}{\@tag}{#1}}}\to\inserts@list
- \global\advance\insert@count by 1
- \else
- \vEfootnote{E}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi\ignorespaces}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Normal footnote formatting}
-%
-% The processing of each note is done
-% by four principal macros: the "vfootnote" macro takes the text
-% of the footnote and does the "\insert"; it calls on the
-% "footfmt" macro to select the right fonts, print the line
-% number and lemma, and do any other formatting needed for that individual
-% note. Within the output routine, the two other macros, "footstart"
-% and "footgroup", are called; the first prints extra vertical
-% space and a footnote rule, if desired; the second does any reformatting
-% of the whole set of footnotes in this series for this page---such
-% as paragraphing or division into columns---and then sends them to the
-% page.
-%
-% These four macros, and the other macros and parameters shown
-% here, are distinguished by the ``series letter''
-% that indicates which set of footnotes
-% we're dealing with---"A", "B", "C", "D", or "E".
-% The series letter always precedes the string "foot" in macro
-% and parameter names. Hence, for the "A" series, the four macros
-% are called "\vAfootnote", "\Afootfmt", "\Afootstart",
-% and "\Afootgroup".
-%
-% \begin{macro}{\normalvfootnote}
-% We now begin a series of commands that do ``normal'' footnote
-% formatting: a format much like that implemented
-% in \PlainTeX{}, in which each footnote
-% is a separate paragraph.
-%
-% "\normalvfootnote" takes the series letter as "#1",
-% and the entire text of the footnote is "#2". It does the
-% "\insert" for this note, calling on the "footfmt" macro for
-% this note series to format the text of the note.
-% \begin{macrocode}
-\def\normalvfootnote#1#2{\insert\csname #1footins\endcsname\bgroup
- \notefontsetup
- \interlinepenalty\csname inter#1footnotelinepenalty\endcsname
- \splittopskip\ht\strutbox
- \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
- \leftskip\z@skip \rightskip\z@skip
- \spaceskip\z@skip \xspaceskip\z@skip
- \csname #1footfmt\endcsname #2\egroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\normalfootfmt}
-% \label{normalfootfmt}\relax
-% "\normalfootfmt" is a ``normal'' macro
-% to take the footnote line and page
-% number information (see p.\,\pageref{linenumbers}), and the
-% desired text, and output what's to be printed.
-% Argument "#1" contains the line and page number information
-% and lemma font specifier;
-% "#2" is the lemma;
-% "#3" is the note's text. This version is very
-% rudimentary---it uses "\printlines"
-% to print just the range of line numbers,
-% followed by a square bracket, the lemma, and the note text;
-% it's intended to be copied and modified as necessary.
-%
-% "\par" should always be redefined to "\endgraf" within
-% the format macro (this is what "\normal@pars" does),
-% to override any tricky stuff which might be done in the main text
-% to get the lines numbered automatically (as set up by
-% "\autopar", for example).
-% \begin{macrocode}
-\def\normalfootfmt#1#2#3{%
- \normal@pars
- \parindent=0pt \parfillskip=0pt plus 1fil
- {\notenumfont\printlines#1|}\strut\enspace
- {\select@lemmafont#1|#2}\rbracket\enskip#3\strut\par}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\endashchar}
-% \begin{macro}{\fullstop}
-% \begin{macro}{\rbracket}
-% The fonts that are used for printing notes might not have the
-% character mapping we expect: for example, the Computer Modern font
-% that contains old-style numerals does not contain an en-dash or
-% square brackets, and its period and comma are in odd locations.
-% To allow use of the standard footnote macros with such fonts, we use
-% the following macros for certain characters.
-%
-% The "\endashchar" macro is simply an en-dash from a
-% "\rm" font that is immune to changes in the surrounding
-% font. The same goes for the full stop. These two are used in
-% "\printlines". The right bracket macro is the same again;
-% it crops up in "\normalfootfmt" and the other footnote
-% macros for controlling the format of footnotes.
-% \begin{macrocode}
-\def\endashchar{{\rm--}}
-\def\fullstop{{\rm.}}
-\def\rbracket{{\rm\thinspace]}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\printlines}
-% The "\printlines" macro prints the line
-% numbers for a note---which, in the
-% general case, is a rather complicated task.
-% The seven parameters of the
-% argument are the line numbers as stored in "\@nums", in the
-% form described on page \pageref{linenumbers}: the starting
-% page, line, and sub-line numbers, followed by the ending page,
-% line, and sub-line numbers, and then the font specifier for
-% the lemma.
-%
-% \begin{macro}{\@pnum}
-% \begin{macro}{\@ssub}
-% \begin{macro}{\@elin}
-% \begin{macro}{\@esl}
-% \begin{macro}{\@dash}
-% To simplify the logic, we use a lot of counters to tell us which
-% numbers need to get printed (using $1$ for yes, $0$ for no, so
-% that "\ifodd" tests for ``yes''). The counter assignments are:
-% \begin{itemize}\addtolength{\itemsep}{-1ex}
-% \item "\@pnum" for page numbers;
-% \item "\@ssub" for starting sub-line;
-% \item "\@elin" for ending line;
-% \item "\@esl" for ending sub-line; and
-% \item "\@dash" for the dash between the starting and ending groups.
-% \end{itemize}
-% There's no counter for the line number because it's always printed.
-% \begin{macrocode}
-\newcount\@pnum \newcount\@ssub \newcount\@elin
-\newcount\@esl \newcount\@dash
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% First of all, we print the page numbers only if\/: 1)~we're doing
-% the lineation by page, and 2)~the ending page number is different
-% from the starting page number.\label{printlines}
-% \begin{macrocode}
-\def\printlines#1|#2|#3|#4|#5|#6|#7|{\begingroup
- \@pnum=0 \@dash=0
- \ifbypage@
- \ifnum#4=#1 \else
- \@pnum=1
- \@dash=1
- \fi
- \fi
-% \end{macrocode}
-%
-% We print the ending line number if\/: 1)~we're printing the ending
-% page number, or 2)~it's different from the starting line number.
-% \begin{macrocode}
- \@elin=\@pnum
- \ifnum#2=#5 \else
- \@elin=1
- \@dash=1
- \fi
-% \end{macrocode}
-%
-% We print the starting sub-line if it's nonzero.
-% \begin{macrocode}
- \@ssub=0
- \ifnum#3=0 \else
- \@ssub=1
- \fi
-% \end{macrocode}
-%
-% We print the ending sub-line if it's nonzero and: 1)~it's different
-% from the starting sub-line number, or 2)~the ending line number is
-% being printed.
-% \begin{macrocode}
- \@esl=0
- \ifnum#6=0 \else
- \ifnum#6=#3
- \@esl=\@elin
- \else
- \@esl=1
- \@dash=1
- \fi
- \fi
-% \end{macrocode}
-%
-% Now we're ready to print it all, based on our counter values. The
-% only subtlety left here is when to print a period between
-% numbers. But the only instance in which this is tricky is for the
-% ending sub-line number: it could be coming after the starting
-% sub-line number (in which case we want only the dash) or after an
-% ending line number (in which case we need to insert a period).
-% \begin{macrocode}
- \ifodd\@pnum #1\fullstop\fi
- #2%
- \ifodd\@ssub \fullstop #3\fi
- \ifodd\@dash \endashchar\fi
- \ifodd\@pnum #4\fullstop\fi
- \ifodd\@elin #5\fi
- \ifodd\@esl \ifodd\@elin\fullstop\fi #6\fi
-\endgroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\normalfootstart}
-% \label{normalvalues}\relax
-% "\normalfootstart"
-% is a standard footnote-starting macro, called in the output
-% routine whenever there are footnotes of this series to be
-% printed: it skips a bit and then draws a rule.
-%
-% Any "footstart" macro must put onto the page something that
-% takes up space exactly equal to the "\skip\footins" value for
-% the associated series of notes. \TeX\ makes page computations based
-% on that "\skip" value, and the output pages will suffer from
-% spacing problems if what you add takes up a different amount of
-% space.
-%
-% The "\leftskip" and "\rightskip" values
-% are both zeroed here.\label{footskips}
-% Similarly, these skips are cancelled in the "vfootnote" macros
-% for the various types of notes. Strictly speaking,
-% this is necessary only
-% if you are using paragraphed footnotes, but we have put it here
-% and in the other "vfootnote" macros too so that the behavior of
-% "EDMAC" in this respect is general across all footnote types
-% (you can change this). What this means is that any "\leftskip"
-% and "\rightskip" you specify applies to the main text, but not
-% the footnotes. The footnotes continue to be of width "\hsize".
-% \begin{macrocode}
-\def\normalfootstart#1{%
- \vskip\skip\csname #1footins\endcsname
- \leftskip0pt \rightskip0pt
- \csname #1footnoterule\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\normalfootnoterule}
-% "\normalfootnoterule" is
-% a standard footnote-rule macro, for use by a "footstart"
-% macro: just the same as the \PlainTeX\ footnote rule.
-% \begin{macrocode}
-\let\normalfootnoterule=\footnoterule
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\normalfootgroup}
-% "\normalfootgroup" is
-% a standard footnote-grouping macro: it sends the
-% contents of the footnote-insert box to the output page without
-% alteration.
-% \begin{macrocode}
-\def\normalfootgroup#1{\unvbox\csname #1footins\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Standard footnote definitions}
-%
-% \begin{macro}{\footnormal}
-% We can now define all the parameters for the five series of
-% footnotes; initially they use the ``normal'' footnote formatting,
-% which is set up by calling "\footnormal".
-% You can switch to another type of formatting by using
-% "\footparagraph", "\foottwocol", or "\footthreecol".
-%
-% Switching to a variation of ``normal''
-% formatting requires changing the
-% quantities defined in "\footnormal". The best way to
-% proceed would be to make a copy of this macro, with a different
-% name, make your desired changes in that copy, and then invoke it,
-% giving it the letter of the footnote series you wish to control.
-%
-% (We have not defined baseline skip values like
-% "\abaselineskip", since this is one of the quantities set in
-% "\notefontsetup".)
-%
-% What we want to do here is to say something like the following
-% for each footnote series. (This is an example, not part of the
-% actual "EDMAC" code.)
-% \begin{verbatim}
-% \newinsert\Afootins
-% \newcount\interAfootnotelinepenalty \interAfootnotelinepenalty=100
-% \skip\Afootins=12pt plus5pt minus5pt
-% \count\Afootins=1000
-% \dimen\Afootins=0.8\vsize
-% \let\vAfootnote=\normalvfootnote \let\Afootfmt=\normalfootfmt
-% \let\Afootstart=\normalfootstart \let\Afootgroup=\normalfootgroup
-% \let\Afootnoterule=\normalfootnoterule
-% \end{verbatim}
-% Instead of repeating ourselves, we define a "\footnormal"
-% macro that makes all these assignments for us, for any given
-% series letter. This also makes it easy to change from any
-% different system of formatting back to the "normal" setting.
-%
-% We begin by defining the five new insertion classes, and some
-% "count" registers; these are "\outer" operations that
-% can't be done inside "\footnormal".
-% \begin{macrocode}
-\newinsert\Afootins \newinsert\Bfootins
-\newinsert\Cfootins \newinsert\Dfootins
-\newinsert\Efootins
-% \end{macrocode}
-% \begin{macrocode}
-\newcount\interAfootnotelinepenalty
-\newcount\interBfootnotelinepenalty
-\newcount\interCfootnotelinepenalty
-\newcount\interDfootnotelinepenalty
-\newcount\interEfootnotelinepenalty
-% \end{macrocode}
-% Now we set up the "\footnormal" macro itself. It takes
-% one argument: the footnote series letter.
-% \begin{macrocode}
-\def\footnormal#1{%
- \csname inter#1footnotelinepenalty\endcsname=100
- \expandafter\let\csname #1footstart\endcsname=\normalfootstart
- \expandafter\let\csname v#1footnote\endcsname=\normalvfootnote
- \expandafter\let\csname #1footfmt\endcsname=\normalfootfmt
- \expandafter\let\csname #1footgroup\endcsname=\normalfootgroup
- \expandafter\let\csname #1footnoterule\endcsname=%
- \normalfootnoterule
- \count\csname #1footins\endcsname=1000
- \dimen\csname #1footins\endcsname=0.8\vsize
- \skip\csname #1footins\endcsname=12pt plus6pt minus6pt}
-% \end{macrocode}
-% \end{macro}
-% Some of these values deserve comment: the "\dimen"
-% setting allows 80\% of the page to be occupied by notes; the
-% "\skip" setting is deliberately flexible, since pages with
-% lots of notes attached to many of the lines can be a bit hard
-% for \TeX\ to make.
-%
-% And finally, we initialize the formatting for all the footnote series
-% to be normal.
-% \begin{macrocode}
-\footnormal{A}
-\footnormal{B}
-\footnormal{C}
-\footnormal{D}
-\footnormal{E}
-% \end{macrocode}
-%
-%
-% \subsection{Paragraphed footnotes}
-%
-% The paragraphed-footnote option
-% reformats all the footnotes of one series for a page into
-% a single paragraph; this is especially appropriate when the notes are
-% numerous and brief. The code is based
-% on {\em The \TeX book}, pp.\,398--400, with
-% alterations for our environment. This algorithm uses a considerable
-% amount of save-stack space: a \TeX\ of ordinary size may not be able
-% to handle more than about $100$ notes of this kind on a page.
-%
-% \begin{macro}{\footparagraph}
-% The "\footparagraph" macro
-% sets up everything for one series of footnotes so that
-% they'll be paragraphed; it takes the series letter as argument.
-% We include the setting of "\count\footins" to $1000$ for the
-% footnote series just in case you are switching to paragraphed
-% footnotes after having columnar ones, since they change this
-% value (see below).
-%
-% It is important to call "\footparagraph" only after
-% "\hsize" has been set for the pages that use
-% this series of notes; otherwise \TeX\ will try to put too
-% many or too few of these notes on each page. If you need to
-% change the "\hsize" within the document, call
-% "\footparagraph" again afterwards to take account of the new
-% value. The argument of "\footparagraph" is the letter
-% ("A"--"E") denoting the series of notes to be paragraphed.
-% \begin{macrocode}
-\def\footparagraph#1{%
- \expandafter\let\csname #1footstart\endcsname=\parafootstart
- \expandafter\let\csname v#1footnote\endcsname=\para@vfootnote
- \expandafter\let\csname #1footfmt\endcsname=\parafootfmt
- \expandafter\let\csname #1footgroup\endcsname=\para@footgroup
- \count\csname #1footins\endcsname=1000
- \para@footsetup{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\para@footsetup}
-% "\footparagraph" calls the
-% "\para@footsetup" macro to calculate a special
-% fudge factor, which is the ratio of the "\baselineskip"
-% to the "\hsize". We assume that the proper value of
-% "\baselineskip" for the footnotes (normally 9\,pt) has been set
-% already, in "\notefontsetup". The argument of the macro is
-% again the note series letter.
-% \begin{macrocode}
-\def\para@footsetup#1{{\notefontsetup
- \dimen0=\baselineskip
- \multiply\dimen0 by 1024
- \divide \dimen0 by \hsize \multiply\dimen0 by 64
- \expandafter
- \xdef\csname #1footfudgefactor\endcsname{%
- \expandafter\en@number\the\dimen0 }}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\en@number}
-% The "\en@number" macro extracts the numerical part from a "dimen"
-% register and strips off the ``"pt"'' (see {\em The \TeX
-% book}, p.\,375). It turns "10pt" into "10" so that you can use
-% it in arithmetic.
-% \begin{macrocode}
-{\catcode`p=12 \catcode`t=12 \gdef\en@number#1pt{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\parafootstart}
-% "\parafootstart" is the same as "\normalfootstart", but we give it
-% again to ensure that "\rightskip" and "\leftskip" are
-% zeroed (this needs to be done before "\para@footgroup" in the
-% output routine). You might have decided to change this for other
-% kinds of note, but here it should stay as it is. The size of
-% paragraphed notes is calculated using a fudge factor which in
-% turn is based on "\hsize". So the paragraph of notes needs to be
-% that wide.
-%
-% The argument of the macro is again the note series letter.
-% \begin{macrocode}
-\def\parafootstart#1{%
- \rightskip=0pt \leftskip=0pt \parindent=0pt
- \vskip\skip\csname #1footins\endcsname
- \csname #1footnoterule\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\para@vfootnote}
-% "\para@vfootnote"
-% is a version of the "\vfootnote" command that's used for
-% paragraphed notes. It gets appended to the "\inserts@list" list
-% by an outer-level footnote command like "\Afootnote". The first
-% argument is the note series letter; the second is the full text
-% of the printed note itself, including line numbers, lemmata, and
-% footnote text.
-%
-% The initial model for this insertion is, of course, the
-% "\insert\footins" definition in {\em The \TeX book}, p.\,398.
-% There, the footnotes are first collected up in hboxes, and these
-% hboxes are later unpacked and stuck together into a paragraph.
-%
-% However, Michael Downes\index{Downes, Michael} has pointed out
-% that because text in hboxes gets typeset in restricted horizontal
-% mode, there are some undesirable side-effects if you later want
-% to break such text across lines. In restricted horizontal mode,
-% where \TeX\ does not expect to have to break lines, it does not
-% insert certain items like "\discretionary"s. If you later unbox
-% these hboxes and stick them together, as the {\em \TeX book\/}
-% macros do to make these footnotes, you lose the ability to
-% hyphenate after an explicit hyphen. This can lead to overfull
-% "\hbox"es when you would not expect to find them, and to the
-% uninitiated it might be very hard to see why the problem had
-% arisen.\footnote{Michael Downes, ``Line Breaking in {\tt \bslash
-% unhbox}ed Text'', {\em TUGboat\/} {\bf 11} (1990), pp.\,605--612.}
-%
-% Wayne Sullivan\index{Sullivan, Wayne} pointed out to us another
-% subtle problem that arises from the same cause: \TeX\ also leaves
-% the "\language" whatsit nodes out of the horizontal
-% list.\footnote{See {\em The \TeX book}, p.\,455 (editions after
-% January 1990).} So changes from one language to another will not
-% invoke the proper hyphenation rules in such footnotes. Since
-% critical editions often do deal with several languages,
-% especially in footnotes, we really ought to get this bit of code
-% right.
-%
-% To get around these problems, Wayne suggested emendations to the
-% {\em \TeX book\/} versions of these macros which are broadly the
-% same as those described by Michael: the central idea (also
-% suggested by Donald Knuth in a letter to Michael) is to avoid collecting
-% the text in an "\hbox" in the first place, but instead to collect
-% it in a "\vbox" whose width is (virtually)
-% infinite.\label{hboxproblem} The text is therefore typeset in
-% unrestricted horizontal mode, as a paragraph consisting of a
-% single long line. Later, there is an extra level of unboxing to
-% be done: we have to unpack the "\vbox", as well as the hboxes
-% inside it, but that's not too hard. For details, we refer you to
-% Michael's article, where the issues are clearly
-% explained.\footnote{Wayne supplied his own macros to do this, but
-% since they were almost identical to Michael's, we have used the
-% latter's {\tt \bslash unvxh} macro since it is publicly
-% documented.} Michael's unboxing macro is called "\unvxh": unvbox,
-% extract the last line, and unhbox it.
-%
-% Doing things this way has an important
-% consequence:\label{nobreaks-detail} as Michael
-% pointed out, you really can't put an explicit line-break into a
-% note built in a "\vbox" the way we are doing.\footnote{``Line
-% Breaking'', p.\,610.} In other words, be very careful not to say
-% "\break", or "\penalty-10000", or any equivalent inside your
-% para-footnote.\label{nobreak} If you do, most of the note will
-% probably disappear. You {\em are\/} allowed to make strong
-% suggestions; in fact "\penalty-9999" will be quite okay. Just
-% don't make the break mandatory. We haven't applied any of
-% Michael's solutions here, since we feel that the problem is
-% exiguous, and "EDMAC" is quite baroque enough already. If
-% you think you are having this problem, look up Michael's
-% solutions.
-%
-% One more thing; we set "\leftskip" and "\rightskip" to zero.
-% This has the effect of neutralizing any such skips which may
-% apply to the main text (cf.\ p.\,\pageref{footskips} above).
-% We need to do this, since "footfudgefactor" is calculated on
-% the assumption that the notes are "\hsize" wide.
-%
-% So, finally, here is the modified foot-paragraph code, which
-% sets the footnote in vertical mode so that language and
-% discretionary nodes are included.
-% \begin{macrocode}
-\def\para@vfootnote#1#2{\insert\csname #1footins\endcsname
- \bgroup
- \notefontsetup
- \interlinepenalty=\csname inter#1footnotelinepenalty\endcsname
- \splittopskip=\ht\strutbox
- \splitmaxdepth=\dp\strutbox \floatingpenalty=\@MM
- \leftskip0pt \rightskip0pt
- \setbox0=\vbox{\hsize=\maxdimen
- \noindent\csname #1footfmt\endcsname#2}%
- \setbox0=\hbox{\unvxh0}%
- \dp0=0pt
- \ht0=\csname #1footfudgefactor\endcsname\wd0
-% \end{macrocode}
-% Here we produce the contents of the footnote from box $0$, and
-% add a penalty of $0$ between boxes in this insert.
-% \begin{macrocode}
- \box0
- \penalty0
- \egroup}
-% \end{macrocode}
-% The final penalty of $0$
-% was added here at Wayne's\index{Sullivan, Wayne}
-% suggestion to avoid a weird page-breaking problem, which occurs on
-% those occasions when \TeX\ attempts to split foot paragraphs.
-% After trying out such a split (see {\em The \TeX book}, p.\,124),
-% \TeX\ inserts a penalty of $-10000$ here, which
-% nearly always forces the break at the end of the whole footnote
-% paragraph (since individual notes can't be split) even when this
-% leads to an overfull vbox. The change above results in a penalty
-% of $0$ instead which allows, but doesn't force, such breaks. This
-% penalty of $0$ is later removed, after page breaks have been
-% decided, by the "\unpenalty" macro in "\makehboxofhboxes". So it
-% does not affect how the footnote paragraphs are typeset (the
-% notes still have a penalty of $-10$ between them, which is added
-% by "\parafootfmt").
-% \end{macro}
-%
-% \begin{macro}{\unvxh}
-% Here is Michael's\index{Downes, Michael} definition of "\unvxh",
-% used above. Michael's macro also takes care to remove some
-% unwanted penalties and glue that \TeX\ automatically attaches to
-% the end of paragraphs. When \TeX\ finishes a paragraph, it
-% throws away any remaining glue, and then tacks on the following
-% items: a "\penalty" of $10000$, a "\parfillskip" and a
-% "\rightskip" ({\em The \TeX book}, pp.\,99--100). "\unvxh"
-% cancels these unwanted paragraph-final items using "\unskip" and
-% "\unpenalty".
-% \begin{macrocode}
-\def\unvxh#1{%
- \setbox0=\vbox{\unvbox#1%
- \global\setbox1=\lastbox}%
- \unhbox1
- \unskip % remove \rightskip,
- \unskip % remove \parfillskip,
- \unpenalty % remove \penalty of 10000,
- \hskip\ipn@skip} % but add the glue to go between the notes
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\interparanoteglue}
-% \begin{macro}{\ipn@skip}
-% \label{interparanoteglue}\relax
-% Close observers will notice that we snuck some glue called
-% "\ipn@skip" onto the end of the hbox produced by "\unvxh" in the
-% above macro.
-%
-% We want to be able to have some glue between our paragraphed
-% footnotes. But since we are initially setting our notes in
-% internal vertical mode, as little paragraphs, any paragraph-final
-% glue will get discarded. Since "\unvxh" is already busy fiddling
-% with glue and penalties at the end of these paragraphs, we take
-% advantage of the opportunity to provide our inter-note spacing.
-%
-% We collect the value of the inter-parafootnote glue value as the
-% parameter of a macro called---wait for it---"\interparanoteglue".
-% We put this value into the value of a glue register
-% "\ipn@skip" (inter-para-note-skip) making sure first to set the
-% current font to the value normally used in footnotes so that the value of an
-% "em" will be taken from the right font.
-% \begin{macrocode}
-\newskip\ipn@skip
-\def\interparanoteglue#1{%
- {\notefontsetup\global\ipn@skip=#1 \relax}}
-\interparanoteglue{1em plus.4em minus.4em}
-% \end{macrocode}
-% There is a point to be careful about regarding the
-% "\interparanoteglue". Remember that in "\para@vfootnote" we do
-% some measurements on the footnote box, and use the resulting size
-% to make an estimate of how much the note will contribute to the
-% height of our final footnote paragraph. This information is used
-% by the output routine to allocate the right amount of vertical
-% space on the page for the notes ({\em The \TeX book}, pp.\,398--399).
-%
-% The length of the footnote includes the natural size of the glue
-% specified by "\interparanoteglue", but not its stretch or shrink
-% components, since at this point the note has no need to stretch
-% or shrink. Later, when the paragraph is actually composed by
-% "\parafootgroup" in the output routine, \TeX\ will almost
-% certainly do some stretching and shrinking of this glue in order
-% to make the paragraph look nice. Probably the stretching and
-% shrinking over the whole paragraph will cancel each other out.
-% But if not, the actual vertical size of the paragraph may not
-% match the size the output routine had been told to expect, and
-% you may get an overfull/underfull "\vbox" message from the output
-% routine. To minimize the risk of this, you can do two things:
-% keep the "plus" and "minus" components of "\interparanoteglue"
-% small compared with its natural glue, and keep them the same as
-% each other. As a general precaution, keep the size and
-% flexibility of the "\skip\footins" glue on the high side too:
-% because the reckoning is approximate, footnote blocks may be up
-% to a line bigger or smaller than the output routine allows for,
-% so keep some flexible space between the text and the notes.
-% \end{macro}
-% \end{macro}
-%
-%
-% \begin{macro}{\parafootfmt}
-% "\parafootfmt" is
-% "\normalfootfmt" adapted to do the special stuff
-% needed for paragraphed notes---leaving out the "\endgraf" at the
-% end, sticking in special penalties and kern, and leaving out the
-% "\footstrut". The first argument is the line and page
-% number information, the second is the lemma, and the third is the
-% text of the footnote.
-% \begin{macrocode}
-\def\parafootfmt#1#2#3{%
- \normal@pars
- \parindent=0pt \parfillskip=0pt plus1fil
- {\notenumfont\printlines#1|}\enspace
- {\select@lemmafont#1|#2}\rbracket\enskip
- #3\penalty-10 }
-% \end{macrocode}
-% Note that in the above definition, the penalty of $-10$
-% encourages a line break between notes, so that notes have a
-% slight tendency to begin on new lines.
-% \end{macro}
-%
-% \begin{macro}{\para@footgroup}
-% This "footgroup" code is modelled on the macros in {\em The
-% \TeX book}, p.\,399. The only difference is the "\unpenalty"
-% in "\makehboxofhboxes", which is there to remove the penalty of
-% $0$ which was added to the end of each footnote by
-% "\para@vfootnote".
-%
-% The call to "\notefontsetup" is to ensure that the correct
-% "\baselineskip" for the footnotes is used. The argument is the
-% note series letter.
-% \begin{macrocode}
-\def\para@footgroup#1{%
- \unvbox\csname #1footins\endcsname \makehboxofhboxes
- \setbox0=\hbox{\unhbox0 \removehboxes}%
- \notefontsetup
- \noindent\unhbox0\par}
-\def\makehboxofhboxes{\setbox0=\hbox{}%
- \loop
- \unpenalty
- \setbox2=\lastbox
- \ifhbox2
- \setbox0=\hbox{\box2\unhbox0}
- \repeat}
-\def\removehboxes{\setbox0=\lastbox
- \ifhbox0{\removehboxes}\unhbox0 \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Columnar footnotes}
-%
-% \begin{macro}{\rigidbalance}
-% \begin{macro}{\dosplits}
-% \begin{macro}{\splitoff}
-% \begin{macro}{\@h}
-% \begin{macro}{\@k}
-% We will now define macros for three-column notes and two-column
-% notes. Both sets of macros will use "\rigidbalance", which splits a
-% box ("#1") into into a number ("#2") of columns, each
-% with a space ("#3") between the top baseline and the top of
-% the "\vbox". The "\rigidbalance" macro is taken from
-% {\em The \TeX book}, p.\,397, with a slight change to the syntax of
-% the arguments so that they don't depend on white space. Note also
-% the extra unboxing in "\splitoff", which allows the new "\vbox" to
-% have its natural height as it goes into the alignment.
-% \begin{macrocode}
-\newcount\@k \newdimen\@h
-\def\rigidbalance#1#2#3{\setbox0=\box#1 \@k=#2 \@h=#3
- \line{\splittopskip=\@h \vbadness=\@M \hfilneg
- \valign{##\vfil\cr\dosplits}}}
-\def\dosplits{\ifnum\@k>0 \noalign{\hfil}\splitoff
- \global\advance\@k-1\cr\dosplits\fi}
-\def\splitoff{\dimen0=\ht0
- \divide\dimen0 by\@k \advance\dimen0 by\@h
- \setbox2 \vsplit0 to \dimen0
- \unvbox2 }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \paragraph{Three columns}
-%
-% \begin{macro}{\footthreecol}
-% You say "\footthreecol{A}" to have the "A" series of footnotes
-% typeset in three columns. It is important to call this only after
-% "\hsize" has been set for the document.
-% \begin{macrocode}
-\def\footthreecol#1{%
- \expandafter\let\csname v#1footnote\endcsname=\threecolvfootnote
- \expandafter\let\csname #1footfmt\endcsname=\threecolfootfmt
- \expandafter\let\csname #1footgroup\endcsname=\threecolfootgroup
- \threecolfootsetup{#1}}
-% \end{macrocode}
-% The "\footstart" and "\footnoterule" macros for these notes assume
-% the normal values (p.\,\pageref{normalvalues} above).
-% \end{macro}
-%
-% \begin{macro}{\threecolfootsetup}
-% The "\threecolfootsetup" macro calculates and sets some numbers
-% for three-column footnotes.
-%
-% We set the "\count" of the foot insert to $333$.
-% Each footnote can be thought of as contributing only one third of
-% its height to the page, since the footnote insertion has been
-% made as a long narrow column, which then gets trisected by the
-% "\rigidbalance" routine (inside "\threecolfootgroup").
-% These new, shorter columns are saved in a box, and then that box
-% is {\em put back\/} into the footnote insert, replacing the
-% original collection of footnotes. This new box is, therefore,
-% only about a third of the height of the original one.
-%
-% The "\dimen" value for this note series has to change in the
-% inverse way: it needs to be three times
-% the actual limit on the amount of space these notes are allowed to
-% fill on the page, because when \TeX\ is
-% accumulating material for the page
-% and checking that limit, it doesn't apply the "\count" scaling.
-% \begin{macrocode}
-\def\threecolfootsetup#1{%
- \count\csname #1footins\endcsname 333
- \multiply\dimen\csname #1footins\endcsname by 3 }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\threecolvfootnote}
-% "\threecolvfootnote"
-% is the "\vfootnote" command for three-column notes. The
-% call to "\notefontsetup" ensures that the
-% "\splittopskip" and "\splitmaxdepth" take their values
-% from the right "\strutbox": the one used in footnotes.
-% Note especially the importance of temporarily reducing the
-% "\hsize" to $0.3$ of its normal value. This determines the
-% widths of the individual columns. So if the normal "\hsize"
-% is, say, 10\,cm, then each column will be $0.3\times10=3$\,cm
-% wide, leaving a gap of 1\,cm spread equally between columns
-% (i.e., .5\,cm between each).
-%
-% The arguments are 1)~the note series letter and 2)~the full text
-% of the note (including numbers, lemma and text).
-% \begin{macrocode}
-\def\threecolvfootnote#1#2{%
- \insert\csname #1footins\endcsname\bgroup
- \notefontsetup
- \interlinepenalty=\csname inter#1footnotelinepenalty\endcsname
- \floatingpenalty=20000
- \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
- \rightskip=0pt \leftskip=0pt
- \csname #1footfmt\endcsname #2\egroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\threecolfootfmt}
-% "\threecolfootfmt"
-% is the command that formats one note.
-% It uses "\raggedright", which will usually be
-% preferable with such short lines. Setting the "\parindent"
-% to zero means that, within each individual note, the lines begin
-% flush left.
-%
-% The arguments are 1)~the line numbers, 2)~the lemma and 3)~the
-% text of the "-footnote" command.
-% \begin{macrocode}
-\def\threecolfootfmt#1#2#3{%
- \normal@pars
- \hsize .3\hsize
- \parindent=0pt
- \tolerance=5000
- \raggedright
- \leavevmode
- \strut{\notenumfont\printlines#1|}\enspace
- {\select@lemmafont#1|#2}\rbracket\enskip
- #3\strut\par\allowbreak}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\threecolfootgroup}
-% And here is the "footgroup" macro that's called within the
-% output routine to regroup the notes into three columns. Once
-% again, the call to "\notefontsetup" is there to ensure that
-% it is the right "\splittopskip"---the one used in
-% footnotes---which is used to provide the third argument for
-% "\rigidbalance". This third argument ("\@h") is the
-% "topskip" for the box containing the text of the
-% footnotes, and does the job of making sure the top lines of the
-% columns line up horizontally. In {\em The \TeX book}, p.\,398,
-% Donald Knuth suggests retrieving the ouput of "\rigidbalance",
-% putting it back into the insertion box, and then printing the
-% box. Here, we just print the "\line" which comes out of
-% "\rigidbalance" directly, without any re-boxing.
-% \begin{macrocode}
-\def\threecolfootgroup#1{{\notefontsetup
- \splittopskip=\ht\strutbox
- \expandafter
- \rigidbalance\csname #1footins\endcsname 3 \splittopskip }}
-% \end{macrocode}
-% \end{macro}
-%
-% \paragraph{Two columns}
-%
-% \begin{macro}{\foottwocol}
-% You say "\foottwocol{A}" to have the "A" series of footnotes
-% typeset in two columns. It is important to call this only after
-% "\hsize" has been set for the document.
-% \begin{macrocode}
-\def\foottwocol#1{%
- \expandafter\let\csname v#1footnote\endcsname=\twocolvfootnote
- \expandafter\let\csname #1footfmt\endcsname=\twocolfootfmt
- \expandafter\let\csname #1footgroup\endcsname=\twocolfootgroup
- \twocolfootsetup{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\twocolfootsetup}
-% \begin{macro}{\twocolvfootnote}
-% \begin{macro}{\twocolfootfmt}
-% \begin{macro}{\twocolfootgroup}
-% Here is a series of macros which are very similar to their
-% three-column counterparts. In this case,
-% each note is assumed to contribute only a half a line of text.
-% And the notes are set in columns
-% "0.45\hsize" wide, giving a gap between them of one tenth
-% of the "\hsize".
-% \begin{macrocode}
-\def\twocolfootsetup#1{%
- \count\csname #1footins\endcsname 500
- \multiply\dimen\csname #1footins\endcsname by 2 }
-% \end{macrocode}
-% \begin{macrocode}
-\def\twocolvfootnote#1#2{\insert\csname #1footins\endcsname\bgroup
- \notefontsetup
- \interlinepenalty=\csname inter#1footnotelinepenalty\endcsname
- \floatingpenalty=20000
- \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
- \rightskip=0pt \leftskip=0pt
- \csname #1footfmt\endcsname #2\egroup}
-% \end{macrocode}
-% \begin{macrocode}
-\def\twocolfootfmt#1#2#3{%
- \normal@pars
- \hsize .45\hsize
- \parindent=0pt
- \tolerance=5000
- \raggedright
- \leavevmode
- \strut{\notenumfont\printlines#1|}\enspace
- {\select@lemmafont#1|#2}\rbracket\enskip
- #3\strut\par\allowbreak}
-% \end{macrocode}
-% \begin{macrocode}
-\def\twocolfootgroup#1{{\notefontsetup
- \splittopskip=\ht\strutbox
- \expandafter
- \rigidbalance\csname #1footins\endcsname 2 \splittopskip}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \section{Output routine}
-% \label{output}\relax
-%
-% Now we begin the output routine and associated things.
-%
-% \subsection{Crop marks}
-%
-% The following are the parameters that specify the page dimensions
-% that relate to crop marks; they are set by the "\cropsetup"
-% macro.
-%
-% \begin{macro}{\crop@vsize}
-% "\crop@vsize" is the vertical distance between crop marks.
-% \begin{macrocode}
-\newdimen\crop@vsize \crop@vsize=0pt
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\crop@hsize}
-% "\crop@hsize" is the horizontal distance between crop marks.
-% \begin{macrocode}
-\newdimen\crop@hsize \crop@hsize=0pt
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\head@margin}
-% "\head@margin" is the head margin.
-% \begin{macrocode}
-\newdimen\head@margin \head@margin=0pt
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\back@margin}
-% "\back@margin" is the back margin.
-% \begin{macrocode}
-\newdimen\back@margin \back@margin=0pt
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\odd@back}
-% \begin{macro}{\even@back}
-% \begin{macro}{\@back}
-% To handle the odd/even difference in the back margin, we keep the
-% different margin sizes in two registers, "\odd@back" and
-% "\even@back", and use a token register, "\@back", to
-% hold the code that decides which to use.
-% \begin{macrocode}
-\newdimen\odd@back \odd@back=0pt
-\newdimen\even@back \even@back=0pt
-\newtoks\@back
-\@back={\ifodd\pageno \odd@back \else \even@back\fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\registration@marks}
-% We store up the registration marks in a box
-% called "\registration@marks" that's reused for every
-% page, instead of regenerating them all again at each page.
-% \begin{macrocode}
-\newbox\registration@marks
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\vertical@rules}
-% \begin{macro}{\horizontal@rules}
-% The following are macros that will be used in
-% the course of making "\registration@marks".
-% \begin{macrocode}
-\def\vertical@rules{%
- \hbox to\crop@hsize{%
- \vrule height1pc width\cropwidth depth0pt
- \hfil
- \vrule width\cropwidth depth0pt}}
-% \end{macrocode}
-% \begin{macrocode}
-\def\horizontal@rules{%
- \hbox to\crop@hsize{%
- \llap{\vrule width1pc height\cropwidth \kern\cropgap}%
- \hfil
- \rlap{\kern\cropgap \vrule width1pc height\cropwidth}}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\cropwidth}
-% \begin{macro}{\cropgap}
-% Set standard values for the thickness of the rules used for drawing crop
-% marks ("\cropwidth") and the gap by which crop marks don't cross
-% ("\cropgap").
-% \begin{macrocode}
-\newdimen\cropwidth \cropwidth=.4pt
-% \end{macrocode}
-% \begin{macrocode}
-\newdimen\cropgap \cropgap=5pt
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\magicvskip}
-% \begin{macro}{\headlinefont}
-% \label{magic}\relax
-% Publishers usually measure the head margin for the crop marks
-% from the top of the running head.\footnote{Cf.\ Hugh Williamson,
-% {\it Methods of Book Design\/} (New Haven: Yale University Press,
-% 1983), p.\,21.\protect\index{Williamson, Hugh}}
-%
-% \PlainTeX's starting reference point for a page is not the
-% running head, but a point "\topskip" above the baseline of
-% the first line of main text on the page. (Before doing anything
-% else, \TeX\ adds a small amount of skip to the top of a new page,
-% which is calculated to bring the baseline of the top line of text
-% down to "\topskip" from the top of the page, i.e., from the
-% point where the "\vsize" is measured from: {\em The \TeX
-% book}, pp.\,113--114.) So any vertical matter we add in the output
-% routine to the start of a page will sit with its base at a point
-% "\topskip" above the baseline of the first line of the main
-% text. And if "\ht\strutbox" is the height of the header box
-% we are adding, then the distance between its top and the
-% reference point will be
-% "\topskip"$-$"\ht\strutbox"$-s$, where $s$ is the space
-% we want to put between the baselines of the header and the first
-% text line.
-%
-% In \PlainTeX, this distance is $-22.5$\,pt, a ``magic constant''
-% explained in {\em The \TeX book}, p.\,255. Rather than using this
-% figure explicitly, "EDMAC" calculates it afresh, in case
-% you have changed any of the values that go to make up this magic
-% constant. The parameters involved are the "\topskip", the
-% font of the "\headline" text (which determines the height of
-% the "\strutbox"), and the "\baselineskip" (assuming that you
-% want the header to be exactly two lines above the first line of
-% the text). This calculation is done within "\cropsetup".
-% \begin{macrocode}
-\newdimen\magicvskip \magicvskip=\topskip
-% \end{macrocode}
-%
-% If the "\headline" is going to be set at a different height
-% from the top of the text, or in a different size of font,
-% be sure to make the appropriate changes to the
-% above parameters, or the crop marks will not be in the right
-% position. We now set the standard value for "\headlinefont".
-% \begin{macrocode}
-\let\headlinefont=\rm
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\cropsetup}
-% \begin{macro}{\ifcropmarks@}
-% Here at last is the "\cropsetup"
-% macro that takes the page and margin
-% dimensions you specify and calculates all the other parameters
-% from them. It should always be used after "\hsize",
-% "\makeheadline", and "\headlinefont" for the
-% document have been set, as explained above.
-% These macros use the same approach as those published by David
-% Salomon\index{Salomon, David} in {\em TUGboat\/} {\bf 11} (1990),
-% pp.\,77--78. Cf.\ also the "\setcornerrules" code in {\em The \TeX
-% book}, pp.\,416--417.
-%
-% The four arguments are as described above, on page
-% \pageref{cropsetup}.
-%
-% First, set up a conditional, "\ifcropmarks@",
-% for use in the output routine.
-% Initially, it's false. (It is set to true when you use the
-% "\cropsetup" macro.)
-% \begin{macrocode}
-\newif\ifcropmarks@
-% \end{macrocode}
-% Now the main macro to set up crop marks:
-% \begin{macrocode}
-\def\cropsetup#1#2#3#4{\cropmarks@true
- \global\crop@vsize=#1
- \global\crop@hsize=#2
- \global\head@margin=#3
- \global\back@margin=#4
-% \end{macrocode}
-% The back margin for odd pages is easy. For even pages, we take the
-% full width and subtract the text width and back margin size.
-% \begin{macrocode}
- \global\odd@back=\back@margin
- \global\even@back=\crop@hsize
- \global\advance\even@back by -\hsize
- \global\advance\even@back by -\back@margin
-% \end{macrocode}
-% \begin{macrocode}
- \setbox\registration@marks=
- \vbox to \crop@vsize{%
- \offinterlineskip
- \vbox to0pt{\vss
- \vertical@rules
- \kern\cropgap
- \horizontal@rules}%
- \vfil
- \vbox to0pt{%
- \horizontal@rules
- \kern\cropgap
- \vertical@rules\vss}}%
-% \end{macrocode}
-%
-% Set the box's size to zero.
-%
-% \begin{macrocode}
- \ht\registration@marks=0pt
- \wd\registration@marks=0pt
-% \end{macrocode}
-%
-% In the next lines, we set the font to "\headlinefont" so that
-% the height of the "\strutbox" will be the that of the
-% "\headlinefont" font. This makes the assumption that font
-% used for the "\headline" is invoked by "\headlinefont",
-% and that the "\headlinefont" macro defines a
-% "\strutbox" of an appropriate size for the font. (The
-% standard setting is to \PlainTeX's "\rm", and the height of a
-% "\strutbox" for this font is already set by \PlainTeX.)
-% \begin{macrocode}
- \global\magicvskip=\topskip
- {\headlinefont \global\advance\magicvskip by -\ht\strutbox}%
- \global\advance\magicvskip by -2\baselineskip}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Output routine}
-%
-% \begin{macro}{\output}
-% \begin{macro}{\edmac@output}
-% \begin{macro}{\pagecontents}
-% This is a new output routine, with changes to handle printing all our
-% footnotes. Those changes have not been added directly, but are in macros
-% that get called here: that should make it easier to see what would need
-% to be taken over to a different output routine. We continue to use the
-% "\pagebody", "\makeheadline", "\makefootline", and "\dosupereject"
-% macros of \PlainTeX; for those macros, and the original version of
-% "\output", see {\em The \TeX book}, p.\,364.
-% \begin{macrocode}
-\output{\edmac@output}
-\def\edmac@output{\shipout\vbox{\normal@pars
- \ifcropmarks@
- \do@cropmarks
- \else
- \vbox{\makeheadline\pagebody\makefootline}%
- \fi}%
- \advancepageno
- \ifnum\outputpenalty>-\@MM\else\dosupereject\fi}
-% \end{macrocode}
-% \begin{macrocode}
-\def\pagecontents{\page@start
- \ifvoid\topins\else\unvbox\topins\fi
- \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
- \do@feet
- \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\do@cropmarks}
-% When crop marks are to be printed,
-% "\edmac@output" uses this macro to print them, along with the
-% text of the page.
-% \begin{macrocode}
-\def\do@cropmarks{%
- \vbox{\offinterlineskip
- \kern\magicvskip
- \copy\registration@marks
- \kern-\magicvskip}%
- \nointerlineskip
- \kern\head@margin
- \moveright\the\@back\vbox{\makeheadline\pagebody\makefootline}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\do@feet}
-% "\do@feet" ships out all the footnotes. Standard "EDMAC" has only
-% five feet, but there is nothing in principal to prevent you
-% from creating an arachnoid or centipedal edition; straightforward
-% modifications of "EDMAC" are all that's required. However, the
-% myria\-pedal edition is ruled out by \TeX's limitations: the number
-% of insertion classes is limited to $255$.
-% \begin{macrocode}
-\def\do@feet{%
- \ifvoid\footins\else
- \vskip\skip\footins
- \footnoterule
- \unvbox\footins
- \fi
- \ifvoid\Afootins\else
- \Afootstart{A}\Afootgroup{A}%
- \fi
- \ifvoid\Bfootins\else
- \Bfootstart{B}\Bfootgroup{B}%
- \fi
- \ifvoid\Cfootins\else
- \Cfootstart{C}\Cfootgroup{C}%
- \fi
- \ifvoid\Dfootins\else
- \Dfootstart{D}\Dfootgroup{D}%
- \fi
- \ifvoid\Efootins\else
- \Efootstart{E}\Efootgroup{E}%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \section{Cross referencing}
-% \label{xref}\relax
-%
-% You can mark a place in the text using a command of the form
-% "\label{foo}", and later refer to it using the label
-% "foo" by saying "\pageref{foo}", or "\lineref{foo}" or
-% "\sublineref{foo}". These reference commands will produce,
-% respectively, the page, line and sub-line on which the
-% "\label{foo}" command occurred.
-%
-% The reference macros warn you if a reference is made to an
-% undefined label. If "foo" has been used as a label before,
-% the "\label{foo}" command will issue a complaint; subsequent
-% "\pageref" and "\lineref" commands will refer to the
-% latest occurrence of "\label{foo}". When any of these
-% commands are used, an additional auxiliary file, called
-% \meta{filename}".aux", is created.
-%
-% \begin{macro}{\labelref@list}
-% Set up a new list, "\labelref@list", to hold the page, line and
-% sub-line numbers for each label.
-% \begin{macrocode}
-\list@create{\labelref@list}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@aux}
-% "\@aux" is the output stream number for our auxiliary file
-% that contains labeling commands.
-% \begin{macrocode}
-\newwrite\@aux
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\do@labelsfile}
-% The "\do@labelsfile" macro
-% opens the auxiliary labels file and executes it; the file should
-% consist of a stream of "\make@labels" commands. Then it opens
-% a new auxiliary file, and redefines itself so that it isn't called
-% again. This will be called by the first "\label" or reference
-% command that appears in the text---and not at all if there are no
-% labels or references, so we won't bother at all with an ".aux"
-% file if there's no need for it.
-% \begin{macrocode}
-\def\do@labelsfile{%
- \openin\@inputcheck=\jobname.aux
- \ifeof\@inputcheck \else
- \closein\@inputcheck
- \begingroup
- \makeatletter \catcode`\^^M=9
- \input\jobname.aux
- \endgroup
- \fi
- \immediate\openout\@aux=\jobname.aux
- \global\let\do@labelsfile=\relax}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\label}
-% \begin{macro}{\zz@@@}
-% The "\label" command first writes a "\@lab" macro to
-% the "\linenum@out" file. It then checks to see that the
-% "\labelref@list" actually has something in it (if not, it
-% creates a dummy entry), and pops the next value for the current
-% label, storing it in "\label@refs". Finally it defines the
-% label to be "\empty" so that any future check will turn up
-% the fact that it has been used.\footnote{The remaining macros
-% in this section were kindly revised by Wayne
-% Sullivan,\index{Sullivan, Wayne} who
-% substantially improved their efficiency and flexibility.}
-% \begin{macrocode}
-\def\zz@@@{000|000|000} % set three counters to zero in one go
-% \end{macrocode}
-% \begin{macrocode}
-\def\label#1{\do@labelsfile
- \write\linenum@out{\string\@lab}%
- \ifx\labelref@list\empty
- \xdef\label@refs{\zz@@@}%
- \else
- \gl@p\labelref@list\to\label@refs
- \fi
- \edef\next{\write\@aux{\string\make@labels\label@refs|{#1}}}%
- \next}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\make@labels}
-% The "\make@labels" macro gets executed when the labels file is
-% read. For each label it defines a macro, whose name is made up
-% partly from the label you supplied, that contains the page, line
-% and sub-line numbers. But first it checks to see whether the
-% label has already been used (and complains if it has).
-% \begin{macrocode}
-\def\make@labels#1|#2|#3|#4{%
- \expandafter\ifx\csname the@label#4\endcsname \relax\else
- \edmac@warning{Duplicate definition of label `#4'
- on page \number\pageno.}%
- \fi
- \expandafter\gdef\csname the@label#4\endcsname{#1|#2|#3}%
- \ignorespaces}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@lab}
-% The "\@lab" command, which appears in the "\linenum@out" file,
-% appends the current values of page, line and sub-line to the
-% "\labelref@list". These values are defined by the earlier
-% "\@page", "\@l", and the "\sub@on" and "\sub@off" commands
-% appearing in the "\linenum@out" file.
-% \begin{macrocode}
-\def\@lab{\xright@appenditem
- {\the\page@num|\the\line@num|%
- \ifsublines@ \the\subline@num \else 0\fi}\to\labelref@list}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\pageref}
-% \begin{macro}{\xpageref}
-% If the specified label exists, "\pageref" gives its page number.
-% For this reference command, as for the other two, a special
-% version with prefix "x" is provided for use in places where the
-% command is to be scanned as a number, as in "\linenum". These
-% special versions have two limitations: they don't print error
-% messages if the reference is unknown, and they can't appear as
-% the first label or reference command in the file; you must ensure
-% that a "\label" or a normal reference command appears first, or
-% these x-commands will always return zeros.
-% \begin{macrocode}
-\def\pageref#1{\ref@undefined{#1}\getref@num{1}{#1}}
-\def\xpageref#1{\getref@num{1}{#1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\lineref}
-% \begin{macro}{\xlineref}
-% If the specified label exists, "\lineref" gives its line number.
-% \begin{macrocode}
-\def\lineref#1{\ref@undefined{#1}\getref@num{2}{#1}}
-\def\xlineref#1{\getref@num{2}{#1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\sublineref}
-% \begin{macro}{\xsublineref}
-% If the specified label exists, "\sublineref" gives its sub-line number.
-% \begin{macrocode}
-\def\sublineref#1{\ref@undefined{#1}\getref@num{3}{#1}}
-\def\xsublineref#1{\getref@num{3}{#1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\ref@undefined}
-% The next three macros are used by the referencing commands above,
-% and do the job of extracting the right numbers from the label
-% macro that contains the page, line, and sub-line number. The
-% "\ref@undefined" macro is called when you refer to a label with
-% the normal referencing macros. Its argument is a label, and it
-% just checks that the labels file has indeed been opened and read (if
-% not, it does so), and that the label is defined (if not, it
-% squeals). (It is these checks which the "x-" forms of the
-% reference macros leave out.)
-% \begin{macrocode}
-\def\ref@undefined#1{\do@labelsfile
- \expandafter\ifx\csname the@label#1\endcsname\relax
- \edmac@warning{Reference `#1'
- on page \the\pageno\space undefined. Using `000'.}%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\getref@num}
-% Next, "\getref@num" fetches the number we want. It has two
-% arguments: the first is simply a digit, specifying whether to
-% fetch a page ("1"), line ("2") or sub-line ("3") number. (This
-% switching is done by calling "\label@parse".) The second argument
-% is the label-macro, which because of the "\@lab" macro above is
-% defined to be a string of the type "123|456|789".
-% \begin{macrocode}
-\def\getref@num#1#2{%
- \expandafter
- \ifx\csname the@label#2\endcsname \relax
- 000%
- \else
- \expandafter\expandafter\expandafter
- \label@parse\csname the@label#2\endcsname|#1%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\label@parse}
-% Notice that we slipped another "|" delimiter into the
-% penultimate line of "\getref@num", to
-% keep the ``switch-number'' separate from the reference numbers. This
-% "|" is used as another parameter delimiter by "\label@parse",
-% which extracts the appropriate number from its first arguments.
-% The "|"-delimited arguments consist of the expanded label-macro
-% (three reference numbers), followed by the switch-number ( "1",
-% "2", or "3") which defines which of the earlier three numbers to
-% pick out. (It was earlier given as the first argument of
-% "\getref@num".)
-% \begin{macrocode}
-\def\label@parse#1|#2|#3|#4{%
- \ifcase #4\relax
- \or #1%
- \or #2%
- \or #3%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\xxref}
-% The "\xxref" command takes two arguments, both of which are
-% labels, e.g., "\xxref{mouse}{elephant}". It first does some
-% checking to make sure that the labels do exist (if one doesn't,
-% those numbers are set to zero). Then it calls "\linenum" and sets
-% the beginning page, line, and sub-line numbers to those of the
-% place where "\label{mouse}" was placed, and the ending
-% numbers to those at "\label{elephant}". The point of this is
-% to be able to manufacture footnote line references to passages
-% which can't be specified in the normal way as the first argument
-% to "\text" for one reason or another. Using "\xxref" in the
-% second argument of "\text" lets you set things up at least
-% semi-automatically.
-% \begin{macrocode}
-\def\xxref#1#2{%
- {\expandafter\ifx\csname the@label#1\endcsname
- \relax \expandafter\let\csname the@label#1\endcsname\zz@@@\fi
- \expandafter\ifx\csname the@label#2\endcsname \relax
- \expandafter\let\csname the@label#2\endcsname\zz@@@\fi
- \linenum{\csname the@label#1\endcsname|%
- \csname the@label#2\endcsname}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\makelabel}
-% Sometimes the "\label" command cannot be used to specify
-% exactly the page and line desired; you can use the "\makelabel" macro
-% make your own label. For example, if you say
-% ``"\makelabel{elephant}{10|25|0}"'' you will have created a
-% new label, and a later call to "\pageref{elephant}" would
-% print ``10'' and "\lineref{elephant}" would print ``25''.
-% The sub-line number here is zero.
-% "\makelabel" takes a label, followed by a page and a line number(s)
-% as arguments.
-% \begin{macrocode}
-\def\makelabel#1#2{\expandafter\xdef\csname the@label#1\endcsname{#2}}
-% \end{macrocode}
-% (If you are only going to refer to such a label using
-% "\xxref", then you can omit entries in the same way as with
-% "\linenum" (see pp.\,\pageref{linenumdef} and
-% \pageref{linenumbers}), since "\xxref" makes a call to
-% "\linenum" in order to do its work.)
-% \end{macro}
-%
-%
-% \section{Endnotes}
-% \label{endnotes}\relax
-%
-% \begin{macro}{\@end}
-% \begin{macro}{\ifend@}
-% \begin{macro}{\end@true}
-% \begin{macro}{\end@false}
-% Endnotes of all varieties are saved up in a file, typically named
-% \meta{filename}".end".
-% "\@end" is the output stream number for
-% this file, and "\ifend@" is a flag that's "true" when the file is open.
-% \begin{macrocode}
-\newwrite\@end
-\newif\ifend@
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\end@open}
-% \begin{macro}{\end@close}
-% "\end@open" and "\end@close" are the
-% macros that are used to open and close the endnote file. Note that
-% all our writing to this file is "\immediate": all page and
-% line numbers for the endnotes are generated by the same mechanism
-% we use for the footnotes, so that there's no need to defer any
-% writing to catch information from the output routine.
-% \begin{macrocode}
-\def\end@open#1{\end@true\immediate\openout\@end=#1\relax}
-\def\end@close{\end@false\immediate\closeout\@end}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\end@stuff}
-% "\end@stuff" is used by "\beginnumbering" to
-% do everything that's necessary for the endnotes at the
-% start of each section: it opens the "\@end" file, if necessary,
-% and writes the section number to the endnote file.
-% \begin{macrocode}
-\def\end@stuff{%
- \ifend@\relax\else
- \end@open{\jobname.end}%
- \fi
- \immediate\write\@end{\string\@section{\the\section@num}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Aendnote}
-% \begin{macro}{\Bendnote}
-% \begin{macro}{\Cendnote}
-% \begin{macro}{\Dendnote}
-% \begin{macro}{\Eendnote}
-% The following five macros each function to
-% write one endnote to the ".end" file. Like the footnotes, these
-% endnotes come in five series, "A" through "E". We change
-% "\newlinechar" so that in the file every space becomes the
-% start of a new line; this generally ensures that a long note doesn't
-% exceed restrictions on the length of lines in files.
-% \begin{macrocode}
-\def\Aendnote#1{{\newlinechar='40
- \immediate\write\@end{\string\Aend%
- {\ifnumberedpar@\@nums\fi}%
- {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Bendnote#1{{\newlinechar='40
- \immediate\write\@end{\string\Bend%
- {\ifnumberedpar@\@nums\fi}%
- {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Cendnote#1{{\newlinechar='40
- \immediate\write\@end{\string\Cend%
- {\ifnumberedpar@\@nums\fi}%
- {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Dendnote#1{{\newlinechar='40
- \immediate\write\@end{\string\Dend%
- {\ifnumberedpar@\@nums\fi}%
- {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
-% \end{macrocode}
-% \begin{macrocode}
-\def\Eendnote#1{{\newlinechar='40
- \immediate\write\@end{\string\Eend%
- {\ifnumberedpar@\@nums\fi}%
- {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\Aend}
-% \begin{macro}{\Bend}
-% \begin{macro}{\Cend}
-% \begin{macro}{\Dend}
-% \begin{macro}{\Eend}
-% \begin{macro}{\endprint}
-% \begin{macro}{\@gobblethree}
-% \begin{macro}{\@section}
-% "\Aendnote" and the like write commands called "\Aend" and
-% so on to the endnote file; these are analogous to the various
-% "footfmt" commands above, and they take the same arguments.
-% When we process this file, we'll want to pick out the notes of one
-% series and ignore all the rest. To do that, we equate the "end"
-% command for the series we want to "\endprint", and leave the
-% rest equated to "\@gobblethree", which just skips over its three
-% arguments. The "\endprint" here is nearly identical in its
-% functioning to "\normalfootfmt".
-%
-% The endnote file also contains "\@section" commands, which
-% supply the section numbers from the main text; standard "EDMAC" does
-% nothing with this information, but it's there if you want to write
-% custom macros to do something with it.
-% \begin{macrocode}
-\def\endprint#1#2#3{{\notefontsetup{\notenumfont\printlines#1|}%
- \enspace{\select@lemmafont#1|#2}\enskip#3\par}}
-\def\@gobblethree#1#2#3{}
-\let\Aend=\@gobblethree
-\let\Bend=\@gobblethree
-\let\Cend=\@gobblethree
-\let\Dend=\@gobblethree
-\let\Eend=\@gobblethree
-\let\@section=\@gobble
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\doendnotes}
-% "\doendnotes" is
-% the command you use to print one series of endnotes; it
-% takes one argument, the series letter of the note series you want
-% to print.
-% \begin{macrocode}
-\def\doendnotes#1{\end@close
- \begingroup
- \makeatletter
- \expandafter\let\csname #1end\endcsname=\endprint
- \input\jobname.end
- \endgroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\noendnotes}
-% You can say "\noendnotes" before the first
-% "\beginnumbering" in your file if you aren't going to be using
-% any of the endnote commands: this will suppress the creation of
-% an ".end" file. If you do have some lingering endnote
-% commands in your file,
-% the notes will be written to your terminal and to the \TeX\ log file.
-% \begin{macrocode}
-\def\noendnotes{\global\let\end@stuff=\relax
- \global\chardef\@end=16 }
-% \end{macrocode}
-% \end{macro}
-%
-% \section{The End}\label{end}
-%
-% At signs are no longer letters.
-% \begin{macrocode}
-\makeatother
-% \end{macrocode}
-%
-% \newpage
-% \appendix
-%
-% \section{Examples}\label{examples}
-%
-% In the following examples, the command "\input edmac.doc" has
-% been included for completeness. This is always safe, since
-% "EDMAC" checks to see if has been loaded before. But, as mentioned
-% above, it is usually more convenient to include the "EDMAC" macros
-% in a pre-digested \TeX\ format file, to be invoked with a command such
-% as "tex &edmac" \meta{filename}.
-%
-% \subsection{General example of features}
-% This made-up example, "features.tex", is included purely to illustrate
-% some of "EDMAC"'s main features. It is hard to find real-world
-% examples that actually use as many layers of notes as this, so we made
-% one up. The example is a bit tricky to read, but close study and
-% comparison with the output (Figure~\ref{features-out}) will be
-% illuminating.
-% \begin{figure}[p]
-% \includegraphics{features}
-% \vspace*{\textheight} ^^A supply artwork
-% \vspace*{-3\baselineskip}
-% \caption{Output from {\tt features.tex}.}
-% \label{features-out}
-% \end{figure}
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% \input edmac.doc
-% \hsize 28pc
-% \vsize 35pc
-% \cropsetup{45pc}{35pc}{4pc}{4pc}
-% \headline{Headline \hfil \folio}
-% \footline{Footline \hfil --\folio--\hfil footline}
-%
-% \makeatletter
-% % I'd like a spaced out colon after the lemma:
-% \def\spacedcolon{{\rm\thinspace:\thinspace}}
-% \def\normalfootfmt#1#2#3{%
-% \normal@pars
-% \parindent=0pt \parfillskip=0pt plus 1fil
-% {\notenumfont\printlines#1|}\strut\enspace
-% {\select@lemmafont#1|#2}\spacedcolon\enskip#3\strut\par}
-%
-% % And I'd like the 3-col notes printed with a hanging indent:
-% \def\threecolfootfmt#1#2#3{%
-% \normal@pars
-% \hsize .3\hsize
-% \parindent=0pt
-% \tolerance=5000 % high, but not infinite
-% \raggedright
-% \hangindent1.5em \hangafter1
-% \leavevmode
-% \strut\hbox to 1.5em{\notenumfont\printlines#1|\hfil}\ignorespaces
-% {\select@lemmafont#1|#2}\rbracket\enskip
-% #3\strut\par\allowbreak}
-%
-% % And I'd like the 2-col notes printed with a double colon:
-% \def\doublecolon{{\rm\thinspace::\thinspace}}
-% \def\twocolfootfmt#1#2#3{%
-% \normal@pars
-% \hsize .45\hsize
-% \parindent=0pt
-% \tolerance=5000
-% \raggedright
-% \leavevmode
-% \strut{\notenumfont\printlines#1|}\enspace
-% {\select@lemmafont#1|#2}\doublecolon\enskip
-% #3\strut\par\allowbreak}
-%
-% % And in the paragraphed footnotes, I'd like a colon too:
-% \def\parafootfmt#1#2#3{%
-% \normal@pars
-% \parindent=0pt \parfillskip=0pt plus 1fil
-% {\notenumfont\printlines#1|}\enspace
-% {\select@lemmafont#1|#2}\spacedcolon\enskip
-% #3\penalty-10 }
-% \makeatother
-%
-% % I'd like the line numbers picked out in bold.
-% \let\notenumfont=\eightbf
-% \lineation{page}
-% \linenummargin{inner}
-% \firstlinenum=3 % just because I can
-% \linenumincrement=1
-% \foottwocol{A}
-% \footthreecol{B}
-% \footparagraph{E}
-% % I've changed \normalfootfmt, so invoke it again for C and D notes.
-% \footnormal{C}
-% \footnormal{D}
-%
-% \beginnumbering
-%
-% \pstart
-% This is an \text{example}
-% \Afootnote{eximemple C, D.}/
-% of some text with \text{variant}
-% \Afootnote{alternative, A, B.}/
-% readings recorded as `A' footnotes. From here on, \text{though}
-% \Afootnote{however $\alpha$, $\beta$}/,
-% we shall have \text{`C'}
-% \Bfootnote{B, {\it pace\/} the text}/.
-% \text{For spice, let us mark a longer passage, but give a different
-% lemma for it, so that we don't get a \text{huge}
-% \Dfootnote{vast E, F; note that this is
-% a `D' note to section of text within a longer lemma}/
-% amount of text in a note}\lemma{For spice \dots\ note}
-% \Cfootnote{The note here is type `C'}/.
-% \text{Finally}
-% \Efootnote{in the end X, Y}/,
-% \text{we}
-% \Efootnote{us K}/
-% \text{shouldn't}
-% \Efootnote{ought not to L, M}/
-% \text{forget the}
-% \Efootnote{omit to mention the \S, \P}/
-% \text{paragraphed}
-% \Efootnote{blocked M, N}/
-% \text{notes}
-% \Efootnote{variants HH, KK}/,
-% which are so \text{useful}
-% \Efootnote{truly useful L, P}/
-% when there are \text{a great number of}
-% \Efootnote{many, many (preferably)}/
-% short notes to be \text{recorded}
-% \Efootnote{noted: repetition}/.
-% \pend
-%
-% \pstart
-% This is a second paragraph, giving more {\it \text{examples}
-% \Afootnote{eximples L, M.}/}
-% of text with \text{variant}
-% \Afootnote{alternative, A, B.}/
-% readings recorded as `A' footnotes. From here on, \text{though}
-% \Bfootnote{however $\alpha$, $\beta$}/,
-% we shall have \text{`B'}
-% \Bfootnote{B, as correctly stated in the text}/ notes in the text.
-% \text{For spice, let us mark a longer passage, but give a different
-% lemma for it, so that we don't get a {\it \text{huge}
-% \Dfootnote{vast E, F; note that this is
-% a `D' note to text within a longer lemma.}/}
-% amount of text in a note}\lemma{For spice, \dots\ note}
-% \Cfootnote{This is a rogue note of type `C'.}/.
-% \text{Finally}
-% \Bfootnote{In the end X, Y}/,
-% \text{we}
-% \Bfootnote{we here K}/
-% \text{shouldn't}
-% \Bfootnote{ought not to L, M}/
-% \text{forget the}
-% \Bfootnote{omit to mention the \S, \P}/
-% \text{column}
-% \Bfootnote{blocked M, N}/
-% \text{notes}
-% \Bfootnote{variants H}/,
-% which are so \text{useful}
-% \Bfootnote{very, very useful L, P}/
-% when there are \text{many}
-% \Bfootnote{lots of Z}/
-% short notes to be \text{recorded}
-% \Bfootnote{recorded and put down: M (repetition)}/.
-% \pend
-%
-% \endnumbering
-% \bye
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-% \medskip
-%
-% \subsection{Gascoigne}
-% The first real-life example is taken from an edition of George
-% Gascoigne's\index{Gascoigne, George}
-% {\em A Hundreth Sundrie Flowres\/} that is being
-% prepared by G.~W.~Pigman III,\index{Pigman, III$^{rd}$, G. W.} at
-% the California Institute of Technology. Figure \ref{iocasta-out}
-% shows the result of setting the text with "EDMAC".
-% \begin{figure}[p]
-% \includegraphics{iocasta}
-% \vspace*{\textheight} ^^A supply artwork
-% \vspace*{-3\baselineskip}
-% \caption{Output from {\tt iocasta.tex}.}
-% \label{iocasta-out}
-% \end{figure}
-%
-% The main input file first calls for a file of initial
-% definitions, called "gg.tex". This file, shown below,
-% demonstrates how "EDMAC" macros may be customized to give
-% detailed control over the final format.
-% \medskip
-%
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% % parameters for edition of Gascoigne's
-% % {\it A Hundreth Sundrie Flowres}.
-% \ifx\ggloaded\relax\endinput\else\let\ggloaded=\relax\fi
-% \noendnotes
-% \makeatletter
-% %
-% \font\poemnumfont=cmmi12 \font\titlefont=cmr12 \font\ninerm=cmr9
-% \font\nineit=cmti9 \font\eightrm=cmr8
-% \let\headfont=\eightrm
-% \font\eightit=cmti8 \let\headit=\eightit \font\sixrm=cmr6
-% \font\foliofont=cmmi8 \let\os=\foliofont
-% \let\numlabfont=\foliofont
-% %
-% \firstsublinenum=1000
-% \hoffset=1.25in \voffset=1.25in \hsize=24pc \vsize=488pt
-% %
-% \frenchspacing \parskip=0pt \hyphenpenalty=1000
-% %
-% \def\makeheadline{\vbox to 0pt{\vskip-16.5pt
-% \line{\vbox to8.5pt{}\the\headline}\vss}\nointerlineskip}
-% \nopagenumbers
-% %
-% % Say \nolinenums if you want no line numbers in the notes.
-% \newif\ifnolinenums
-% \def\nolinenums{\global\nolinenumstrue}
-% \def\linenums{\global\nolinenumsfalse}
-% % Say \nopoemnum to suppress poem number in the notes.
-% \newif\ifpoemnum
-% \def\nopoemnum{\global\poemnumfalse}
-% % Say \nodbpoemnum to suppress poem number in the notes for
-% % poems with two numbers, e.g., 64 (v).
-% \newif\ifdbpoemnum
-% \def\nodbpoemnum{\global\dbpoemnumfalse}
-% % Say \noactnum to suppress act/scene numbers in the notes.
-% \newif\ifactnum
-% \def\noactnum{\global\actnumfalse}
-% %
-% \newcount\poemnumber
-% \def\poem#1{\poemnumber=#1\poemnumtrue\parindent=0pt
-% \centerline{{\poemnumfont#1}}\vskip12pt}
-% %
-% \newcount\dbpoemnumone \newcount\dbpoemnumtwo
-% \def\dbpoem#1#2{\dbpoemnumtrue\dbpoemnumone=#1\dbpoemnumtwo=#2
-% \parindent=0pt\par
-% \centerline{{\poemnumfont#1} {\titlefont
-% (\romannumeral#2)}}\nointerlineskip \vskip12pt}
-% %
-% \newcount\actnumber \newcount\scenenumber
-% \def\act #1 #2 #3{\actnumtrue\actnumber=#1\scenenumber=#2
-% \parindent=0pt\vskip24pt plus12pt minus3pt\hrule height0pt\relax
-% \pstart\startsub\centerline{\rm#3}\pend\endsub
-% \mark{{\os#1\fullstop #2}}\nobreak \vskip 12pt plus3pt minus3pt}
-% %
-% \def\rightlinenum{\ifbypage@\ifnum\line@num<10\kern.5em\fi\else
-% \ifnum\line@num<10\kern1em\else\ifnum\line@num<100
-% \kern.5em\fi\fi\fi\kern.5em\numlabfont\the\line@num
-% \ifnum\subline@num>0:\the\subline@num\fi}
-% \def\leftlinenum{\numlabfont\the\line@num
-% \ifnum\subline@num>0:\the\subline@num\fi \kern.5em}
-% \linenummargin{outer}
-% \lineation{page}
-% \def\ggfootfmt#1#2#3{%
-% \notefontsetup
-% \let\par=\endgraf
-% \rightskip=0pt \leftskip=0pt
-% \parindent=0pt \parfillskip=0pt plus 1fil
-% \ifnolinenums\relax\else
-% \begingroup \os \panums \printlines#1|\endgroup
-% \enskip
-% \fi
-% {\rm #2\def\@tempa{#2}\ifx\@tempa\empty
-% \else]\enskip\fi#3\penalty-10 }}
-% %
-% % \panums adds the poem number or act/scene number to a
-% % line number display when necessary.
-% %
-% \def\panums{%
-% \ifpoemnum % a poem
-% \the\poemnumber:%
-% \global\poemnumfalse
-% \fi
-% \ifdbpoemnum % a poem with two numbers
-% \the\dbpoemnumone\space
-% {\rm(\romannumeral\the\dbpoemnumtwo).}%
-% \global\dbpoemnumfalse
-% \fi
-% \ifactnum % a play (act/scene)
-% \the\actnumber:\the\scenenumber:%
-% \global\actnumfalse
-% \fi}
-% %
-% % Now reset the \Afootnote parameters and macros:
-% \footparagraph{A}
-% \let\Afootfmt=\ggfootfmt
-% \dimen\Afootins=\vsize
-% \skip\Afootins=3pt plus9pt
-% \def\ggfootstart#1{\vskip\skip\Afootins}
-% \let\Afootstart=\ggfootstart
-% \def\title{\pstart\startsub\let\par=\endtitle}
-% \def\endtitle{\pend\endsub}
-% \def\verseskip{\vskip6pt plus6pt}
-% \def\speaker#1{\pstart\parindent=1em\let\par=\pend
-% {\tenit{#1}}\hbox to 1ex{}\ignorespaces}
-% \def\sen{\leavevmode\lower1ex\hbox{\tenrm''}}
-% \def\senspeak#1{\pstart\obeylines\setbox0=\hbox{\tenrm''}%
-% \leavevmode
-% \lower1ex\copy0\kern-\wd0\hskip1em{\tenit{#1}}%
-% \hbox to1ex{}\ignorespaces}
-% \def\speak#1{\pstart\obeylines\hskip1em{\tenit{#1}}%
-% \hbox to1ex{}\ignorespaces}
-% \def\nospeaker{\parindent=0em\pstart\let\par=\pend}
-% \def\nospeak{\pstart\obeylines}
-% \def\stage#1{\pstart\startsub\parindent=0pt
-% \hangindent=3em\hangafter=0
-% {\tenit#1}\let\par=\endstage}
-% \let\endstage=\endtitle
-% \def\motto#1{\pstart\startsub\centerline{{\tenit#1}}\pend\endsub}
-% \def\finis#1{\pstart\startsub\smallskip\centerline{{\tenit#1}}
-% \let\par=\endfinis}
-% \let\endfinis=\endtitle
-% \def\initials#1{\pstart\line{\hfil{\it #1}\quad}\let\par=\pend}
-% \makeatother
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-% \medskip
-%
-% With these definitions, the actual input file,
-% "iocasta.tex", is relatively simple:
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% \input edmac.doc
-% \input gg
-% \parindent=0pt
-% \pageno=73
-% \mark{{\os2:1}}
-% \headline={\ifnum\pageno>61\ifodd\pageno
-% \rlap{\foliofont\botmark}\hfil\headfont
-% IOCASTA\hfil\llap{\foliofont\folio}%
-% \else
-% \rlap{\foliofont\folio}\hfil\headfont
-% IOCASTA\hfil\llap{\foliofont\botmark}\fi
-% \else\hfil\fi}
-%
-% \beginnumbering
-%
-% \stage{Oedipus \text{entreth}\Afootnote{{\it intrat} MS}/.}
-%
-% \nospeak
-% Or that with wrong the right and doubtlesse heire,
-% Shoulde banisht be out of his princely seate.
-% Yet thou O queene, so fyle thy sugred toung,
-% And with suche counsell decke thy mothers tale,
-% That peace may bothe the brothers heartes inflame,
-% And rancour yelde, that erst possest the same.
-% \pend
-%
-% \speak{Eteocl.} Mother, beholde, youre hestes for to obey,
-% In person nowe am I resorted hither:
-% In haste therefore, fayne woulde I knowe what cause
-% With hastie speede, so moued hath your mynde
-% To call me nowe so causelesse out of tyme,
-% When common wealth moste craues my onely ayde:
-% Fayne woulde I knowe, what queynt commoditie
-% Persuades you thus to take a truce for tyme,
-% And yelde the gates wide open to my foe,
-% The gates that myght our stately state defende,
-% And nowe are made the path of our decay.
-% \pend
-%
-% \senspeak{Ioca.}Represse deare son, those raging stormes of wrath,
-% \sen That so bedimme the eyes of thine intente,
-% \text{\sen As when \text{the}\Afootnote{thie MS}/ tongue %
-% (a redy Instrument)
-% \sen Would \text{fayne pronounce}\Afootnote{faynest tell MS}/ %
-% the meaning of \text{the minde}\Afootnote{thy minde MS}/,
-% \sen \text{It}\lemma{It \dots\ worde.}\Afootnote{Thie %
-% swelling hart puft vp with wicked ire / Can scarce pronounce %
-% one inward louing thought. MS}/ cannot speake one honest %
-% seemely worde.}\lemma{As \dots\ worde.}\Afootnote{{\it not %
-% in\/} \os73}/
-% \sen But when disdayne is shrunke, or sette asyde,
-% \sen And mynde of man with leysure can discourse
-% \sen What seemely woordes his tale may best beseeme,
-% \sen And that the toung vnfoldes without affectes
-% \sen Then may proceede an answere sage and graue,
-% \sen And euery sentence sawst with sobernesse:
-% Wherefore vnbende thyne angrie browes deare chylde,
-% And caste thy rolling eyes none other waye,
-% That here doost not \text{{\it Medusaes\/}}%
-% \Afootnote{One of the furies. {\os75}m}/ face beholde,
-% But him, euen him, thy blood and brother deare.
-% And thou beholde, my {\it Polinices\/} eke,
-% Thy brothers face, wherin when thou mayst see
-% Thine owne image, remember therwithall,
-% That what offence thou woldst to him were done,
-% \pend
-% \endnumbering
-% \bye
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-%
-% \subsection{Shakespeare}
-% The following text illustrates another input file of moderate
-% complexity, with two layers of annotation in use. The example is
-% taken from the Arden {\em Merchant of Venice}.\index{Shakespeare, William}
-% First, the file "arden.sty" contains a set of font
-% definitions and format specifications:
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% \makeatletter
-%
-% % Macros for the edition:
-% \def\stage#1{\rlap{\hbox to \the\linenumsep{%
-% \hfil\llap{[{\it#1\/}]}}}}
-% \def\speaker#1{\pstart\hangindent2em\hangafter1
-% \leavevmode{\it#1}\enspace\ignorespaces}
-% \def\\{\hfil\break}
-% \def\exit#1{\hfill\stage{#1}}
-%
-% % EDMAC customizations:
-% \noendnotes \vsize 40pc \hsize 23pc \parindent 0pt
-% \linenumsep=.4in \rightskip\linenumsep
-% \def\interparanoteglue{1em plus.5em minus.1em}
-%
-% \catcode`\<=\active
-% \def\xtext#1#2>{\text{#1}{#2}/}
-% \let<=\xtext
-%
-% \let\numlabfont=\eighti
-% \let\sc=\fiverm
-% \let\Afootnoterule=\relax \let\Bfootnoterule=\relax
-% \footline={\hfil}
-% \def\rightlinenum{\numlabfont\llap{\the\line@num}}
-% \pageno=46
-% \headline={\eightpoint{\teni\folio}\hfil
-% THE MERCHANT OF VENICE\hfil [ACT II}
-% \cropsetup{8in}{5in}{3.5pc}{3pc}
-% \hoffset=.75in \voffset=.9375in
-% \frenchspacing
-%
-% % Footnote formats:
-% % \nonumparafootfmt is a footnote format without line numbers.
-% \def\nonumparafootfmt#1#2#3{%
-% \normal@pars
-% \rightskip=0pt
-% \parindent=0pt \parfillskip=0pt plus 1fil
-% \select@lemmafont#1|#2\rbracket\enskip
-% \it#3\penalty-10 }
-% \def\newparafootfmt#1#2#3{%
-% \normal@pars
-% \parindent=0pt \parfillskip=0pt plus 1fil
-% {\notenumfont\printlines#1|}\fullstop\enspace
-% {\select@lemmafont#1|#2}\rbracket\enskip
-% \it#3\penalty-10 }
-% \def\newtwocolfootfmt#1#2#3{%
-% \normal@pars
-% \hsize .48\hsize
-% \tolerance=5000
-% \rightskip=0pt \leftskip=0pt \parindent=5pt
-% \strut\notenumfont\printlines#1|\fullstop\enspace
-% \it#2\/\rbracket\penalty100\hskip .5em plus .5em
-% \rm#3\strut\goodbreak}
-%
-% % Footnote style selections etc. (done last):
-% \footparagraph{A}
-% \foottwocol{B}
-% \let\Afootfmt=\newparafootfmt
-% \let\Bfootfmt=\newtwocolfootfmt
-% \let\collation=\Afootnote
-% \let\note=\Bfootnote
-% \lineation{section}
-% \linenummargin{right}
-% \makeatother
-% \end{verbatim}
-% \end{small}
-% \begin{figure}[p]
-% \includegraphics{arden}
-% \vspace*{\textheight} ^^A supply artwork
-% \vspace*{-3\baselineskip}
-% \caption{Output of the Arden text.}
-% \label{arden-out}
-% \end{figure}
-% \medskip
-% \hrule
-% \medskip
-%
-% The Arden text, using the above definitions, is input as follows
-% (the output is shown in Figure \ref{arden-out}):
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% \input edmac.doc
-% \input arden.sty
-%
-% % Initially, we don't want line numbers.
-% \let\Afootfmt=\nonumparafootfmt
-%
-% \beginnumbering
-% \pstart
-% \centerline{[<{SCENE III}
-% \lemma{Scene III}
-% \collation{Capell; om. Q, F; {\rm Scene IV} Pope.}>.---%
-% <{\it Venice}
-% \collation{om. Q, F; Shylock's house Theobald; The same.
-% A Room in Shylock's House Capell.}>.]}
-% \pend
-% \bigskip
-%
-% \pstart
-% \centerline{\it Enter\/ {\rm JESSICA} and\/
-% {\rm [<{LAUNCELOT}
-% \lemma{Launcelot}
-% \collation{Rowe; om. Q, F.}>]} the clown.} \pend \bigskip
-%
-% \let\Afootfmt=\newparafootfmt % we do want line numbers from now
-%
-% \setline{0}%
-%
-% \speaker{Jes.}<{I am}
-% \collation{Q, F; {\rm I'm} Pope.}>
-% sorry thou wilt leave my father so,\\
-% Our house is hell, and thou (a merry devil)\\
-% Didst rob it of some taste of tediousness,---\\
-% But fare thee well, there is a ducat for thee,\\
-% And Launcelot, <{soon}
-% \note{early.}>
-% at supper shalt thou see\\
-% Lorenzo, who is thy new master's guest,\\
-% Give him this letter,---do it secretly,---\\
-% And so farewell: I would not have my father\\
-% See me <{in}
-% \collation{Q; om. F.}>
-% talk with thee.
-% \pend
-%
-% \speaker{Laun.}
-% <{}\lemma{\it Laun.}\collation{Q2; Clowne. Q, F.}>%
-% <{Adieu!}
-% \collation{{\rm Adiew}, Q, F.}>
-% tears <{exhibit}
-% \note{Eccles paraphrased ``My tears serve to express what my
-% tongue should, if sorrow would permit it,'' but probably it is
-% Launce\-lot's blunder for prohibit (Halliwell) or inhibit
-% (Clarendon).}>
-% my tongue, most beautiful <{pagan}
-% \note{This may have a scurrilous undertone: cf. {\it 2 H 4,}
-% \sc II. \rm ii. 168.}>%
-% , most sweet <{Jew!}
-% \collation{{\rm Iewe}, Q, F. \quad {\rm do]} Q, F;
-% {\rm did} F2.}>%
-% ---if a Christian <{do}
-% \note{Malone upheld the reading of Qq and F by comparing \sc
-% II. \rm vi. 23: ``When you shall please to play the thieves for
-% wives''; Launcelot seems fond of hinting at what is going to
-% happen (cf. \sc II. \rm v. 22--3). If F2's ``did'' is accepted,
-% {\it get\/} is used for beget, as in \sc III. \rm v. 9.}>
-% not play the knave and get thee, I am much deceived; but <{adieu!}
-% \collation{{\rm adiew}, Q, F.}>
-% these <{foolish drops do \text{something}
-% \collation{Q; {\rm somewhat} F.}/
-% drown my manly spirit}
-% \lemma{foolish{\rm\dots}spirit}
-% \note{``tears do not become a man'' (\it AYL., \sc III. \rm
-% iv. 3); cf. also \it H 5, \sc IV. \rm vi. 28--32.}>%
-% : <{adieu!}
-% \collation{{\rm adiew}. Q, F. \quad {\rm S. D.]} Q2, F; om. Q;
-% after l. 15 Capell.}>
-% \exit{Exit.}
-% \pend
-%
-% \speaker{Jes.}
-% Farewell good Launcelot.\\
-% Alack, what heinous sin is it in me\\
-% To be ashamed to be my father's <{child!}
-% \collation{{\rm child}, Q, F; {\rm Child?} Rowe.}>
-% \pend
-% \endnumbering
-% \bye
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-%
-% \subsection{Classical text edition}
-% The next example, which was extracted from a longer file kindly
-% supplied by Wayne Sullivan,\index{Sullivan, Wayne} University
-% College, Dublin, Ireland, illustrates the use of "EDMAC" to
-% produce a Latin text edition, the {\em Periphyseon}, with Greek
-% passages.\footnote{The bibliographic details of the forthcoming book
-% are: Iohannis Scotti Erivgenae, {\it Periphyseon} ({\it De
-% Diuisione Naturae\/}) Liber Qvartvs [Scriptores Latini Hiberniae
-% vol.\,xii], (Dublin: School of Celtic Studies, Dublin Institute
-% for Advanced Studies, forthcoming 1992).} The Greek font used is
-% that prepared by Silvio Levy\index{Levy, Silvio} and described in {\em
-% TUGboat}.\footnote{{\em TUGboat\/} {\bf 9} (1988), pp.\,20--24.} The
-% output of this file is shown in Figure~\ref{periphyseon-out}.
-% Note the use of two layers of footnotes to record testimonia and
-% manuscript readings respectively.
-%
-% \begin{figure}[p]
-% \includegraphics{periph4}
-% \vspace*{\textheight} ^^A supply artwork
-% \vspace*{-3\baselineskip}
-% \caption{Output of the {\em Periphyseon, Liber IV}.}
-% \label{periphyseon-out}
-% \end{figure}
-%
-% The following "EDMAC" customizations are loaded initially, as
-% file "slhh.tex":
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% \overfullrule0 pt
-% \hsize=25pc
-% \vsize=44pc
-% \lefthyphenmin=3
-% %\overfullrule=0pt
-% \input greekmac
-% \greekdelims
-% \input edmac.doc
-% \makeatletter
-% \newbox\lp@rbox
-% % We need an addition to \no@expands since the \active $ in greekmac
-% % causes problems:
-% \def\morenoexpands{\let$=0}
-%
-% \def\ffootnote#1{%
-% \ifnumberedpar@
-% \xright@appenditem{\noexpand\vffootnote{f}{{\@nums}{\@tag}{#1}}}%
-% \to\inserts@list
-% \global\advance\insert@count by 1
-% % \else %% may be used only in numbered text
-% % \vffootnote{f}{{0|0|0|0|0|0|0}{}{#1}}%
-% \fi\ignorespaces}
-% \def\gfootnote#1{%
-% \ifnumberedpar@
-% \xright@appenditem{\noexpand\vgfootnote{g}{#1}}%
-% \to\inserts@list
-% \global\advance\insert@count by 1
-% % \else %% may be used only in numbered text
-% % \vgfootnote{g}{#1}%
-% \fi\ignorespaces}
-% \def\raggedleft{\leftskip\z@% This is a hack; doubtless there are better ways.
-% plus5em\spaceskip.3333em\xspaceskip.5em\parfillskip\z@\relax}
-% \def\setlp@rbox#1#2#3{%
-% {\parindent\z@\hsize=2.5cm\raggedleft\eightpoint
-% \baselineskip 9pt%
-% \global\setbox\lp@rbox=\vbox to\z@{\vss#3}}}
-% \def\vffootnote#1#2{\setlp@rbox#2}
-% \def\vgfootnote#1#2{\def\rd@ta{#2}}
-% \def\do@line{%
-% {\vbadness=10000 \splittopskip=0pt
-% \gdef\rd@ta{}% for right margin paragraph->always a few characters
-% \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
-% \unvbox\one@line \global\setbox\one@line=\lastbox
-% \getline@num
-% \hbox to\hsize{\affixline@num\add@inserts\hbox to\z@% inserts added here so
-% {\hss\box\lp@rbox\kern\linenumsep}% that margin pars are
-% \hfil\hbox to\wd\one@line{\new@line\unhbox\one@line% included.
-% \hbox to\z@{\kern\linenumsep\notenumfont\rd@ta\hss}}}%
-% \add@penalties} % margin pars also included in line format
-% \def\affixline@num{%
-% \ifsublines@
-% \@tempcntb=\subline@num
-% \ifnum\subline@num>\firstsublinenum
-% \@tempcnta=\subline@num
-% \advance\@tempcnta by-\firstsublinenum
-% \divide\@tempcnta by\sublinenumincrement
-% \multiply\@tempcnta by\sublinenumincrement
-% \advance\@tempcnta by\firstsublinenum
-% \else
-% \@tempcnta=\firstsublinenum
-% \fi
-% %
-% \ifcase\sub@lock
-% \or
-% \ifnum\sublock@disp=1
-% \@tempcntb=0 \@tempcnta=1
-% \fi
-% \or
-% \ifnum\sublock@disp=2 \else
-% \@tempcntb=0 \@tempcnta=1
-% \fi
-% \or
-% \ifnum\sublock@disp=0
-% \@tempcntb=0 \@tempcnta=1
-% \fi
-% \fi
-% \else
-% \@tempcntb=\line@num
-% \ifnum\line@num>\firstlinenum
-% \@tempcnta=\line@num
-% \advance\@tempcnta by-\firstlinenum
-% \divide\@tempcnta by\linenumincrement
-% \multiply\@tempcnta by\linenumincrement
-% \advance\@tempcnta by\firstlinenum
-% \else
-% \@tempcnta=\firstlinenum
-% \fi
-% \ifcase\@lock
-% \or
-% \ifnum\lock@disp=1
-% \@tempcntb=0 \@tempcnta=1
-% \fi
-% \or
-% \ifnum\lock@disp=2 \else
-% \@tempcntb=0 \@tempcnta=1
-% \fi
-% \or
-% \ifnum\lock@disp=0
-% \@tempcntb=0 \@tempcnta=1
-% \fi
-% \fi
-% \fi
-% %
-% \ifnum\@tempcnta=\@tempcntb
-% \@tempcntb=\line@margin
-% \ifnum\@tempcntb>1
-% \advance\@tempcntb by\page@num
-% \fi
-% \ifodd\@tempcntb
-% % #1\rlap{{\rightlinenum}}%
-% \xdef\rd@ta{\the\line@num}%
-% \else
-% \llap{{\leftlinenum}}%#1%
-% \fi
-% \else
-% %#1%
-% \fi
-% \ifcase\@lock
-% \or
-% \global\@lock=2
-% \or \or
-% \global\@lock=0
-% \fi
-% \ifcase\sub@lock
-% \or
-% \global\sub@lock=2
-% \or \or
-% \global\sub@lock=0
-% \fi}
-% %
-% % We want to include a small Greek font in the definition
-% % of \eightpoint:
-% \let\oldeightpoint=\eightpoint
-% \font\eightgr=grreg8
-% \def\eightpoint{\oldeightpoint\let\tengr=\eightgr}
-% \output{\advancepageno\edmac@output} % even page numbers
-% \lineation{page}
-% \linenummargin{right}
-% \footparagraph{A}
-% \footparagraph{B}
-% \let\notenumfont=\eightrm
-% \let\notetextfont=\eightpoint
-% \let\Afootnoterule=\relax
-% \count\Afootins=825
-% \count\Bfootins=825
-% \def\Aparafootfmt#1#2#3{%
-% \normal@pars\eightpoint
-% \parindent=0pt \parfillskip=0pt plus1fil
-% \notenumfont\printlines#1|\enspace
-% % \lemmafont#1|#2\enskip
-% \notetextfont
-% #3\penalty-10\hskip 1em plus 4em minus.4em\relax}
-% \def\Bparafootfmt#1#2#3{%
-% \normal@pars\eightpoint
-% \parindent=0pt \parfillskip=0pt plus1fil
-% \notenumfont\printlines#1|\enspace
-% \select@lemmafont#1|#2\rbracket\enskip
-% \notetextfont
-% #3\penalty-10\hskip 1em plus 4em minus.4em\relax }
-% \makeatother
-% \let\Afootfmt=\Aparafootfmt
-% \let\Bfootfmt=\Bparafootfmt
-% \def\lemmafont#1|#2|#3|#4|#5|#6|#7|{\eightpoint}
-% \headline={\hfil\tenit Periphyseon, Liber IV\hfil}
-% \voffset=1in
-% \hoffset=1in
-% \parindent=1em
-% \def\lmarpar#1{\text{}\ffootnote{#1}/}
-% \def\rmarpar#1{\text{}\gfootnote{#1}/}
-% \emergencystretch40pt
-% \cropsetup{24.5cm}{15.5cm}{1.5cm}{2.1cm}
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-% \medskip
-%
-% The file "periph4.tex" then inputs the above definitions, and
-% proceeds with the main text:
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% \input slhh
-%
-% \beginnumbering
-% \pstart
-% \rmarpar{741C}
-% \noindent \text{Incipit Quartus $PERIFUSEWN$}%
-% \lemma{incipit\ .~.~.\ $PERIFUSEWN$}\Bfootnote{{\it om.\ R},
-% incipit quartus {\it M}}/
-% \pend
-% \medskip
-%
-% \pstart
-% \noindent \text{NVTRITOR}\lemma{$ANAKEFALIOSIS$}\Bfootnote{{\it
-% FJP, lege\/} $<anakefala'iwsis$}/.\lmarpar{$ANAKEFALIOSIS$
-% NATVRARVM} Prima nostrae
-% \text{Physiologiae}\lemma{physiologiae}\Bfootnote{phisiologiae
-% {\it P}, physeologiae {\it R}}/ intentio praecipuaque mat\-e\-ria
-% erat \text{quod}\Bfootnote{{\it p}.\ natura {\it transp.\ MR}}/
-% \text{$UPEROUSIADES$}\Bfootnote{{\it codd.\ Vtrum\/}
-% $<uperousi'wdhs$ (hoc est superessentialis) natura {\it cum Gale
-% (p.160) an\/} $<uperousi'oths$ (hoc est superessentialis natura)
-% {\it cum Floss (PL 122,741C) intelligendum sit, ambigitur}}/ (hoc
-% est superessentialis) natura sit causa creatrix existentium et
-% non existentium omnium, a nullo creata, unum principium, una
-% origo, unus et uniuersalis uniuersorum fons, a nullo manans, dum
-% ab eo manant omnia, trinitas coessentialis in tribus substantiis,
-% $ANARQOS$ (hoc est sine principio), principium et finis, una
-% bonitas, deus unus, \text{$OMOUSIOS$}\Bfootnote{{\it codd.,
-% lege\/} $<omoo'usios$}/ \text{et}\lemma{{\bf et}}\Bfootnote{{\it
-% R}\math^{\rm 1}\math, {\it om.\ R}\math^{\rm 0}\math}/
-% $UPEROUSIOS$ (id est coessentialis et superessentialis). Et, ut
-% ait sanctus Epifanius, episcopus Constantiae Cypri, in
-% \text{$AGKURATW$}\Bfootnote{anchurato {\it MR}}/ sermone \text{de
-% fide}\Bfootnote{Glo\math\langle\math ssa\math\rangle\math: Ita
-% enim uocatur sermo eius de fide $AGKURATOS$, id est procuratus
-% {\it mg.\ add.\ FJP}}/: {\it Tria sancta, tria consancta, tria
-% \text{agentia}\Bfootnote{actiua {\it MR}}/, tria coagentia, tria
-% \text{formantia}\Bfootnote{formatiua {\it MR}}/, tria
-% conformantia, tria \text{operantia}\Bfootnote{operatiua {\it
-% MR}}/, tria cooperantia, tria subsistentia, tria}\rmarpar{742C}
-% {\it consubsistentia sibi inuicem coexistentia. Trinitas haec
-% sancta uocatur: tria existentia, una consonantia, una deitas
-% \text{eiusdem}\Bfootnote{eiusdemque {\it M}}/ essentiae,
-% \text{eiusdem uirtutis, eiusdem
-% \text{subsistentiae}{\Bfootnote{substantiae {\it R}}}/}%
-% \Bfootnote{{\it om.\ M}}/, similia \text{similiter}\Bfootnote{ex
-% simili {\it MR}}/ aequalitatem gratiae operantur patris et filii
-% et sancti spiritus. Quomodo autem \text{sunt}\Bfootnote{{\it om.\
-% M}}/, ipsis relinquitur docere: \text{`Nemo enim nouit patrem
-% nisi filius, neque filium nisi pater, et cuicumque filius
-% reuelauerit'}\Afootnote{Matth.\ 11, 27}/; reuelatur autem per
-% spiritum sanctum. Non ergo haec tria existentia aut ex ipso aut
-% per ipsum aut ad ipsum in unoquoque digne intelliguntur,
-% \math\mid\! R, 264^{\rm r}\!\mid\math\ sicut ipsa reuelant:\/}
-% $FWS, PUR, PNEUMA$ \text{(hoc est lux, ignis,
-% spiritus)}\Afootnote{EPIPHANIVS, {\it Ancoratus\/} 67; PG~43,
-% 137C--140A; GCS 25, p.~82, 2--12}/.
-% \pend
-%
-% \pstart
-% Haec, ut dixi, ab Epifanio tradita, ut quisquis interrogatus quae
-% tria et quid unum in sancta trinitate debeat credere, sana fide
-% \math\!\mid J, 1^{\rm v}\!\mid\math\ respondere ualeat, aut ad
-% fidem accedens\rmarpar{743A} sic erudiatur. Et mihi uidetur
-% spiritum pro calore posuisse, quasi dixisset in similitudine:
-% lux, ignis, calor. Haec enim tria unius essentiae sunt. Sed cur
-% lucem primo dixit, non est mirum. Nam et pater lux est et ignis
-% et calor; et filius est lux, ignis, calor; et \text{spiritus
-% sanctus}\Bfootnote{sanctus spiritus {\it R}}/ lux, ignis, calor.
-% Illuminat enim pater, illuminat filius, illuminat spiritus
-% sanctus: ex ipsis enim omnis scientia et sapientia donatur.
-% \pend
-% \endnumbering
-% \bye
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-%
-% \subsection{Arabic text edition}
-% Recent developments in Klaus Lagally's\index{Lagally, Klaus} Arab\TeX\
-% package have meant that
-% now Arab\TeX\ and "EDMAC" can work smoothly together.\footnote{These
-% changes are available in versions of Arab\TeX\ from 2.08,
-% March/April 1993\@. The Arab\TeX\ system is available from its author's
-% institution (by anonymous "ftp" from
-% "<URL ftp://ifi.informatik.uni-stuttgart.de/pub/arabtex/>"
-% and from many other network sites.} This will
-% be welcome news indeed to all frustrated editors of Arabic texts!
-%
-% As a taster, Klaus has kindly supplied Figure \ref{arabtex}, a test page
-% which shows off the joint capabilities of Arab\TeX\ and "EDMAC".
-%
-% \begin{figure}[p]
-% \includegraphics{arabic}
-% \vspace*{\textheight} ^^A supply artwork
-% \vspace*{-3\baselineskip}
-% \caption{Arabic edition of some instructions for using a post office.}
-% \label{arabtex}
-% \end{figure}
-%
-% \subsection{Sanskrit text edition}
-% Finally, Figure \ref{vyadi} shows an example from an edition of a
-% Sanskrit text on P\=a\d ninian grammar that uses Frans
-% Velthuis's\index{Velthuis, Frans} excellent Devan\=agar\=\i\
-% font.\footnote{Now published as Dominik Wujastyk, {\em Metarules
-% of P\=a\d{n}inian Grammar: The {\em
-% Vy\=a\d{d}\=\i ya\-paribh\=a\d{s}\=a\-v\d{r}tti\/}
-% critically edited with translation and commentary\/} 2 vols.\
-% (Groningen: Forsten, 1993).}
-%
-% I have not shown the input file for this because I almost
-% never looked at it myself. The edition records a large number of
-% variants, and there are frequent font and script changes.
-% Preparing this purely manually would have been very error-prone.
-% In fact, the text was prepared using a word processor (XyWrite
-% III+) which had the ability to fold footnotes out of sight. I
-% designed custom Indic fonts for my computer screen, so that I
-% could see all the diacritical marks on accented characters as I
-% typed.
-%
-% \begin{figure}[p]
-% \includegraphics{sanskrit}
-% \vspace*{\textheight} ^^A supply artwork
-% \vspace*{-3\baselineskip}
-% \caption{Sanskrit edition of a grammatical text.}
-% \label{vyadi}
-% \end{figure}
-%
-% Font changes were invoked visually using the standard
-% facilities of the word processor, so the perennial ``missing
-% closing brace'' hardly ever arose. A short text filter
-% program changed the word processor file into correctly tagged
-% "EDMAC" input, and another filter program (provided by
-% Velthuis) did some special processing on the Devan\=agar\=\i\
-% strings. This combination of tools proved very workable and no
-% major problems were encountered.
-%
-% The following "EDMAC" customizations are typical of the sort
-% of changes needed to use Sanskrit with the Devan\=agar\=\i\ font:
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \label{fam-fiddle}
-% \begin{verbatim}
-% @dolmode3 % for the Devanagari pre-processor
-% \input dnmacs.tex % special macros for Devanagari font
-% \input edmac.doc
-% %
-% \makeatletter
-% %
-% \def\notefontsetup{\eightpoint\dnsmall\dn}
-% \footparagraph{A}
-% \firstlinenum=1
-% \def\variant#1#2{\text{#1}\Afootnote{#2}/}
-% %
-% % Now we set up \select@lemmafont to recognize Sanskrit:
-% %
-% \newfam\skt % \fam 8 (plain.tex defines 0--7; TeXbook p.351.)
-% \def\san{\fam\skt \dn}
-% \def\select@lemmafont#1|#2|#3|#4|#5|#6|#7|{%
-% \ifcase#7
-% \rm \or \rm \or \rm \or \rm % fams 0--3
-% \or \it \or \sl \or \bf \or \tt % fams 4--7
-% \or \san % Devanagari for \fam 8
-% \else \rm
-% \fi}
-% %
-% \makeatother
-% %
-% % And then the text:
-% $ % for the Devanagari pre-processor
-% \beginnumbering
-% \san
-% \autopar
-%
-% aasiidraajaa \variant{nalo}{ki.mcidanyat ka, kha} naama
-% viirasenasuto balii|
-%
-% \endnumbering
-% $ % for the Devanagari pre-processor
-% \bye
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-% \medskip
-%
-% \label{multinotes}
-% You may have noticed that in the apparatus of the Sanskrit edition shown
-% in figure~\ref{vyadi}, the line numbers are printed only once, even if
-% there are several variants on a line. Multiple notes to the same line
-% are separated by a $\parallel$ sign. We mentioned on
-% p.\,\pageref{parallel} above how, in principle, this could be done. Here
-% is the modified version of "\printlines" that actually does it (the
-% original is on p.\,\pageref{printlines} above).
-%
-% \medskip
-% \hrule
-% \medskip
-% \begin{small}
-% \begin{verbatim}
-% % First, define the symbol that will print instead of a repeated line
-% % number:
-% %
-% \def\notenumsep{$\parallel$}
-% %
-% % Now the macro which prints the line numbers for a note.
-% % It is modified here so that notes to the same line do not repeat
-% % the line number, but print a "||" instead.
-% %
-% % Just a reminder that the seven parameters of the
-% % argument are the line numbers as stored in "\@nums":
-% % #1 the starting page,
-% % #2 line, and
-% % #3 subline numbers, followed by the
-% % #4 ending page,
-% % #5 line, and
-% % #6 subline numbers, and then the
-% % #7 font-family number for the lemma.
-% %
-% % Although there's no counter for the line number, because it's always
-% % printed, we define a counter that keeps track of the previously printed
-% % line number, so that we can stop line numbers being repeated in the
-% % notes if they are all the same.
-% %
-% \newcount\previous@note@number
-% %
-% % The beginning of the \printlines macro is just the same as the original
-% % defined by EDMAC (q.v. for commentary):
-% %
-% \def\printlines#1|#2|#3|#4|#5|#6|#7|{\begingroup
-% \@pnum=0 \@dash=0
-% \ifbypage@
-% \ifnum#4=#1 \else
-% \@pnum=1
-% \@dash=1
-% \fi
-% \fi
-% \@elin=\@pnum
-% \ifnum#2=#5 \else
-% \@elin=1
-% \@dash=1
-% \fi
-% \@ssub=0
-% \ifnum#3=0 \else
-% \@ssub=1
-% \fi
-% \@esl=0
-% \ifnum#6=0 \else
-% \ifnum#6=#3
-% \@esl=\@elin
-% \else
-% \@esl=1
-% \@dash=1
-% \fi
-% \fi
-% %
-% % Here come our modifications. We're ready to print the various numbers,
-% % based on our counter values, but the first thing we do is to compare the
-% % current line number (parameter #2) with the last line number to have
-% % been printed. If they are the same, we print the \notenumsep siglum; if
-% % not, we go ahead and print the actual line number. (Note that this does
-% % not cope with cases of multiple sub-line numbered notes to the same
-% % line; more checks would be needed if that situation were likely to
-% % arise.)
-%
-% \ifnum\previous@note@number = #2
-% \ifodd\@elin % there is a different ending line number
-% #2%
-% \else
-% \notenumsep
-% \fi
-% \else
-% \ifodd\@pnum #1\fullstop\fi
-% #2% The (starting) line number
-% \fi
-% \ifodd\@ssub \fullstop #3\fi
-% \ifodd\@dash \endashchar\fi
-% \ifodd\@pnum #4\fullstop\fi
-% \ifodd\@elin #5\fi
-% \ifodd\@esl \ifodd\@elin\fullstop\fi #6\fi
-% %
-% % Now we record the number that has been printed, for comparison
-% % next time \printlines is called:
-% %
-% \global\previous@note@number=#2
-% %
-% \endgroup}
-% \end{verbatim}
-% \end{small}
-% \medskip
-% \hrule
-% \medskip
-% \Finale
-% \endinput
-\endinput
-
|