diff options
author | Karl Berry <karl@freefriends.org> | 2022-12-05 21:23:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-12-05 21:23:48 +0000 |
commit | 5caccaedbc1e667bc6c77cd4121b3aa42fd0cbba (patch) | |
tree | 3d19f3653011e84771abf1ed211ea3e6896d22f9 /Master/texmf-dist/tex/latex/lineno/edtable.sty | |
parent | 6afd51ad6a48b892314f157f8d551c84dead3dec (diff) |
lineno (5dec22)
git-svn-id: svn://tug.org/texlive/trunk@65204 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/lineno/edtable.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lineno/edtable.sty | 996 |
1 files changed, 498 insertions, 498 deletions
diff --git a/Master/texmf-dist/tex/latex/lineno/edtable.sty b/Master/texmf-dist/tex/latex/lineno/edtable.sty index 206347539e7..3d16a9c7220 100644 --- a/Master/texmf-dist/tex/latex/lineno/edtable.sty +++ b/Master/texmf-dist/tex/latex/lineno/edtable.sty @@ -1,571 +1,571 @@ -%% `edtable.sty'---Uwe L"uck, direction Christian Tapp. -%% LaTeX package for tables with line numbers and -%% editorial notes. -%% -%% Copyright (C) 2003-2005 Uwe L"uck--author-maintained. -%% -\def\fileversion{1.3c} \def\filedate{2005/10/03} -%% -%% This file can be redistributed and/or modified under -%% the terms of the LaTeX Project Public License; either +%% `edtable.sty'---Uwe L"uck, direction Christian Tapp. +%% LaTeX package for tables with line numbers and +%% editorial notes. +%% +%% Copyright (C) 2003-2005 Uwe L"uck--author-maintained. +%% +\def\fileversion{1.3c} \def\filedate{2005/10/03} +%% +%% This file can be redistributed and/or modified under +%% the terms of the LaTeX Project Public License; either %% version 1.3 of the License, or any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt -%% We did our best to help you, but there is NO WARRANTY. -%% -%% Please send your comments via -%% -%% http://www.contact-ednotes.sty.de.vu -%% -%% * USAGE: * -% -% *Requirements/overview:* -% -% The package is made for the background of the LaTeX2e macro -% package and enhances functionality of the following packages: -% 1.) Stephan I. B"ottcher's `lineno.sty' for printing line -% numbers in the margin and a \label version \linelabel -% relating labels to line numbers; -% 2.) our `ednotes.sty' for indicating variant readings and -% other editorial remarks in separate footnote apparatuses; -% 3.) David Carlisle's `longtable.sty' for multi-page tables. -% %% TODO: supertabular etc.!? -% 4.) our `ltabptch.sty' for a patch of `longtable.sty' -% (i.e., optionally, see below). -% -% Actually, only the first package is necessary for using the -% present one. The present one needs your line numbering commands -% according to the first one and its documentation to which we -% refer here. We likewise refer to the remaining packages for the -% details of their functionality. -% -% `lineno.sty' version 4.1 and (in case it is used) `ednotes.sty' -% version 0.8 (onwards) are needed. For obtaining recent versions -% of required packages, see the CTAN folder -% /macros/latex/contrib/ednotes. -% -% *Install/load:* -% 1.) To be used, the present file must be put into a folder -% that (La)TeX searches. You should have obtained a file -% containing more detailed hints about this. -% 2.) We recommend loading this file *not* by -% \usepackage[<options>]{edtable} but by loading `lineno.sty' -% or `ednotes.sty' with package option `edtable'. -% 3.) To use the package options `longtable' and -% `nolongtablepatch' that are described below, enter them -% as options for `lineno.sty' or `ednotes.sty'. -% -% *User Commands:* -% -% 1. The package defines an environment `edtable' -- for its -% syntax we consider two cases: -% (a) Let <stdtable> be a tabular environment "like `tabular'". -% "Like" here means: (i) we have tested it with `tabular', but -% it should work with many more (e.g., from the `array' and -% `tabularx' packages) -- which share certain properties of -% implementation and requirements. Sorry, you must try, or we -% hope you will (and tell us). (For wizards: <stdtable> may -% probably be anything using a single \halign and \tabskip=0pt.) -% Definitively: -% (ii) LaTeX's standard `array' and other environments are *not* -% "like" `tabular'. Namely, environments that work only in math -% mode are not meant here. They are considered below in `b.'. -% (iii) `longtable' from the `longtable' package of the `tools' -% bundle neither is meant. An option of the present package -% deals with it as described below. Neither `supertabular' is -% meant. -% (iv) In general, usage with tabular environments that can -% break across pages as in (iii) is not recommended, at least -% when working with `ednotes.sty'. Even if some worked here, a -% shortcoming with `ednotes.sty' would be that the footnotes can -% appear on bad pages. -% -- Now the syntax is: +%% We did our best to help you, but there is NO WARRANTY. +%% +%% Please send your comments via +%% +%% http://www.contact-ednotes.sty.de.vu +%% +%% * USAGE: * +% +% *Requirements/overview:* +% +% The package is made for the background of the LaTeX2e macro +% package and enhances functionality of the following packages: +% 1.) Stephan I. B"ottcher's `lineno.sty' for printing line +% numbers in the margin and a \label version \linelabel +% relating labels to line numbers; +% 2.) our `ednotes.sty' for indicating variant readings and +% other editorial remarks in separate footnote apparatuses; +% 3.) David Carlisle's `longtable.sty' for multi-page tables. +% %% TODO: supertabular etc.!? +% 4.) our `ltabptch.sty' for a patch of `longtable.sty' +% (i.e., optionally, see below). +% +% Actually, only the first package is necessary for using the +% present one. The present one needs your line numbering commands +% according to the first one and its documentation to which we +% refer here. We likewise refer to the remaining packages for the +% details of their functionality. +% +% `lineno.sty' version 4.1 and (in case it is used) `ednotes.sty' +% version 0.8 (onwards) are needed. For obtaining recent versions +% of required packages, see the CTAN folder +% /macros/latex/contrib/ednotes. +% +% *Install/load:* +% 1.) To be used, the present file must be put into a folder +% that (La)TeX searches. You should have obtained a file +% containing more detailed hints about this. +% 2.) We recommend loading this file *not* by +% \usepackage[<options>]{edtable} but by loading `lineno.sty' +% or `ednotes.sty' with package option `edtable'. +% 3.) To use the package options `longtable' and +% `nolongtablepatch' that are described below, enter them +% as options for `lineno.sty' or `ednotes.sty'. +% +% *User Commands:* +% +% 1. The package defines an environment `edtable' -- for its +% syntax we consider two cases: +% (a) Let <stdtable> be a tabular environment "like `tabular'". +% "Like" here means: (i) we have tested it with `tabular', but +% it should work with many more (e.g., from the `array' and +% `tabularx' packages) -- which share certain properties of +% implementation and requirements. Sorry, you must try, or we +% hope you will (and tell us). (For wizards: <stdtable> may +% probably be anything using a single \halign and \tabskip=0pt.) +% Definitively: +% (ii) LaTeX's standard `array' and other environments are *not* +% "like" `tabular'. Namely, environments that work only in math +% mode are not meant here. They are considered below in `b.'. +% (iii) `longtable' from the `longtable' package of the `tools' +% bundle neither is meant. An option of the present package +% deals with it as described below. Neither `supertabular' is +% meant. +% (iv) In general, usage with tabular environments that can +% break across pages as in (iii) is not recommended, at least +% when working with `ednotes.sty'. Even if some worked here, a +% shortcoming with `ednotes.sty' would be that the footnotes can +% appear on bad pages. +% -- Now the syntax is: % \begin{edtable}{<stdtable>}<args><entries>\end{edtable} -% -- where <args> and <entries> are usual arguments and entries -% for <stdtable>. So an example is: -% \begin{edtable}{tabular}{cc} -% left upper & right upper \\ left lower & right lower -% \end{edtable} -% This produces just what <stdtable> does in an extra line, -% only adding line numbers in the margin and processing `ednotes' -% commands in the entries appropriately. -% (b) Let <stdarray> be an "array environment" like -- standard -% LaTeX's `array'! "Like" here means (i) ... analogously to -% <stdtable> above. (ii) "Text" ... oh, sorry, this is not clear -% to me at present, and I am in a hurry. %% TODO -% (iii) Nothing from the `amsmath' package seems to work here, -% sorry, I have tried a lot ... (iv) For standard LaTeX's -% `eqnarray', it is better to try the `linenomath' environment -% of `lineno.sty' [with package option `mathlines']. Its -% modifications in `amsmath' produce (at best) a spurious line -% number with the `linenomath' environment (up to now). -% -- Now the syntax is: +% -- where <args> and <entries> are usual arguments and entries +% for <stdtable>. So an example is: +% \begin{edtable}{tabular}{cc} +% left upper & right upper \\ left lower & right lower +% \end{edtable} +% This produces just what <stdtable> does in an extra line, +% only adding line numbers in the margin and processing `ednotes' +% commands in the entries appropriately. +% (b) Let <stdarray> be an "array environment" like -- standard +% LaTeX's `array'! "Like" here means (i) ... analogously to +% <stdtable> above. (ii) "Text" ... oh, sorry, this is not clear +% to me at present, and I am in a hurry. %% TODO +% (iii) Nothing from the `amsmath' package seems to work here, +% sorry, I have tried a lot ... (iv) For standard LaTeX's +% `eqnarray', it is better to try the `linenomath' environment +% of `lineno.sty' [with package option `mathlines']. Its +% modifications in `amsmath' produce (at best) a spurious line +% number with the `linenomath' environment (up to now). +% -- Now the syntax is: % \begin{edtable}[<$$$>]{<stdarray>} % <args><entries>\end{edtable} -% -- where <args> and <entries> are usual arguments and entries -% for <stdarray>. <$$$> can be one of `$' or `$$'. Indeed, the -% <stdtable> syntax above (without [<$$$>]) *does not work* -% inside $...$ or $$...$$. -- An example: +% -- where <args> and <entries> are usual arguments and entries +% for <stdarray>. <$$$> can be one of `$' or `$$'. Indeed, the +% <stdtable> syntax above (without [<$$$>]) *does not work* +% inside $...$ or $$...$$. -- An example: % \begin{edtable}[$$]{array}{cc} % a_{11} & a_{12} \\ a_{21} & a_{22} % \end{edtable} -% Now, this produces just what <stdarray> does in an extra line -% etc. as with <stdtable>. However, \linelabel and `ednotes.sty' -% footnotes may need the `mathrefs' option of `lineno.sty'. For -% the difference between `[$]' and `[$$]', see below. -% -% 2. When working with `ednotes.sty', in +% Now, this produces just what <stdarray> does in an extra line +% etc. as with <stdtable>. However, \linelabel and `ednotes.sty' +% footnotes may need the `mathrefs' option of `lineno.sty'. For +% the difference between `[$]' and `[$$]', see below. +% +% 2. When working with `ednotes.sty', in % \Anote{L1\<L2\>L3}{NOTE} -% L2 may contain &'s and \\'s, but L1, L3 must not! Analogously -% for \Bnote, etc., \Anotelabel...\donote..., etc. -- Well this -% holds for <stdtable>, hardly for <stdarray> ... %% TODO -% -% 3. On positioning: You may have wondered about `extra line' -% above. This means that `edtable' starts a new line at -% \begin{edtable} and at \end{edtable}. %% TODO: sure!? -% (a) It should be placed within a `center', `flushleft', or -% `flushright' environment for proper (vertical) spacing, but -% also works without. However, with <stdarray> and optional -% parameter `$$' of `edtable' (i.e., \begin{edtable}[$$]...), -% you can obtain the usual math display spacing *within a -% paragraph*; especially, the vertical space is less when the -% previous line is short ... and so on. -% (b) Horizontal positioning of line numbers (usually) needs a -% second run (after changing a table)! %% TODO: automatic warning. -% (For wizards: It may fail if some of \leftskip, \rightskip, -% \linewidth, and \@totalleftmargin are used in an unusual way.) -% A <dimen> register \ETextraoffset is provided whose value is -% 0pt by default and which additionally moves line numbers -% to the left (right) if given a positive (negative) value. -% %% TODO: any use? -% -% *Package options:* -% -% 1. Option `longtable' adjusts the `longtable' environment -% defined by David Carlisle's longtable.sty for use with -% `lineno.sty' and `ednotes.sty'. The option makes `longtable' -% environments appear with line numbers in the margin, according -% to `lineno.sty', and process `ednotes.sty' commands if line -% numbering is active according to `lineno.sty'. -% [We maintain an alternative package with just this function -% in a slightly different implementation.] %% -> ulnltab.sty. -% Lemmas may go across table entries as with `edtable' (see above). -% ---There might be options like `supertabular' for adjusting -% other tabular environments that cannot be handled by the -% `edtable' environment provided here---they have not been -% implemented yet! %% TODO -% -% 2. Option `nolongtablepatch' avoids loading/asking for -% `ltabptch.sty'. I.e.: according to LaTeX bugs database, -% tools/3180 and tools/3485, there have been problems with -% vertical spacing around `longtable' environments. By default -% the present package loads our `ltabptch.sty' or asks for it. -% Option `nolongtablepatch' overrides this. This is useful when -% you don't want to have the patch, especially when you use an -% "emergency stop" installation of TeX. -% -% *Wizard interface:* -% Macros \@ET@makeLineNumber, \@ET@use@outerhook, -% \@ET@execute@outerhook, \@ET@ampnotes \@ET@startlinewith, -% \@ET@trivialize@linelabel are provided as tools for adjusting -% tabular environments for use with `lineno.sty' and -% `ednotes.sty'. \@ET@step@linenumber is \let \stepLineNumber -% (from `lineno.sty'), but could be used as a hook for -% something different. See Environment `edtable' and Option -% `longtable' below for examples of application. -% %% TODO: specification here. -% +% L2 may contain &'s and \\'s, but L1, L3 must not! Analogously +% for \Bnote, etc., \Anotelabel...\donote..., etc. -- Well this +% holds for <stdtable>, hardly for <stdarray> ... %% TODO +% +% 3. On positioning: You may have wondered about `extra line' +% above. This means that `edtable' starts a new line at +% \begin{edtable} and at \end{edtable}. %% TODO: sure!? +% (a) It should be placed within a `center', `flushleft', or +% `flushright' environment for proper (vertical) spacing, but +% also works without. However, with <stdarray> and optional +% parameter `$$' of `edtable' (i.e., \begin{edtable}[$$]...), +% you can obtain the usual math display spacing *within a +% paragraph*; especially, the vertical space is less when the +% previous line is short ... and so on. +% (b) Horizontal positioning of line numbers (usually) needs a +% second run (after changing a table)! %% TODO: automatic warning. +% (For wizards: It may fail if some of \leftskip, \rightskip, +% \linewidth, and \@totalleftmargin are used in an unusual way.) +% A <dimen> register \ETextraoffset is provided whose value is +% 0pt by default and which additionally moves line numbers +% to the left (right) if given a positive (negative) value. +% %% TODO: any use? +% +% *Package options:* +% +% 1. Option `longtable' adjusts the `longtable' environment +% defined by David Carlisle's longtable.sty for use with +% `lineno.sty' and `ednotes.sty'. The option makes `longtable' +% environments appear with line numbers in the margin, according +% to `lineno.sty', and process `ednotes.sty' commands if line +% numbering is active according to `lineno.sty'. +% [We maintain an alternative package with just this function +% in a slightly different implementation.] %% -> ulnltab.sty. +% Lemmas may go across table entries as with `edtable' (see above). +% ---There might be options like `supertabular' for adjusting +% other tabular environments that cannot be handled by the +% `edtable' environment provided here---they have not been +% implemented yet! %% TODO +% +% 2. Option `nolongtablepatch' avoids loading/asking for +% `ltabptch.sty'. I.e.: according to LaTeX bugs database, +% tools/3180 and tools/3485, there have been problems with +% vertical spacing around `longtable' environments. By default +% the present package loads our `ltabptch.sty' or asks for it. +% Option `nolongtablepatch' overrides this. This is useful when +% you don't want to have the patch, especially when you use an +% "emergency stop" installation of TeX. +% +% *Wizard interface:* +% Macros \@ET@makeLineNumber, \@ET@use@outerhook, +% \@ET@execute@outerhook, \@ET@ampnotes \@ET@startlinewith, +% \@ET@trivialize@linelabel are provided as tools for adjusting +% tabular environments for use with `lineno.sty' and +% `ednotes.sty'. \@ET@step@linenumber is \let \stepLineNumber +% (from `lineno.sty'), but could be used as a hook for +% something different. See Environment `edtable' and Option +% `longtable' below for examples of application. +% %% TODO: specification here. +% +% +%% * Acknowledgements: * +% +% Stephan I. B"ottcher told us how to do it in extensive discussion +% and by providing some first code lines. We changed these essentially +% in some respects, but kept his general ideas and some parts of his +% macros, the latter even without knowing what we are doing. +% +% v1.3 is due to a request by Martin Brandenburg. +% +% * Now for internals: * % -%% * Acknowledgements: * -% -% Stephan I. B"ottcher told us how to do it in extensive discussion -% and by providing some first code lines. We changed these essentially -% in some respects, but kept his general ideas and some parts of his -% macros, the latter even without knowing what we are doing. -% -% v1.3 is due to a request by Martin Brandenburg. -% -% * Now for internals: * -% -\NeedsTeXFormat{LaTeX2e}[1994/12/01] -% 1994/12/01: \newenvironment* etc. %% TODO: more recent needed? -\ProvidesPackage{edtable}[\filedate\space v\fileversion\space - arrays with lineno + ednotes (ul)] -% -% Alternative ideas for implementation: -% 1. There is a German package `TABMAC' enhancing `EDMAC' (cf. -% documentation of `ednotes.sty'). We could have rewritten its -% macros so it would work with `lineno.sty' and `ednotes.sty' -% in place of `EDMAC'. [TODO: "tabmac.sty"] -% 2. We redefine `longtable' by Option `longtable' because -% there seems to be only one reasonable use of the `longtable' -% environment in the course of a critical edition. This may be -% different for environments like `array' and `tabular' which -% can be used within text lines. Therefore, these environments -% are not redefined. -% 3. One might use \everycr, however: (a) it is executed -% before the first row, (b) it is executed in fake lines that -% `longtable' uses. -% 4. As an alternative to \everycr, there is the approach of -% redefining \cr and \crcr for setting \noalign. This needs -% redefining \@tabularcr etc.---not nice. We use this approach -% here for `longtable' which uses a stretching \tabskip. -% For \tabskip=0pt, we attach line numbers by a template. -% -% \RequirePackage{lineno}[2004/10/06] -% Wanted to check lineno version--causes unknown option error. -% See LaTeX bug latex/3730. +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +% 1994/12/01: \newenvironment* etc. %% TODO: more recent needed? +\ProvidesPackage{edtable}[\filedate\space v\fileversion\space + arrays with lineno + ednotes (ul)] +% +% Alternative ideas for implementation: +% 1. There is a German package `TABMAC' enhancing `EDMAC' (cf. +% documentation of `ednotes.sty'). We could have rewritten its +% macros so it would work with `lineno.sty' and `ednotes.sty' +% in place of `EDMAC'. [TODO: "tabmac.sty"] +% 2. We redefine `longtable' by Option `longtable' because +% there seems to be only one reasonable use of the `longtable' +% environment in the course of a critical edition. This may be +% different for environments like `array' and `tabular' which +% can be used within text lines. Therefore, these environments +% are not redefined. +% 3. One might use \everycr, however: (a) it is executed +% before the first row, (b) it is executed in fake lines that +% `longtable' uses. +% 4. As an alternative to \everycr, there is the approach of +% redefining \cr and \crcr for setting \noalign. This needs +% redefining \@tabularcr etc.---not nice. We use this approach +% here for `longtable' which uses a stretching \tabskip. +% For \tabskip=0pt, we attach line numbers by a template. +% +% \RequirePackage{lineno}[2004/10/06] +% Wanted to check lineno version--causes unknown option error. +% See LaTeX bug latex/3730. -% Options: +% Options: -%% TODO: underful page with `longtable.sty'!? -\let\if@ET@longtable\iffalse % \newif\if@ET@longtable@ -\DeclareOption{longtable}{\let\if@ET@longtable\iftrue} -\let\if@ET@ltabptch\iftrue +%% TODO: underful page with `longtable.sty'!? +\let\if@ET@longtable\iffalse % \newif\if@ET@longtable@ +\DeclareOption{longtable}{\let\if@ET@longtable\iftrue} +\let\if@ET@ltabptch\iftrue \DeclareOption{nolongtablepatch}{\let\if@ET@ltabptch\iffalse} \ProcessOptions -% Redefine \longtable if option: +% Redefine \longtable if option: \if@ET@longtable - % Stephan's direction for attaching a line number to each row - % is using \noalign in the course of \\. - % However, (1) the user should not worry about closing the table - % with \\ or without, and (2) the line number thing should not - % happen twice if \\ is the last token before \end{longtable}. - % Our solution: attach something to the beginning of \endlongtable - % which attaches line number unless an unsucceeded \\ has done it. - % This thing is activated by each row start and turned off by \\. - % Since the switch at row start may happen to be in a pbox, - % let it act globally on \endlongtable. (The \crcr at the beginning - % of \endlongtable must not be changed directly, since original - % \crcr may be required in table entries using \oalign etc.) - % + % Stephan's direction for attaching a line number to each row + % is using \noalign in the course of \\. + % However, (1) the user should not worry about closing the table + % with \\ or without, and (2) the line number thing should not + % happen twice if \\ is the last token before \end{longtable}. + % Our solution: attach something to the beginning of \endlongtable + % which attaches line number unless an unsucceeded \\ has done it. + % This thing is activated by each row start and turned off by \\. + % Since the switch at row start may happen to be in a pbox, + % let it act globally on \endlongtable. (The \crcr at the beginning + % of \endlongtable must not be changed directly, since original + % \crcr may be required in table entries using \oalign etc.) + % \RequirePackage{longtable}% % \IfFileExists{longtable.sty}{\RequirePackage{longtable}}% % {\RequirePackage{longtabl}}% -% For Atari problem, it suffices to rename `longtable.sty' -% into `longtabl.sty'. -% +% For Atari problem, it suffices to rename `longtable.sty' +% into `longtabl.sty'. +% % Patch for tools/3180 and tools/3485 of LaTeX bug database: \if@ET@ltabptch - \IfFileExists{ltabptch.sty}{\RequirePackage{ltabptch}}{% - \PackageError{edtable}{% + \IfFileExists{ltabptch.sty}{\RequirePackage{ltabptch}}{% + \PackageError{edtable}{% ltabptch.sty (for improving spacing around\MessageBreak - longtable) missing! Be sure to use it always\MessageBreak + longtable) missing! Be sure to use it always\MessageBreak or never!% - }{% - To omit ltabptch.sty *and* escape this error,\MessageBreak + }{% + To omit ltabptch.sty *and* escape this error,\MessageBreak use package option `nolongtablepatch'.% }% } - \fi - \let\@ET@@longtable\longtable - \def\longtable{% - \ifLineNumbers - \expandafter\@ET@longtable - \else - \let\@ET@sw@cr\@ET@crcr % ... in \endlongtable. - \expandafter\@ET@@longtable - \fi - } - \def\@ET@longtable{% - % Since we have made it anyway, we use the method of redefining - % \halign for inserting the activating row start as well. - % However, redefinition must be repeated before every \LT@bchunk. - % \longtable and \LT@get@withs are good places for this. - \@ET@startlinewith\@ET@sw@cr@on - \@ET@trivialize@linelabel - \@ET@use@outerhook - \@ET@ampnotes - \let\LT@tabularcr\@ET@LT@tabularcr - \expandafter\def\expandafter\LT@get@widths\expandafter + \fi + \let\@ET@@longtable\longtable + \def\longtable{% + \ifLineNumbers + \expandafter\@ET@longtable + \else + \let\@ET@sw@cr\@ET@crcr % ... in \endlongtable. + \expandafter\@ET@@longtable + \fi + } + \def\@ET@longtable{% + % Since we have made it anyway, we use the method of redefining + % \halign for inserting the activating row start as well. + % However, redefinition must be repeated before every \LT@bchunk. + % \longtable and \LT@get@withs are good places for this. + \@ET@startlinewith\@ET@sw@cr@on + \@ET@trivialize@linelabel + \@ET@use@outerhook + \@ET@ampnotes + \let\LT@tabularcr\@ET@LT@tabularcr + \expandafter\def\expandafter\LT@get@widths\expandafter {\LT@get@widths\@ET@startlinewith\@ET@sw@cr@on} - % Admittedly, we could make it less of a hack by using @{...} - % ---we could then leave \LT@get@widths untouched. - \@ET@@longtable - } - \def\@ET@sw@cr@on{\global\let\@ET@sw@cr\@ET@cr@attach} - % We are hacking a longtable version offering + % Admittedly, we could make it less of a hack by using @{...} + % ---we could then leave \LT@get@widths untouched. + \@ET@@longtable + } + \def\@ET@sw@cr@on{\global\let\@ET@sw@cr\@ET@cr@attach} + % We are hacking a longtable version offering % \def\LT@tabularcr{% % \relax\iffalse{\fi\ifnum0=`}\fi % \@ifstar % {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr % \LT@t@bularcr}% % {\LT@t@bularcr}} - % We need a redefinition of \cr which is not overridden by \@ifstar: + % We need a redefinition of \cr which is not overridden by \@ifstar: \def\@ET@LT@tabularcr{% \relax\iffalse{\fi\ifnum0=`}\fi - \def\cr{\@ET@sw@cr}% - % So \crcr is affected by change of \@ET@sw@cr, cf. below. - \let\crcr\cr + \def\cr{\@ET@sw@cr}% + % So \crcr is affected by change of \@ET@sw@cr, cf. below. + \let\crcr\cr \@ifstar - {\gdef\@ET@sw@nobreak{\nobreak - \global\let\@ET@sw@nobreak\relax}% + {\gdef\@ET@sw@nobreak{\nobreak + \global\let\@ET@sw@nobreak\relax}% % {\def\cr{\@ET@sw@cr\noalign{\nobreak}}\let\cr\crcr - % Why didn't this work? %% TODO: try shorter again. + % Why didn't this work? %% TODO: try shorter again. \LT@t@bularcr}% - \LT@t@bularcr + \LT@t@bularcr % {\let\cr\@ET@sw@cr \let\crcr\cr - % \LT@t@bularcr}% This accompanied \def\cr... above. + % \LT@t@bularcr}% This accompanied \def\cr... above. } - % Attach \@ET@sw@cr to beginning of \endlongtable: - \expandafter\def\expandafter\endlongtable\expandafter + % Attach \@ET@sw@cr to beginning of \endlongtable: + \expandafter\def\expandafter\endlongtable\expandafter {\expandafter\@ET@sw@cr\endlongtable} - \def\@ET@cr@attach{% Actually attaching line numbers. - \@ET@crcr\noalign{% Basically Stephan's approach. - % If we were not careful, following box containing line number - % could fool interline glue after longtable, even if tools/3485 - % is repaired in some way. This box should have same depth as - % the line composed previously. - \nobreak %% \@ET@ex... might cause page break. 2003/10/30. - \setbox\z@\@ET@makeLineNumber - \ht\z@-\prevdepth \dp\z@\prevdepth \box\z@ - \@ET@step@linenumber - \global\let\@ET@sw@cr\@ET@crcr % ... if called by \\. - % This also resets the \crcr starting \LT@echunk following - % \@xargarraycr or \@yargarraycr in \LT@argtabularcr. - % \let...\relax seems to suffice at well, but in case ... - \@ET@execute@outerhook %% 2003/10/30. - \@ET@sw@nobreak -% \@ET@execute@outerhook - }% - } - \let\@ET@crcr\crcr - \global\let\@ET@sw@nobreak\relax % Just to remind ... -\fi - -\let\@ET@step@linenumber\stepLineNumber + \def\@ET@cr@attach{% Actually attaching line numbers. + \@ET@crcr\noalign{% Basically Stephan's approach. + % If we were not careful, following box containing line number + % could fool interline glue after longtable, even if tools/3485 + % is repaired in some way. This box should have same depth as + % the line composed previously. + \nobreak %% \@ET@ex... might cause page break. 2003/10/30. + \setbox\z@\@ET@makeLineNumber + \ht\z@-\prevdepth \dp\z@\prevdepth \box\z@ + \@ET@step@linenumber + \global\let\@ET@sw@cr\@ET@crcr % ... if called by \\. + % This also resets the \crcr starting \LT@echunk following + % \@xargarraycr or \@yargarraycr in \LT@argtabularcr. + % \let...\relax seems to suffice at well, but in case ... + \@ET@execute@outerhook %% 2003/10/30. + \@ET@sw@nobreak +% \@ET@execute@outerhook + }% + } + \let\@ET@crcr\crcr + \global\let\@ET@sw@nobreak\relax % Just to remind ... +\fi + +\let\@ET@step@linenumber\stepLineNumber % \def\@ET@step@linenumber{\global\advance\c@linenumber\@ne} -\def\@ET@makeLineNumber{\hb@xt@\z@{\makeLineNumber}} -%% TODO: export to lineno.sty!? -% Special \halign: -% For `array' etc., we insert line numbers by a leftmost template. -% @{...} in the last argument of `array' etc. is difficult for this -% since `tabular*' has an additional argument. So we redefine -% \halign to put something to the right of the next \bgroup. -% Now, as a macro, \halign would break in an \edef or \xdef. -% Horribly, this danger has become quite real in longtable.sty's -% definition of \LT@bchunk. Only its latest version 4.10 has -% preceded \halign by a \noexpand (for mathtext.sty which -% redefines \halign as well). We need not rely on such a -% provision if we let \halign expand to \the<token register> -% for some token register. However, using \toks@ or \@temptokena -% is neither very safe---might be filled by macro ahead with -% something new. So reserve an own token register. -\newtoks\@ET@toks -\@ET@toks{\@ET@specialhalign} -% v1.3: In 'AMSmath', there are \halign's followed by explicit -% left braces. Thus '\def\@ET@specialhalign#1\bgroup{%' broke. -%% TODO ... +\def\@ET@makeLineNumber{\hb@xt@\z@{\makeLineNumber}} +%% TODO: export to lineno.sty!? +% Special \halign: +% For `array' etc., we insert line numbers by a leftmost template. +% @{...} in the last argument of `array' etc. is difficult for this +% since `tabular*' has an additional argument. So we redefine +% \halign to put something to the right of the next \bgroup. +% Now, as a macro, \halign would break in an \edef or \xdef. +% Horribly, this danger has become quite real in longtable.sty's +% definition of \LT@bchunk. Only its latest version 4.10 has +% preceded \halign by a \noexpand (for mathtext.sty which +% redefines \halign as well). We need not rely on such a +% provision if we let \halign expand to \the<token register> +% for some token register. However, using \toks@ or \@temptokena +% is neither very safe---might be filled by macro ahead with +% something new. So reserve an own token register. +\newtoks\@ET@toks +\@ET@toks{\@ET@specialhalign} +% v1.3: In 'AMSmath', there are \halign's followed by explicit +% left braces. Thus '\def\@ET@specialhalign#1\bgroup{%' broke. +%% TODO ... \def\@ET@specialhalign{% - \ifmeasuring@ \expandafter\@firstoftwo -% v1.3 2005/03/04, for `amsmath'. - \else \expandafter\@secondoftwo + \ifmeasuring@ \expandafter\@firstoftwo +% v1.3 2005/03/04, for `amsmath'. + \else \expandafter\@secondoftwo \fi - {\let\halign\@ET@@halign \halign}% + {\let\halign\@ET@@halign \halign}% {\@ifnextchar\bgroup\@ET@replace@arg\@ET@sphalign@to}} -%% TODO: change back, commenting out code above, report -%% error with `alignat'. +%% TODO: change back, commenting out code above, report +%% error with `alignat'. % \@ifnextchar\bgroup\@ET@replace@arg\@ET@sphalign@to} -% If `amsmath' not loaded (v1.3): -\AtBeginDocument{\@ifundefined{measuring@true}{% +% If `amsmath' not loaded (v1.3): +\AtBeginDocument{\@ifundefined{measuring@true}{% \let\ifmeasuring@\iffalse}\relax} \def\@ET@replace@arg#1{% - \def\@EN@tempa{#1}\def\@EN@tempb{\bgroup}% Corr. after v1.3b. - \ifx\@EN@tempa\@EN@tempb + \def\@EN@tempa{#1}\def\@EN@tempb{\bgroup}% Corr. after v1.3b. + \ifx\@EN@tempa\@EN@tempb \def\@EN@tempa{\@ET@sphalign@to\bgroup}% - \else + \else \def\@EN@tempa{\@ET@sphalign@to{#1}}% -% This may be wrong, #1 might be `t' from `to' ... - \fi +% This may be wrong, #1 might be `t' from `to' ... + \fi \@EN@tempa} -\def\@ET@sphalign@to#1\bgroup{% - \let\halign\@ET@@halign % Reset for nested arrays. - \halign#1\bgroup -% \ifmeasuring@\else % For `amsmath', moved backwards. - \@ET@startline % [Wizard interface, via \@ET@starlinewith.] -% \fi +\def\@ET@sphalign@to#1\bgroup{% + \let\halign\@ET@@halign % Reset for nested arrays. + \halign#1\bgroup +% \ifmeasuring@\else % For `amsmath', moved backwards. + \@ET@startline % [Wizard interface, via \@ET@starlinewith.] +% \fi } -% Wizard interface: -\def\@ET@startlinewith{% Next token precedes preamble. -% \let\@ET@@halign\halign % Or \AtBeginDocument? -% ... indeed: bad loop with long longtable (\LT@get@widths!?) - \def\halign{\the\@ET@toks}% - \let\@ET@startline -} -\AtBeginDocument{\let\@ET@@halign\halign} -% Or save it at start of environment only -% (don't repeat inside longtable). -% -% Outer hook for inserts: (wizard interface) -\def\@ET@execute@outerhook{% To be placed outside inner mode. - \@ET@outerhook \global\let\@ET@outerhook\@empty -} -\global\let\@ET@outerhook\@empty % Just to remind: global! -% \@EN@hookfn (ednotes) sends to outer hook: -\def\@ET@use@outerhook{% Wizard interface. - \def\@EN@hookfn{\g@addto@macro\@ET@outerhook}% -}%% TODO: move last line to `ednotes', \let\@ET@use...\@empty. -%% But this requires re-installing both packages -%% at the same time. See the `ampnotes' thing as well. -% -% Trivialize \linelabel: (wizard interface) +% Wizard interface: +\def\@ET@startlinewith{% Next token precedes preamble. +% \let\@ET@@halign\halign % Or \AtBeginDocument? +% ... indeed: bad loop with long longtable (\LT@get@widths!?) + \def\halign{\the\@ET@toks}% + \let\@ET@startline +} +\AtBeginDocument{\let\@ET@@halign\halign} +% Or save it at start of environment only +% (don't repeat inside longtable). +% +% Outer hook for inserts: (wizard interface) +\def\@ET@execute@outerhook{% To be placed outside inner mode. + \@ET@outerhook \global\let\@ET@outerhook\@empty +} +\global\let\@ET@outerhook\@empty % Just to remind: global! +% \@EN@hookfn (ednotes) sends to outer hook: +\def\@ET@use@outerhook{% Wizard interface. + \def\@EN@hookfn{\g@addto@macro\@ET@outerhook}% +}%% TODO: move last line to `ednotes', \let\@ET@use...\@empty. +%% But this requires re-installing both packages +%% at the same time. See the `ampnotes' thing as well. +% +% Trivialize \linelabel: (wizard interface) \def\@ET@trivialize@linelabel{\let\linelabel\@ET@linelabel} -\def\@ET@linelabel{% - \protected@edef\@currentlabel{\theLineNumber}% +\def\@ET@linelabel{% + \protected@edef\@currentlabel{\theLineNumber}% \label } -% Change ampersand at \Anote etc.: (wizard interface) -%% 2003/10/31. -% & is changed by \Anote etc. No \begin...\endgroup, -% next \\ or & after % note/donote command switches back. -% ---Global change seems to break table setup. -\begingroup +% Change ampersand at \Anote etc.: (wizard interface) +%% 2003/10/31. +% & is changed by \Anote etc. No \begin...\endgroup, +% next \\ or & after % note/donote command switches back. +% ---Global change seems to break table setup. +\begingroup \gdef\@ET@hideamps{\catcode`\&\active} -\@ET@hideamps -\gdef\@ET@ampnotes{% - \let&\@ET@hideamp - %% & would be undefined after \\ in lemma. - \let\@ET@EN@rnote\@EN@note +\@ET@hideamps +\gdef\@ET@ampnotes{% + \let&\@ET@hideamp + %% & would be undefined after \\ in lemma. + \let\@ET@EN@rnote\@EN@note \def\@EN@note{\@ET@hideamps\@ET@EN@rnote}% - \let\@ET@EN@rnotelb\@EN@notelabel + \let\@ET@EN@rnotelb\@EN@notelabel \def\@EN@notelabel{\@ET@hideamps\@ET@EN@rnotelb}% -} -%% TODO: & and \\ in \@EN@lemmaexpands!? -\endgroup +} +%% TODO: & and \\ in \@EN@lemmaexpands!? +\endgroup \def\@ET@hideamp{&} -\newenvironment*{edtable}[2][]{% -% #1 $ or $$, #2 standard environment name. -%% TODO: star version!? cf. lineno.sty's `numquote'. - \def\@ET@mode{#1}% - \def\@ET@currenvir{#2}% - \ifhmode \ifnum\the\lastpenalty=-\@M\else -% \par must be executed for printing/stopping line numbers: - \@centercr\relax \noindent - \fi \fi - \ifvmode \noindent \fi % Otherwise linenumbers are indented -% -- however, not recommended. - \@ET@use@outerhook - \@ET@trivialize@linelabel - \@ET@ampnotes - \@ET@startlinewith\@ET@normal@startline - \global\advance\c@linenumber\m@ne % Stepping correction. +\newenvironment*{edtable}[2][]{% +% #1 $ or $$, #2 standard environment name. +%% TODO: star version!? cf. lineno.sty's `numquote'. + \def\@ET@mode{#1}% + \def\@ET@currenvir{#2}% + \ifhmode \ifnum\the\lastpenalty=-\@M\else +% \par must be executed for printing/stopping line numbers: + \@centercr\relax \noindent + \fi \fi + \ifvmode \noindent \fi % Otherwise linenumbers are indented +% -- however, not recommended. + \@ET@use@outerhook + \@ET@trivialize@linelabel + \@ET@ampnotes + \@ET@startlinewith\@ET@normal@startline + \global\advance\c@linenumber\m@ne % Stepping correction. % (Must come after closing previous paragraph.) -% Calculate offset: - \global\advance\c@ET@array\@ne -% Saving/calling width of table (`longtable's algorithm). -% Test if there is \@flushglue on the left (center or flushleft): - \edef\@EN@tempa{\the\@flushglue}% -% ... v1.3: fool this for "$$". - \in@{$$}{#1\@nil}% \in@{#1}{#2} searches #1 in #2#1 ... - \edef\@EN@tempb{\the\ifin@\@flushglue\else\leftskip\fi}% - \ifx\@EN@tempa\@EN@tempb -% Assume \@ET@offset is 0pt else here. - \@ET@offset\linewidth - \advance\@ET@offset-% - \@ifundefined\@ET@arraywidth@csn % Shortened for v1.3. - {\linewidth\G@refundefinedtrue - \PackageWarningNoLine{edtab}{^^JLine numbers at - \@ET@currenvir\space need \jobname.aux}}% - {\csname\@ET@arraywidth@csn\endcsname}% -% Test if \@flushglue on the right (center): -% ... v1.3: fool it again. Repeat \in@ in case ... +% Calculate offset: + \global\advance\c@ET@array\@ne +% Saving/calling width of table (`longtable's algorithm). +% Test if there is \@flushglue on the left (center or flushleft): + \edef\@EN@tempa{\the\@flushglue}% +% ... v1.3: fool this for "$$". + \in@{$$}{#1\@nil}% \in@{#1}{#2} searches #1 in #2#1 ... + \edef\@EN@tempb{\the\ifin@\@flushglue\else\leftskip\fi}% + \ifx\@EN@tempa\@EN@tempb +% Assume \@ET@offset is 0pt else here. + \@ET@offset\linewidth + \advance\@ET@offset-% + \@ifundefined\@ET@arraywidth@csn % Shortened for v1.3. + {\linewidth\G@refundefinedtrue + \PackageWarningNoLine{edtab}{^^JLine numbers at + \@ET@currenvir\space need \jobname.aux}}% + {\csname\@ET@arraywidth@csn\endcsname}% +% Test if \@flushglue on the right (center): +% ... v1.3: fool it again. Repeat \in@ in case ... \in@{$$}{#1\@nil}% - \edef\@EN@tempb{\the\ifin@\@flushglue\else\rightskip\fi}% - \ifx\@EN@tempa\@EN@tempb \divide\@ET@offset\tw@ \fi - \fi - \advance\@ET@offset\@totalleftmargin - \advance\@ET@offset\ETextraoffset % Offset ready. - \setbox\@tempboxa\hbox\bgroup -% v1.3: `alignat' complains later when this is \vbox instead. -% \vbox\bgroup % Tried in vain. - \ifx\@ET@mode\@empty\else $\fi - \csname#2\endcsname -}{% - \csname end\@ET@currenvir \endcsname - \ifx\@ET@mode\@empty\else $\fi - \egroup - \@ET@step@linenumber % Stepping correction. + \edef\@EN@tempb{\the\ifin@\@flushglue\else\rightskip\fi}% + \ifx\@EN@tempa\@EN@tempb \divide\@ET@offset\tw@ \fi + \fi + \advance\@ET@offset\@totalleftmargin + \advance\@ET@offset\ETextraoffset % Offset ready. + \setbox\@tempboxa\hbox\bgroup +% v1.3: `alignat' complains later when this is \vbox instead. +% \vbox\bgroup % Tried in vain. + \ifx\@ET@mode\@empty\else $\fi + \csname#2\endcsname +}{% + \csname end\@ET@currenvir \endcsname + \ifx\@ET@mode\@empty\else $\fi + \egroup + \@ET@step@linenumber % Stepping correction. \if@filesw \immediate\write\@auxout{% \gdef\expandafter\noexpand \csname\@ET@arraywidth@csn\endcsname {\the\wd\@tempboxa}}% -%% TODO: warning if changed!? +%% TODO: warning if changed!? \fi -% No automatic line number at array line: - \nolinenumbers - \@ET@mode\ensuremath{\vcenter{\box\@tempboxa}}\@ET@mode % v1.3. +% No automatic line number at array line: + \nolinenumbers + \@ET@mode\ensuremath{\vcenter{\box\@tempboxa}}\@ET@mode % v1.3. \@ET@execute@outerhook - \ifhmode \@centercr\relax \fi -% \par must be executed for proper restart of printing line numbers -% (think so). - \@endpetrue % Outside \@flushglue environment, avoid indent ahead. -%% TODO: slightly change for math mode around? Or give an error -%% in math mode. -} -%% TODO: make \edtable \outer!? + \ifhmode \@centercr\relax \fi +% \par must be executed for proper restart of printing line numbers +% (think so). + \@endpetrue % Outside \@flushglue environment, avoid indent ahead. +%% TODO: slightly change for math mode around? Or give an error +%% in math mode. +} +%% TODO: make \edtable \outer!? \def\@ET@normal@startline{% - \@ET@step@linenumber - \llap{\@ET@makeLineNumber \hskip\@ET@offset}% -} -\newdimen\@ET@offset -\newdimen\ETextraoffset -%% TODO: export to lineno.sty!? -\newcount\c@ET@array + \@ET@step@linenumber + \llap{\@ET@makeLineNumber \hskip\@ET@offset}% +} +\newdimen\@ET@offset +\newdimen\ETextraoffset +%% TODO: export to lineno.sty!? +\newcount\c@ET@array \def\@ET@arraywidth@csn{ET@a@\romannumeral\c@ET@array} -% -%% TODO: .dtx -\endinput +% +%% TODO: .dtx +\endinput -%% VERSION HISTORY: -v0.22 2003/01/13 First version, named `edtab02.sty', sent around, - together with ednotes.sty. -v0.23 2003/01/22 Added version history. -v0.24 2003/01/27 Copyright notice. -%%% v0.3 2003/03/03 Requires linenox0.sty. %% RETREATED -%% TODO: reconsider, see `lineno[x].sty'. -v0.25 2003/03/05 Added <ednotes.sty@web.de>. -v0.26 2003/03/23 Added \@ET@startlinewith to wizard command list; - moved redefinition \LT@get@widths from option code - into \@ET@longtable so this really happens in - line number mode only; moved \let\@ET@@halign\halign - from \@ET@startlinewith to \AtBeginDocument. -v0.27 2003/06/02 Added \ifvmode \noindent \fi to `edtable' definition; - 2003/06/10 added `lemma cannot run' to instructions. -v0.28 2003/10/31 \@ET@cr@attach: moved \@ET@execu..., added \nobreak. - Added \@ET@ampnotes and documentation: now working - across entries. -v1.0 2004/05/13 `ednotes.sty' etc., updated copyright. Renamed as - `edtable.sty' for TUGboat article. - \RequirePackage{lineno}, changed doc. accordingly. - Removed `may be released under different name'. -v1.10 2004/07/27 Looking for `longtabl.sty' for my Atari! - 2004/08/22 Added warning (screen/documentation) concerning - ltabptch.sty. - 2004/08/23 Added suggestion of option `nolongtablepatch'; - LPPL v1.3. -v1.2 2004/08/31 Rearranged preamble concerning maintenance, - removed `preliminary release'. - 2004/10/06 \newif -> \let...; option `nolongtablepatch'; - changed documentation accordingly and for - loading edtable.sty by lineno/ednotes option; - \let\@ET@step@linenumber\stepLineNumber; use - \ifLineNumbers. - 2004/10/07 Needed version numbers. - 2004/10/08 ltabptch warning -> error! - 2004/10/11 Disabled \RequirePackage{lineno}[...]; undid - the `longtabl.sty' thing from 2004/07/27. - 2004/10/12 latex/3730. -v1.2a 2004/11/07 LPPL v1.3a. -v1.2b 2005/01/10 Contact via http. -v1.3b 2005/03/04 Support for environments like `array' - environment. The description of `edtable' was - wrong in this respect! -v1.3 2005/03/07 Adaptations in documentation, and extended usage - instructions very much, correcting some - errors as well. Acknowledgement to M. B. -v1.3a 2005/03/09 Corrected numbering in `usage'. -v1.3c 2005/03/15 \@centercr\relax, TODO on math mode. - 2005/04/09 `editory' -> `editorial'. +%% VERSION HISTORY: +v0.22 2003/01/13 First version, named `edtab02.sty', sent around, + together with ednotes.sty. +v0.23 2003/01/22 Added version history. +v0.24 2003/01/27 Copyright notice. +%%% v0.3 2003/03/03 Requires linenox0.sty. %% RETREATED +%% TODO: reconsider, see `lineno[x].sty'. +v0.25 2003/03/05 Added <ednotes.sty@web.de>. +v0.26 2003/03/23 Added \@ET@startlinewith to wizard command list; + moved redefinition \LT@get@widths from option code + into \@ET@longtable so this really happens in + line number mode only; moved \let\@ET@@halign\halign + from \@ET@startlinewith to \AtBeginDocument. +v0.27 2003/06/02 Added \ifvmode \noindent \fi to `edtable' definition; + 2003/06/10 added `lemma cannot run' to instructions. +v0.28 2003/10/31 \@ET@cr@attach: moved \@ET@execu..., added \nobreak. + Added \@ET@ampnotes and documentation: now working + across entries. +v1.0 2004/05/13 `ednotes.sty' etc., updated copyright. Renamed as + `edtable.sty' for TUGboat article. + \RequirePackage{lineno}, changed doc. accordingly. + Removed `may be released under different name'. +v1.10 2004/07/27 Looking for `longtabl.sty' for my Atari! + 2004/08/22 Added warning (screen/documentation) concerning + ltabptch.sty. + 2004/08/23 Added suggestion of option `nolongtablepatch'; + LPPL v1.3. +v1.2 2004/08/31 Rearranged preamble concerning maintenance, + removed `preliminary release'. + 2004/10/06 \newif -> \let...; option `nolongtablepatch'; + changed documentation accordingly and for + loading edtable.sty by lineno/ednotes option; + \let\@ET@step@linenumber\stepLineNumber; use + \ifLineNumbers. + 2004/10/07 Needed version numbers. + 2004/10/08 ltabptch warning -> error! + 2004/10/11 Disabled \RequirePackage{lineno}[...]; undid + the `longtabl.sty' thing from 2004/07/27. + 2004/10/12 latex/3730. +v1.2a 2004/11/07 LPPL v1.3a. +v1.2b 2005/01/10 Contact via http. +v1.3b 2005/03/04 Support for environments like `array' + environment. The description of `edtable' was + wrong in this respect! +v1.3 2005/03/07 Adaptations in documentation, and extended usage + instructions very much, correcting some + errors as well. Acknowledgement to M. B. +v1.3a 2005/03/09 Corrected numbering in `usage'. +v1.3c 2005/03/15 \@centercr\relax, TODO on math mode. + 2005/04/09 `editory' -> `editorial'. |