summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/ledmac/ledmac.dtx')
-rw-r--r--Master/texmf-dist/source/latex/ledmac/ledmac.dtx1365
1 files changed, 528 insertions, 837 deletions
diff --git a/Master/texmf-dist/source/latex/ledmac/ledmac.dtx b/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
index 527465a0f2a..d2545c57fe4 100644
--- a/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
+++ b/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
@@ -14,7 +14,7 @@
% and version 1.3 or later is part of all distributions of
% LaTeX version 2003/06/01 or later.
%
-% This work has the LPPL maintenance status "maintained".
+% This work has the LPPL maintenance status "unmaintained".
%
% This work consists of the files listed in the README file.
%
@@ -50,7 +50,7 @@
%
% \fi
%
-% \CheckSum{9858}
+% \CheckSum{9326}
%
% \makeatletter
% \newcommand*{\DescribeIt}{\leavevmode\@bsphack\begingroup\MakePrivateLetters
@@ -141,10 +141,7 @@
% \def\fileversion{v0.15} \def\filedate{2012/06/11}
% \def\fileversion{v0.16} \def\filedate{2012/06/21}
% \def\fileversion{v0.17} \def\filedate{2012/08/03}
-% \def\fileversion{v0.18} \def\filedate{2012/08/30}
-% \def\fileversion{v0.18.1} \def\filedate{2012/09/02}
-% \def\fileversion{v0.18.2} \def\filedate{2012/09/05}
-% \def\fileversion{v0.18.3} \def\filedate{2012/09/08}
+% \def\fileversion{v0.19} \def\filedate{2012/09/14}
% \changes{v0.1}{2003/03/25}{First public release}
% \changes{v0.2}{2003/08/16}{Added tabmac code, and extended indexing}
% \changes{v0.2.1}{2003/09/13}{Bug fixes and match with mempatch v1.8}
@@ -172,7 +169,7 @@
% \changes{v0.10}{2011/08/22}{Corrections to \cs{section} and other titles in numbered sections}
% \changes{v0.11}{2011/09/16}{Makes it possible to add a symbol on each verse's hanging, as in French typography. Redefines the command \cs{hangingsymbol} to define the character.}
% \changes{v0.12}{2011/10/01}{Possibility to number the pstart with the commands \cs{numberpstarttrue}.}
-% \changes{v0.12}{2011/10/01}{For compatibility with ledpar, possibility to use \cs{autopar} on the right side.}
+% \changes{v0.12}{2011/10/01}{For compatibilty with ledpar, possibility to use \cs{autopar} on the right side.}
% \changes{v0.12.1}{2011/10/02}{The numbering of \cs{pstarts} restarts on each \cs{beginnumbering}.}
% \changes{v0.12.1}{2011/10/02}{Don't number \cs{pstarts} of stanza.}
%\changes{v0.13}{2011/11/08}{New stanzaindentsrepetition counter to repeat stanza indents every \emph{n} verses.}
@@ -209,7 +206,7 @@
% \renewcommand{\egend}{%
% \end{minipage}\par\endgroup}
%
-% \title{\Lpack{\ledmac} \\
+% \title{\Lpack{\ledmac} (deprecated)\\
% A presumptuous attempt to port \\
% \edmac, \tabmac{} and \edstanza{} to LaTeX\thanks{This file (\dtxfilename)
% has version number \fileversion, last revised \filedate.}}
@@ -263,6 +260,7 @@
% \maketitle
%
%
+% {\large\bfseries This is documentation of deprecated ledmac package. If you are beginning a new project, we suggest that you use eledmac instead. If for old projects you can migrate to eledmac, you can continue to use this documentation and the ledmac package. You should add noeledmac option when loading package, to disable message about eledmac.}
% \begin{abstract}
% \begin{PW}
% For over ten years \edmac, a set of \PlainTeX\ macros, has been
@@ -288,6 +286,8 @@
% \end{PW}
%
% To report bugs, please go to ledmac's GitHub page and click "New Issue": \url{https://github.com/maieul/ledmac/issues/}. You must open an account with github.com to access my page (maieul/ledmac). GitHub accounts are free for open-source users.
+%
+% You can subscribe to the eledmac email list in:\\ \url{https://lists.berlios.de/pipermail/ledmac-users/}
% \end{abstract}
%
% \tableofcontents
@@ -573,10 +573,6 @@
% being version 1.0 of Ocober 1996. The \edstanza{} (v0.01) functions were
% added in February 2004. Sidenotes and regular footnotes in numbered
% text were added in April 2004.
-%
-% Since July~2011, ledmac is maitain by Maïeul Rouquette.
-%
-% Important changes were put in version 0.18 (see \ref{displayoptions} p.~\pageref{displayoptions}). They can make some little troubles with old customization. To correct it, please read \ref{correct018} (p.~\pageref{correct018}).
% \end{PW}
%
%
@@ -813,7 +809,6 @@
% \DescribeMacro{\numberlinefalse} \DescribeMacro{\numberlinetrue}
% Line numbering can be disabled with \cs{numberlinefalse}. It can be enabled again with \cs{numberlinetrue}.
% \DescribeMacro{\lineation}
-% \changes{v0.18}{2012/08/30}{Debug in lineation command}
% Lines can be numbered either by page, by pstart or by section; you specify
% this using the \cs{lineation}\marg{arg}
% macro, where \meta{arg} is either
@@ -1026,7 +1021,6 @@
% is supplied with the line number at which the lemma appears
% in the main text.
%
-% \changes{v0.18.2}{2012/09/05}{Debug nexted \cs{edtext} with v0.18.1 functions.}
% The \meta{lemma} may contain further \cs{edtext} commands.
% Nesting makes
% it possible to print an explanatory note on a long passage together with
@@ -1079,14 +1073,7 @@
% 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 should they be required.
-% \changes{v0.18.1}{2012/09/02}{Options nonum and nosep in \cs{Xfootnote}.}
-% A optional argument can be add before the texte of footnote. His value is a comma separated list of options. The options are :
-% \begin{itemize}
-% \item \verb|nonum| to disable line numbering for this note.
-% \item \verb|nosep| to disable lemma separator for this note.
-% \end{itemize}
%
-% Exemple : \cs{Afootnote}\verb|[nonum]{texte}|.
% \DescribeMacro{\Aendnote}
% \DescribeMacro{\Bendnote}
% \DescribeMacro{\Cendnote}
@@ -1101,7 +1088,6 @@
% output at the appropriate point in your document.
%
% \DescribeMacro{\lemma}
-% \changes{v0.18.1}{2012/09/02}{\cs{lemma} can contain commands.}
% Sometimes you want to change the lemma that gets passed to the notes.
% You can do this by using \cs{lemma}\marg{alternative} within the
% second argument to \cs{edtext}, before the note commands.
@@ -1231,58 +1217,6 @@
% \interparanoteglue{1em plus .4em minus .4em}
% \end{verbatim}
%
-% \subsection{Display options}
-% \label{displayoptions}
-% \changes{v0.18}{2012/08/30}{New generic commands to customize footnote display.}
-% \changes{v0.18.1}{2012/09/02}{\cs{nosum} deleted.}
-% Since version 0.18, some commands can be used to change display of footnote. All can have a optional argument, which is the letter of the series which option is applied.
-%
-% When a length is used, it can be stretchable : \verb|a minus b minus c|. The final length |m| is calculated by \LaTeX to have : $b-a \leq m \leq b+c$. If you use relative unity\footnote{Like \verb|em| which is the width of a M.}, it will be relative to fontsize of the footnote.
-%
-% \DescribeMacro{\numberonlyfirstinline}
-% By default, line number is printed everytime in notes. If you want to print it only the first time for a value (i.e one time for line 1,one time for line 2 etc.), you can use \cs{numberonlyfirstinline}\oarg{series}. To cancel it, use \cs{numberonlyfirstinline}\oarg{series}\oarg{false} (\verb|<series>| can be empty).
-%
-% \DescribeMacro{\symlinenum}
-% You can use \cs{symlinenum}\oarg{series}\marg{symbol} in combination with \cs{numberonlyfirstinline}\oarg{series}. From the secund lemma of the same line, the symbol will be used instead of line number.
-%
-% \DescribeMacro{\nonumberinfootnote}
-% If you don't want to have line number in footnote, you can use \cs{nonumberinfootnote}\oarg{series}. To cancel it, use \cs{nonumberinfootnote}\oarg{series}\oarg{false} (\verb|<series>| can be empty).
-%
-% \DescribeMacro{\beforenumberinfootnote}
-% You can add some space before line number in footnote with \cs{beforenumberinfootnote}\oarg{series}\marg{length}. If the line number is not printed, the space is not too. Default value is 0~pt.
-%
-% \DescribeMacro{\afternumberinfootnote}
-% You can add some space after line number in footnote with \cs{afternumberinfootnote}\oarg{series}\marg{length}. If the line number is not printed, the space is not too. Default value is 0.5~em.
-%
-% \DescribeMacro{\beforesymlinenum}
-% You can add some space before line symbol in footnote, with \cs{beforesymlinenum}\oarg{series}\marg{length}. Default value is value set by \cs{beforenumberinfootnote}.
-% \DescribeMacro{\aftersymlinenum}
-% You can add some space before line symbol in footnote, with \cs{aftersymlinenum}\oarg{series}\marg{length}. Default value is value set by \cs{afternumberinfootnote}.
-%
-% \DescribeMacro{\inplaceofnumber}
-% If no number or symbolic line number is printed, you can add a space, with \cs{inplaceofnumber}\oarg{series}\marg{length}. Default value is 1~em.
-%
-% \DescribeMacro{\lemmaseparator}
-% By default, in footnote, separator between lemma and note is a right bracket (\cs{rbracket}). You can use \cs{lemmaseparator}\oarg{series}\marg{lemmaseparator} to change it. The optional argument can be used to precise in which series it is applied. Note that there is a no breakable space between lemma and separator, but \textbf{breakeable} space between separator and lemma.
-%
-% \DescribeMacro{\beforelemmaseparator}
-% You can add some space between lemma and separator, by using \cs{beforelemmaseparator}\oarg{series}\marg{length}. If your lemma separator is empty, this space won't be printed. Default value is 0~em.
-%
-% \DescribeMacro{\afterlemmaseparator}
-% You can add some space between separator and note, by using \cs{afterlemmaseparator}\oarg{series}\marg{length}. If your lemma separator is empty, this space won't be printed. Default value is 0.5~em.
-%
-% \DescribeMacro{\nolemmaseparator}
-% You can suppress lemma separator, using \cs{nolemmaseparator}\oarg{series}, which is only a alias of \cs{lemmaseparator}\oarg{series}\verb|{}|.
-%
-% \changes{v0.18.1}{2012/09/02}{\cs{inplaceoflemmaseparator} added.}
-% \DescribeMacro{\inplaceoflemmaseparator}
-% If no lemma separator is printed, you can add a space, with \cs{inplaceoflemmaseparator}\oarg{series}\marg{length}. Default value is 1~em.
-%
-% \DescribeMacro{\afternote}
-% You can add some space after note, by using \cs{afternote}\oarg{series}\marg{length}. The default value is \verb|1em plus.4em minus.4em|.
-%
-% \DescribeMacro{\parafootsep}
-% For paragraphed footnotes (see below), you can choice the separator between each not by \cs{parafootsep}\oarg{series}\marg{length}. A common separator is double pipe ($||$). So you can set by \cs{parafootsep}\verb+$||$+.
%
% \begin{PW}
% You should set up the page layout parameters, and in particular the
@@ -1313,7 +1247,7 @@
% \newcommand*{\Gfootnote}[1]{%
% \ifnumberedpar@
% \xright@appenditem{\noexpand\vGfootnote{G}%
-% {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
+% {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
% \global\advance\insert@count by \@ne
% \else
% \vGfootnote{G}{{0|0|0|0|0|0|0}{}{#1}}%
@@ -1323,7 +1257,7 @@
% \newcommand*{\mpGfootnote}[1]{%
% \ifnumberedpar@
% \xright@appenditem{\noexpand\mpvGfootnote{G}%
-% {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
+% {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
% \global\advance\insert@count by \@ne
% \else
% \mpvGfootnote{G}{{0|0|0|0|0|0|0}{}{#1}}%
@@ -1886,7 +1820,7 @@
% \cs{ledleftnote}\marg{text} will put \meta{text} into the left margin level
% with where the command was issued. Similarly, \cs{ledrightnote}\marg{text}
% puts \meta{text} in the right margin.
-% \changes{v0.18.2}{2012/09/05}{Possibility to have commands in sidenotes.}
+%
% \DescribeMacro{\ledsidenote}
% \DescribeMacro{\sidenotemargin}
% \cs{ledsidenote}\marg{text} will put \meta{text} into the margin specified
@@ -2364,14 +2298,170 @@
% \end{PW}
%
% \begin{PW}
+% \DescribeMacro{\ledplinenumtrue}
+% \DescribeMacro{\ledplinenumfalse}
+% \DescribeMacro{\symplinenum}
+% Following the declaration \cs{ledplinenumtrue} critical footnotes will be
+% marked with their line number. After \cs{ledplinenumfalse} the footnotes
+% will be marked by \cs{symplinenum}, whose default definition is \\
+% \verb?\newcommand*{\symplinenum}{}?
%
% \subsection{Hints}
%
+% By doing a little work it is possible, for example,
+% to set things up so that a particular footnote series only prints
+% the linenumber for the first footnote on a
+% line.\footnote{This was requested by Dirk-Jan Dekker\index{Dekker, Dirk-Jan}
+% (\texttt{djdekker@let.ru.nl}).} You may wish to skip
+% the following but if not read it in conjunction with the code definitions
+% from section~\ref{sec:nfootformat}. Suppose that we only want this to
+% apply to the \texttt{B} series
+% of normal footnotes. To accomplish this goal we have to modify the definition
+% of \cs{normalvfootnote} as follows:
+%
+% \begin{verbatim}
+% \makeatletter
+% \newcommand*{\previous@B@number}{-1}
+% \newcommand*{\previous@page}{-1}
+% \renewcommand*{\normalvfootnote}[2]{
+% \insert\csname #1footins\endcsname\bgroup
+% \notefontsetup
+% \footsplitskips
+% \spaceskip=\z@skip \xspaceskip=\z@skip
+% \l@dparsefootspec #2\ledplinenumtrue% % NEW FROM HERE
+% \ifnum\@nameuse{previous@#1@number} = \l@dparsedstartline\relax
+% \ledplinenumfalse
+% \fi
+% \ifnum\previous@page=\l@dparsedstartpage\relax
+% \else \ledplinenumtrue \fi
+% \ifnum\l@dparsedstartline=\l@dparsedendline\relax
+% \else \ledplinenumtrue \fi
+% \expandafter\xdef\csname previous@#1@number\endcsname{\l@dparsedstartline}%
+% \xdef\previous@page{\l@dparsedstartpage}% % TO HERE
+% \csname #1footfmt\endcsname #2\egroup}
+% \footnormal{B}
+% \makeatother
+% \end{verbatim}
+% The additional code uses \cs{l@dparsefootspec} to get the footnote's line
+% number as \cs{l@dparsedstartline} and the page number as
+% \cs{l@dparsedstartpage}. It then sets \cs{ledplinenum} according
+% to whether or not \cs{l@dparsedstartline} is the same as the
+% previous (\cs{previous@B@number}) number. If the page number has changed
+% then the line number must be printed. If the starting line number
+% is not the same as the ending line number then the line number
+% must be printed. After \cs{ledplinenum}
+% has been set the two previous values are updated to the current
+% line and page numbers.
+%
+% After the redefinition of \cs{normalvfootnote} the \texttt{B}
+% series has to be
+% respecified as normal for the changes to take effect. The \texttt{A} series
+% will still be in the traditional style of printing every line number.
+% To eliminate duplicate printing from the normal \texttt{A} series, you
+% simply need to define \cs{previous@A@number} and respecify the series.
+%
+% Similar techniques can be used for the other footnote styles.
+%
+% \changes{v0.3}{2004/02/14}{Two more Dekker examples}
+% Dirk-Jan Dekker\index{Dekker, Dirk-Jan} felt that there was too much
+% empty space if the starting line number was ommited in a footnote. He
+% proposed\footnote{Posted to \texttt{comp.text.tex} on 24 January 2004.}
+% this solution, here applied to a paragraphed footnote.
+% \begin{verbatim}
+% \renewcommand*{\Bparafootfmt}[3]{%
+% \ledsetnormalparstuff
+% \scriptsize
+% \notenumfont\printlines#1|% % NEW FROM HERE
+% \ifledplinenum
+% \enspace
+% \else
+% {\hskip 0em plus 0em minus .4em}%
+% \fi% % TO HERE
+% {\select@lemmafont#1|#2}\rbracket\enskip
+% #3\penalty-10}
+% \end{verbatim}
%
+% Another question has been how to control the printing, or not,
+% of line numbers in the footnote from the |\edtext| command. Here
+% is an awful hack to do this. The example is an extension of the
+% code just above.
+% \begin{verbatim}
+% \newcounter{killnum}
+% \setcounter{killnum}{0}
+% \newcommand*{\killnumbers}{\setcounter{killnum}{-1}}
+% \newcommand*{\restorenumbers}{\setcounter{killnum}{0}}
+% \renewcommand*{\Bparafootfmt}[3]{%
+% \ledsetnormalparstuff
+% \scriptsize
+% \ifnum\c@killnum<\z@\ledplinenumfalse\fi% %% NEW
+% \notenumfont\printlines#1|%
+% \ifledplinenum
+% \enspace
+% \else
+% {\hskip 0em plus 0em minus .4em}%
+% \fi%
+% {\select@lemmafont#1|#2}\rbracket\enskip
+% #3\penalty-10}
+% \end{verbatim}
+% In the text it is used like:
+% \begin{verbatim}
+% ...
+% \edtext{text}{\Bfootnote{TEXT\killnumbers}}% later B line numbers not printed
+% ...
+% \edtext{textual}{\Bfootnote{TEXTUAL\restorenumbers}}% later B numbers printed
+% ...
+% \end{verbatim}
+% That is, |\killnumbers| and |\restorenumbers| only take effect for the next
+% and later |\edtext|s, not the one they are in. You have to kill/restore
+% numbers in the note \emph{before} you want the change.
+%
+% Dirk-Jan Dekker\index{Dekker, Dirk-Jan}
+% suggested\footnote{Private communication, 17 February 2004.} the following
+% \verb?\killnumber? macro if you want to occasionaly kill a number. \\
+% \verb?\newcommand*{\killnumber}{\linenum{|-1|||-1||}}? \\
+% Then insert \\
+% \verb?\ifnum#2=-1 \ledplinenumfalse\fi? \\
+% near the start of the definition of \verb?\printlines? so it reads
+% \begin{verbatim}
+% \def\printlines#1|#2|#3|#4|#5|#6|#7|{\begingroup
+% \ifnum#2=-1 \ledplinenumfalse\fi% %% NEW
+% \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}%
+% ...
+% \end{verbatim}
+% It is used like this: \\
+% \verb?\edtext{critical}{\killnumber\Afootnote{criticism}}? \\
+% The \verb?\killnumber? command will kill the line number for the one
+% note, unlike \verb?\killnumbers? which kills numbers for subsequent notes.
+%
+%
+% ^^A
+% ^^A From D-J D email 17 Feb 04:
+% ^^A In preamble \verb?\newcommand*{\killnumber}{\linenum{|-1|||-1||}}?
+% ^^A Into \verb?\def\printlines#1|#2|#3|#4|#5|#6|#7|?
+% ^^A \verb?\ifnum#2=-1 \ledplinenumfalse \fi
+% ^^A Use it as
+% ^^A \verb?\edtext{critical}{\killnumber\Afootnote{criticism}}?
+% ^^A Which kills the number for the one footnote only (taking effect
+% ^^A immediately, not delayed like \killnumbers)
+% ^^A
+%
+% Perhaps, though, you just want a footnote series with no numbers at
+% all (and maybe no lemma either).
+% \begin{verbatim}
+% \footparagraph{A}
+% \makeatletter
+% \def\zparafootfmt#1#2#3{%
+% \ledsetnormalparstuff
+% \notetextfont #3\penalty-10 }
+% \makeatother
+% \let\Afootfmt=\zparafootfmt
+% ...
+% \beginnumbering
+% \edtext{}{\Afootnote{numberless and lemmaless}}
+% ...
+% \end{verbatim}
%
-%
-%
-% One user has wanted a big space between the text and footnotes
+% At least one user has wanted a big space between the text and footnotes
% but a smaller space between each series. That is, the first printed series
% on a page must have a big skip and all later ones a small skip. Of course,
% there is no telling which will be the first on any given page; on one
@@ -2397,8 +2487,99 @@
% \end{verbatim}
% In addition similar changes would be required for paragraphed footnotes,
% footnotes in minipages, and the familiar footnotes.
-%
+%
+% Another user has had a wider ranging set of requirements:
+% \begin{itemize}
+% \item Number paragraphs and use the number in the notes for that paragraph;
+% \item Duplicate a paragraph number later in the document and use it for
+% that paragraph's notes;
+% \item In any series of notes only use the paragraph number for the first
+% in the paragraph
+% \item Have some series use line nummbers in the notes and in other series
+% have neither lemmas nor line numbers in the notes.
+% \item Perhaps eliminate all paragraph numbers in the notes.
+% \end{itemize}
+% Here is some code that enables these requirements to be met. This should
+% be in an environment where \texttt{@} is treated as a letter.
+% First, here is a version of \cs{ref} that returns a number even if the
+% corresponding \cs{label} has not been defined.
+% \begin{verbatim}
+% \newcommand*{\saferef}[1]{%
+% \expandafter\ifx\csname r@#1\endcsname\relax 0\else
+% \ref{#1}\fi}
+% \end{verbatim}
+% Now for some code for the paragraph numbering. Use \cs{newpara} at the start
+% of a numbered paragraph and \cs{oldpara}\marg{lab} at the start of
+% a `re-numbered' one, where \cs{label}\marg{lab} has been used in the
+% original numbered one.
+% \begin{verbatim}
+% \newcounter{para}\setcounter{para}{0}
+% \newcounter{thispara}\setcounter{thispara}{0}
+% \newcommand*{\newpara}{%
+% \refstepcounter{para}%
+% \setcounter{thispara}{\value{para}}%
+% \noindent\textbf{\thepara. }}
+% \newcommand{\oldpara}[1]{%
+% \noindent\setcounter{thispara}{\saferef{#1}}\textbf{\saferef{#1}. }}
+% \end{verbatim}
+% Set up the \texttt{A} note series for lemmas, line numbers and non-repeated
+% paragraph numbers, assuming paragraphed notes.
+% \begin{verbatim}
+% \newif\ifparnumfoot
+% \parnumfoottrue% false to eliminate paragraph numbers in notes
+% \newcommand*{\previous@Aparnum}{-1}
+% \def\printlinesA#1|#2|#3|#4|#5|#6|#7|{\begingroup
+% \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}%
+% \ifnum\previous@Aparnum=\the\c@thispara% not a new paragraph
+% \else% new paragraph, print, and update the check
+% \ifparnumfoot \textbf{\thethispara.}\fi
+% \xdef\previous@Aparnum{\the\c@thispara}%
+% \fi
+% \ifledplinenum \linenumr@p{#2}\else \symplinenum\fi
+% \ifl@d@ssub \fullstop \sublinenumr@p{#3}\fi
+% \ifl@d@dash \endashchar\fi
+% \ifl@d@pnum #4\fullstop\fi
+% \ifl@d@elin \linenumr@p{#5}\fi
+% \ifl@d@esl \ifl@d@elin \fullstop\fi \sublinenumr@p{#6}\fi
+% \endgroup}
+% \renewcommand*{\Afootfmt}[3]{%
+% \ledsetnormalparstuff
+% {\notenumfont\printlinesA#1|}\enspace
+% {\select@lemmafont#1|#2}\rbracket\enskip
+% #3\penalty-10 }
+% \end{verbatim}
+% Set up the \texttt{B} series notes for no line numbers or lemmas, just
+% non-repeated paragraph numbers, assuming normal notes.
+% \begin{verbatim}
+% \newcommand*{\previous@Bparnum}{-1}
+% \def\printlinesB#1|#2|#3|#4|#5|#6|#7|{\begingroup
+% \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}%
+% \ifnum\previous@Bparnumm=\the\c@thispara% not a new paragraph
+% \else% new paragraph, print, and update the check
+% \ifparnumfoot \textbf{\thethispara.}\fi
+% \xdef\previous@Aparnum{\the\c@thispara}%
+% \fi
+% \endgroup}
+% \renewcommand*{\Bfootfmt}[3]{%
+% \ledsetnormalparstuff
+% {\notenumfont\printlinesB#1|}%\enspace
+% {\select@lemmafont#1|#2}%\enskip
+% #3\strut\par}
+% \end{verbatim}
+%
+% You can use the above like:
+% \begin{verbatim}
+% ...
+% \newpara\label{fpara} A numbered\edtext{}{\Bfootnote{lemma-less
+% and linenumber-less}} \edtext{paragraph}{\Afootnote{chunk}} ...
+% ...
+% \oldpara{fpara} \edtext{Repeated}{\Afootnote{Again}}
+% paragraph\edtext{}{\Bfootnote{Just a comment}} ...
+% ...
+% \end{verbatim}
+%
% \end{PW}
+%
% \subsection{Known and suspected limitations}
%
% In general, \Ledmac's system for adding marginal line numbers
@@ -2502,7 +2683,7 @@
% \begin{verbatim}
% ... \edtext{\colorbox{mycolor}{lemma}}{\Afootnote{...\colorbox...}}
% \end{verbatim}
-% If you actually try
+% If you actally try
% this\footnote{Reported by Dirk-Jan Dekker\index{Dekker, Dirk-Jan}
% in the CTT thread `Incompatibility
% of ``color'' package' on 2003/08/28.}
@@ -2803,7 +2984,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ledmac}[2012/09/08 v0.18.3 LaTeX port of EDMAC]
+\ProvidesPackage{ledmac}[2012/08/14 v0.18 LaTeX port of EDMAC]
% \end{macrocode}
%
@@ -2832,8 +3013,10 @@
% \changes{v0.4}{2004/02/29}{Added final/draft options}
% \begin{macrocode}
\newif\ifledfinal
+\newif\ifnoeledmac
\DeclareOption{final}{\ledfinaltrue}
\DeclareOption{draft}{\ledfinalfalse}
+\DeclareOption{noeledmac}{\noeledmactrue}
\ExecuteOptions{final}
% \end{macrocode}
% Use the starred form of \verb?\ProcessOptions? which executes options in
@@ -2844,14 +3027,9 @@
% \begin{macrocode}
\ProcessOptions*\relax
-% \end{macrocode}
+% \end{macrocode
% \end{macro}
%
-% Loading package \emph{xargs} to declare commands with optional arguments. \emph{Etoolbox} is also used for more clear code, for example in dynamic command names (it could remplace \cs{csname} etc.)
-% \begin{macrocode}
-\RequirePackage{xargs}
-\RequirePackage{etoolbox}
-% \end{macrocode}
% \begin{macro}{\showlemma}
% \verb?\showlemma?\marg{lemma} typesets the lemma text in the body.
% It depends on the option.
@@ -2860,7 +3038,7 @@
\ifledfinal
\newcommand*{\showlemma}[1]{#1}
\else
- \newcommand*{\showlemma}[1]{\underline{#1}}
+ \newcommand*{\showlemma}[1]{\textit{#1}}
\fi
% \end{macrocode}
@@ -2937,6 +3115,13 @@
% \end{macro}
% \end{PW}
%
+% \changes{v0.19}{2012/09/14}{Add an optional message to suggest to migrate to eledpar.}
+% \begin{macrocode}
+\ifnoeledmac
+\else
+\ledmac@error{Ledmac is an depreciated package. We suggest you to use eledmac instead. If you want to continue to use ledmac, you can disable this message by adding option noeledmac when loading package.}{\@ehc}
+\fi
+% \end{macrocode}
% \begin{PW}
% \begin{macro}{\led@err@NumberingStarted}
% \begin{macro}{\led@err@NumberingNotStarted}
@@ -3337,6 +3522,7 @@
%
% \subsection{Choosing the system of lineation}
% \changes{v0.15}{2012/06/11}{Line numbering can be reset at each pstart.}
+% \changes{v0.18}{2012/09/14}{Debug \cs{lineation} command.}
% Sometimes you want line numbers that start at $1$ at the top of each
% page; sometimes you want line numbers that start at $1$ at each \cs{pstart}; other times you want line numbers that start at $1$ at the start
% of each section and increase regardless of page breaks.
@@ -3388,12 +3574,12 @@
\global\bypage@false
\global\bypstart@true
\else
- \def\@tempb{section}
- \ifx\@tempa\@tempb
+ \def\@tempb{section}
+ \ifx\@tempa\@tempb
\global\bypage@false
\global\bypstart@false
- \else
- \led@warn@BadLineation
+ \else
+ \led@warn@BadLineation
\fi
\fi
\fi
@@ -5116,13 +5302,17 @@
% \changes{v0.2.1}{203/08/25}{Removed some \cs{let}s from \cs{no@expands}.
% These were in \edmac{} but I feel that they should not have been as they
% disabled page/line refs in footnotes}
-% \changes{v0.18.2}{2012/09/05}{Change to be compatible with 0.18.1 changes, and to have formating commands in nexted \cs{edtext}.}
% \begin{macrocode}
-\newcommand*{\no@expands}{%
+\newcommand*{\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\edlabel=\@gobble
+% \let\edpageref=\@gobble
+% \let\lineref=\@gobble
+% \let\sublineref=\@gobble
\let\setline=\@gobble \let\advanceline=\@gobble
\let\critext=\dummy@text
\let\edtext=\dummy@edtext
@@ -5134,12 +5324,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@tag}
-% Now, we define an empty \cs{@tag} command. It will be redefine by \cs{edtext} : its value is the first args. It will be used by the \cs{Xfootnote} commands.
-% \begin{macrocode}
-\newcommand{\@tag}{}
-% \end{macrocode}
-% \end{macro}
% \begin{macro}{\critext}
% Now we begin \cs{critext} itself. The definition requires a \verb"/" after
% the arguments: this eliminates the possibility of problems about
@@ -5156,7 +5340,7 @@
\long\def\critext#1#2/{\leavevmode
% \end{macrocode}
%
-% \begin{macro}{\csexpandonce{@tag}}
+% \begin{macro}{\@tag}
% Our normal lemma is just argument \verb"#1"; but that argument could have
% further invocations of \cs{critext} within it. We get a copy of the
% lemma without any \cs{critext} macros within it by temporarily redefining
@@ -5169,7 +5353,8 @@
% that can cause trouble for us.
% \begin{macrocode}
\begingroup
- \global\renewcommand{\@tag}{\no@expands #1}%%
+ \no@expands
+ \xdef\@tag{\protect#1}%
% \end{macrocode}
% \end{macro}
%
@@ -5237,7 +5422,8 @@
% \begin{macrocode}
\newcommand{\edtext}[2]{\leavevmode
\begingroup
- \global\renewcommand{\@tag}{\no@expands #1}%%
+ \no@expands
+ \xdef\@tag{\protect#1}%
\set@line
\global\insert@count=0
\ignorespaces #2\relax
@@ -5261,7 +5447,7 @@
% \begin{macrocode}
\newif\ifnumberline
\numberlinetrue
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \begin{macro}{\set@line}
% The \cs{set@line} macro
@@ -5310,7 +5496,7 @@
% The \cs{lemma}\marg{text} macro allows you to change the lemma
% that's passed on to the notes.
% \begin{macrocode}
-\newcommand*{\lemma}[1]{\global\renewcommand{\@tag}{\no@expands #1}}
+\newcommand*{\lemma}[1]{\xdef\@tag{\protect#1}\ignorespaces}
% \end{macrocode}
% \end{macro}
%
@@ -5423,8 +5609,8 @@
% \end{macro}
%
% \begin{macro}{\pstart}
-% \begin{macro}{\numberpstarttrue}
-% \begin{macro}{\numberpstartfalse}
+% \begin{macro}{numberpstarttrue}
+% \begin{macro}{numberpstartfalse}
% \begin{macro}{thepstart}
% \cs{pstart} starts the paragraph by
% clearing the \cs{inserts@list} list and other
@@ -5496,17 +5682,23 @@
% \begin{macrocode}
\l@dzeropenalties
\endgraf\global\num@lines=\prevgraf\egroup
- \global\par@line=0
-% \end{macrocode}
-% We check if lineation is by pstart : in this case, we reset line number, but only in the secund line of the pstart, to prevent some trouble. We can't reset line number at the begining of \cs{pstart} \cs{setline} is parsed at the end of previous \cs{pend}, and so, we must do it at the end of first line of pstart.
-% \begin{macrocode}
- \csnumdef{pstartline}{0}
- \loop\ifvbox\raw@text
- \csnumdef{pstartline}{\pstartline+1}%
- \do@line
- \ifbypstart@%
- \ifnumequal{\pstartline}{1}{\setline{1}}{}%
- \fi
+% \end{macrocode}
+% We check if lineation is by pstart : in this case, we reset line number,
+% but only in the second line of the pstart, to prevent some trouble.
+% We can't reset line number at the begining of \cs{pstart} \cs{setline}
+% is parsed at the end of previous \cs{pend},
+% and so, we must do it at the end of first line of pstart.
+% \begin{macrocode}
+ \newcount\pstartline%
+ \pstartline=0\relax%
+ \loop\ifvbox\raw@text%
+ \advance\pstartline 1%
+ \do@line%
+ \ifbypstart@%
+ \ifnum\pstartline=1%
+ \setline{1}%
+ \fi%
+ \fi%
\repeat
% \end{macrocode}
% Deal with any leftover notes, and then end the group that was begun
@@ -5516,8 +5708,8 @@
\endgroup
\ignorespaces
\ifnumberpstart
- \pstartnumtrue
- \fi
+ \pstartnumtrue
+ \fi
\@oldnobreak
\addtocounter{pstart}{1}}
@@ -5707,7 +5899,7 @@
% \begin{macrocode}
\newcommand*{\getline@num}{%
\ifnumberline
- \global\advance\absline@num \@ne
+ \global\advance\absline@num \@ne
\fi
\do@actions
\do@ballast
@@ -6476,26 +6668,6 @@
%
%
% \subsection{Outer-level footnote commands}
-% \changes{v0.18.1}{2012/09/02}{Options nonum and nosep in \cs{Xfootnote}s.}
-% \changes{v0.18.2}{2012/09/05}{Code refactoring in options of \cs{Xfootnote}s.}
-% \begin{macro}{\footnoteoptions@}
-% The \cs{footnoteoption@}\oarg{side}\marg{options}\marg{value} change the value of on options of Xfootnote, to switch between true and false.
-% \begin{macrocode}
-\newcommandx*{\footnoteoptions@}[3][1=L,usedefault]{%
- \renewcommand{\do}[1]{%
- \ifstrequal{#1}{L}{% In Leftside
- \xright@appenditem{\global\noexpand\settoggle{##1@}{#3}}\to\inserts@list% Switch toogle, in all case
- \global\advance\insert@count \@ne% Increment the left insert counter.
- }%
- {%
- \xright@appenditem{\global\noexpand\settoggle{##1@}{#3}}\to\inserts@listR% Switch toogle, in all case
- \global\advance\insert@countR \@ne% Increment the right insert counter insert.
- }%
- }%
- \notblank{#2}{\docsvlist{#2}}{}% Parsing all options
-}
-% \end{macrocode}
-% \end{macro}
% \begin{macro}{\Afootnote}
% The outer-level footnote commands will look familiar: they're
% just called \cs{Afootnote}, \cs{Bfootnote}, etc., instead of
@@ -6507,12 +6679,10 @@
% the \cs{inserts@list} list, and increment the deferred-page-bottom-note
% counter.
% \begin{macrocode}
-\newcommand*{\Afootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\Afootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\vAfootnote{A}%
- {{\l@d@nums}{\csexpandonce{@tag}}{{\csexpandonce{content}}}}}\to\inserts@list
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
\global\advance\insert@count \@ne
% \end{macrocode}
%
@@ -6522,10 +6692,8 @@
% limitation of \Ledmac.
% \begin{macrocode}
\else
- \vAfootnote{A}{{0|0|0|0|0|0|0}{}{{\csexpandonce{content}}}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \vAfootnote{A}{{0|0|0|0|0|0|0}{}{#1}}%
+ \fi\ignorespaces}
% \end{macrocode}
% \end{macro}
%
@@ -6535,64 +6703,44 @@
% \begin{macro}{\Efootnote}
% We need similar commands for the other footnote series.
% \begin{macrocode}
-\newcommand*{\Bfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\Bfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\vBfootnote{B}%
- {{\l@d@nums}{\csexpandonce{@tag}}{{\csexpandonce{content}}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
- \vBfootnote{B}{{0|0|0|0|0|0|0}{}{{\csexpandonce{content}}}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \vBfootnote{B}{{0|0|0|0|0|0|0}{}{#1}}%
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\Cfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\Cfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\vCfootnote{C}%
- {{\l@d@nums}{\csexpandonce{@tag}}{{\csexpandonce{content}}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
- \vCfootnote{C}{{0|0|0|0|0|0|0}{}{{\csexpandonce{content}}}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \vCfootnote{C}{{0|0|0|0|0|0|0}{}{#1}}%
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\Dfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\Dfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\vDfootnote{D}%
- {{\l@d@nums}{\csexpandonce{@tag}}{{\csexpandonce{content}}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
- \vDfootnote{D}{{0|0|0|0|0|0|0}{}{{\csexpandonce{content}}}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \vDfootnote{D}{{0|0|0|0|0|0|0}{}{#1}}%
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\Efootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\Efootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\vEfootnote{E}%
- {{\l@d@nums}{\csexpandonce{@tag}}{{\csexpandonce{content}}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
- \vEfootnote{E}{{0|0|0|0|0|0|0}{}{{\csexpandonce{content}}}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \vEfootnote{E}{{0|0|0|0|0|0|0}{}{#1}}%
+ \fi\ignorespaces}
% \end{macrocode}
% \end{macro}
@@ -6630,79 +6778,54 @@
% For footnotes in minipages and the like, we need a similar series of commands.
% \changes{v0.4}{2004/02/29}{Added \cs{mpAfootnote} and friends}
% \begin{macrocode}
-\newcommand*{\mpAfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\mpAfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\mpvAfootnote{A}%
- {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
\mpvAfootnote{A}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\mpBfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\mpBfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\mpvBfootnote{B}%
- {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
\mpvBfootnote{B}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\mpCfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\mpCfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\mpvCfootnote{C}%
- {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
\mpvCfootnote{C}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\mpDfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\mpDfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\mpvDfootnote{D}%
- {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
\mpvDfootnote{D}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi%
- \footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \fi\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*{\mpEfootnote}[2][]{%
- \newcommand{\content}{#2}%
- \footnoteoptions@{#1}{true}%
+\newcommand*{\mpEfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\mpvEfootnote{E}%
- {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
- \global\advance\insert@count \@ne%
- \footnoteoptions@{#1}{false}%
+ {{\l@d@nums}{\@tag}{#1}}}\to\inserts@list
+ \global\advance\insert@count \@ne
\else
\mpvEfootnote{E}{{0|0|0|0|0|0|0}{}{#1}}%
- \fi%
-\footnoteoptions@{#1}{false}%
- \ignorespaces}
+ \fi\ignorespaces}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -6752,7 +6875,7 @@
\notefontsetup
\footsplitskips
\spaceskip=\z@skip \xspaceskip=\z@skip
- \csname #1footfmt\endcsname #2[#1]\egroup}
+ \csname #1footfmt\endcsname #2\egroup}
% \end{macrocode}
% \end{macro}
%
@@ -6784,7 +6907,7 @@
\hsize\columnwidth
\@parboxrestore
\color@begingroup
- \csname #1footfmt\endcsname #2[#1]\color@endgroup}}
+ \csname #1footfmt\endcsname #2\color@endgroup}}
% \end{macrocode}
% \end{macro}
@@ -6815,15 +6938,11 @@
\newcommand*{\ledsetnormalparstuff}{%
\normal@pars
\parindent \z@ \parfillskip \z@ \@plus 1fil}
-\newcommandx*{\normalfootfmt}[4][4=Z]{% 4th arg is optional, for ascendant compatibility
- \ledsetnormalparstuff%
- \strut{\printlinefootnote{#1}{#4}}%
- {\select@lemmafont#1|#2}%
- \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
- {\hskip\csuse{inplaceoflemmaseparator@#4}}%
- {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
- }}%
- #3\strut\par}
+\newcommand*{\normalfootfmt}[3]{%
+ \ledsetnormalparstuff
+ {\notenumfont\printlines#1|}\strut\enspace
+ {\select@lemmafont#1|#2}\rbracket\enskip#3\strut\par}
+
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -6908,6 +7027,21 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\ifledplinenum}
+% \begin{macro}{\symplinenum}
+% \begin{PW}
+% Sometimes it could be useful not to print the line number, or give
+% it a symbolic value (perhaps if there are several notes from the same line).
+% \end{PW}
+% \changes{v0.2.2}{2003/11/04}{Added \cs{symplinenum}}
+% \begin{macrocode}
+\newif\ifledplinenum
+ \ledplinenumtrue
+\newcommand*{\symplinenum}{}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\l@dparsefootspec}
% \begin{macro}{\l@dp@rsefootspec}
@@ -7036,17 +7170,25 @@
% ending line number (in which case we need to insert a period).
% \begin{macrocode}
\ifl@d@pnum #1\fullstop\fi
- \linenumrep{#2}
% \end{macrocode}
+% \begin{PW}
+% The other thing is whether to print the real starting line number or a
+% symbolic value.
% \changes{v0.3}{2004/02/14}{Added \cs{linenumr@p} and \cs{sublinenumr@p}
% to \cs{printlines}}
+% \end{PW}
% \begin{macrocode}
+ \ifledplinenum \linenumrep{#2}\else \symplinenum\fi
\ifl@d@ssub \fullstop \sublinenumrep{#3}\fi
\ifl@d@dash \endashchar\fi
\ifl@d@pnum #4\fullstop\fi
\ifl@d@elin \linenumrep{#5}\fi
\ifl@d@esl \ifl@d@elin \fullstop\fi \sublinenumrep{#6}\fi
\endgroup}
+
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\normalfootstart}
% \phantomsection\label{normalvalues}\relax
% \cs{normalfootstart}
@@ -7248,7 +7390,6 @@
% (\texttt{A}--\texttt{E}) denoting the series of notes to be paragraphed.
% \begin{macrocode}
\newcommand*{\footparagraph}[1]{%
- \expandafter\newcount\csname prevpage#1@num\endcsname
\expandafter\let\csname #1footstart\endcsname=\parafootstart
\expandafter\let\csname v#1footnote\endcsname=\para@vfootnote
\expandafter\let\csname #1footfmt\endcsname=\parafootfmt
@@ -7264,8 +7405,14 @@
\expandafter\let\csname mp#1footgroup\endcsname=\mppara@footgroup
\count\csname mp#1footins\endcsname=1000
}
+
% \end{macrocode}
% \end{macro}
+% \changes{v0.16}{2012/06/21}{\cs{parafootftmsep} command is printed between each paragraphed footnote}
+% You can redefine the \cs{parafootftmsep} command to print a separator between each paragraphed footnote (on the same page). A usual separator is a double pipe ($||$). To add double-pipe separators:
+% \begin{verbatim}
+% \renewcommand{\parafootftmsep}{\thinspace$||$\enspace}
+% \end{verbatim}
% \begin{macro}{\footfudgefiddle}
% \begin{PW}
% For paragraphed footnotes \TeX{} has to estimate the amount of space
@@ -7417,8 +7564,8 @@
\notefontsetup
\footsplitskips
\setbox0=\vbox{\hsize=\maxdimen
- \noindent\csname #1footfmt\endcsname#2[#1]}%
- \setbox0=\hbox{\unvxh0[#1]}%
+ \noindent\csname #1footfmt\endcsname#2}%
+ \setbox0=\hbox{\unvxh0}%
\dp0=0pt
\ht0=\csname #1footfudgefactor\endcsname\wd0
% \end{macrocode}
@@ -7457,8 +7604,8 @@
\notefontsetup
\footsplitskips
\setbox0=\vbox{\hsize=\maxdimen
- \noindent\color@begingroup\csname #1footfmt\endcsname #2[#1]\color@endgroup}%
- \setbox0=\hbox{\unvxh0[#1]}%
+ \noindent\color@begingroup\csname #1footfmt\endcsname #2\color@endgroup}%
+ \setbox0=\hbox{\unvxh0}%
\dp0=\z@
\ht0=\csname #1footfudgefactor\endcsname\wd0
\box0
@@ -7470,7 +7617,7 @@
% \end{PW}
%
% \begin{macro}{\unvxh}
-% Here is (modified) Michael's\index{Downes, Michael} definition of \cs{unvxh},
+% Here is Michael's\index{Downes, Michael} definition of \cs{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
@@ -7480,18 +7627,75 @@
% cancels these unwanted paragraph-final items using \cs{unskip} and
% \cs{unpenalty}.
% \begin{macrocode}
-\newcommandx*{\unvxh}[2][2=Z]{% 2th is optional for retro-compatibility
+\newcommand*{\unvxh}[1]{%
\setbox0=\vbox{\unvbox#1%
\global\setbox1=\lastbox}%
\unhbox1
\unskip % remove \rightskip,
\unskip % remove \parfillskip,
\unpenalty % remove \penalty of 10000,
- \hskip\csuse{afternote@#2}} % but add the glue to go between the notes
+ \hskip\ipn@skip} % but add the glue to go between the notes
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\interparanoteglue}
+% \begin{macro}{\ipn@skip}
+% \phantomsection
+% \label{interparanoteglue}\relax
+% Close observers will notice that we snuck some glue called
+% \cs{ipn@skip} onto the end of the hbox produced by \cs{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 \cs{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---\cs{interparanoteglue}.
+% We put this value into the value of a glue register
+% \cs{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
+% \verb"em" will be taken from the right font.
+% \begin{macrocode}
+\newskip\ipn@skip
+\newcommand*{\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
+% \cs{interparanoteglue}. Remember that in \cs{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 (\thetexbook, pp.\,398--399).
+%
+% The length of the footnote includes the natural size of the glue
+% specified by \cs{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
+% \cs{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 \cs{vbox} message from the output
+% routine. To minimize the risk of this, you can do two things:
+% keep the \verb"plus" and \verb"minus" components of \cs{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 \verb"\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}
@@ -7500,24 +7704,20 @@
% needed for paragraphed notes---leaving out the \verb"\endgraf" at the
% end, sticking in special penalties and kern, and leaving out the
% \cs{footstrut}. The first argument is the line and page
-% number information, the second is the lemma, the third is the
-% text of the footnote, and the fourth is the series (optional, for ascendant compatibility).
-% \begin{macrocode}
-\newcommandx*{\parafootfmt}[4][4=Z]{%
- \insertparafootsep{#4}%
- \ledsetnormalparstuff%
- \printlinefootnote{#1}{#4}%
- {\select@lemmafont#1|#2}%
- \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
- {\hskip\csuse{inplaceoflemmaseparator@#4}}%
- {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
- }}%
+% number information, the second is the lemma, and the third is the
+% text of the footnote.
+% \begin{macrocode}
+\newcommand*{\parafootfmt}[3]{%
+ \insertparafootftmsep%
+ \ledsetnormalparstuff
+ {\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.
-% The \cs{insertparafootsep} command is used to insert the \cs{parafootsep@series} between each note in the \emph{same} page.
+% The \cs{insertparafootftmsep} command is used to insert the \cs{parafootftmsep} between each note in the \emph{same} page.
% \end{macro}
%
% \begin{macro}{\para@footgroup}
@@ -7578,21 +7778,22 @@
% \end{macro}
%
% \subsubsection{Insertion of footnotes separator}
-%The command \cs{insertparafootsep}\marg{series} must be called at the begining of \cs{parafootftm} (and like commands).
+% \begin{macro}{\parafootftmsep}
+% The \cs{parafootftmsep} macro is inserted between each paragraphed footnote. The default value is empty, but the user can redefine it via \cs{renewcommand}.
+% \begin{macrocode}
+\newcommand{\parafootftmsep}{}
+% \end{macrocode}
+% \end{macro}
+%The command \cs{insertparafootftmsep} must be called at the begining of \cs{parafootftm} (and like commands). \cs{insertparafootftmsep} checks to see if the page number has changed since the previous note. If not, \cs{insertparafootftmsep} calls \cs{parafootftmsep}.
% \begin{macro}{\prevpage@num}
-% \begin{macro}{\insertparafootsep}
-% \begin{macrocode}
-\newcommand{\insertparafootsep}[1]{%
- \ifnumequal{\csuse{prevpage#1@num}}{\page@num}%
- {\ifcsdef{prevline#1}% Be sur \prevline#1 exists.
- {\ifnumequal{\csuse{prevline#1}}{\line@num}%
- {\ifcsempty{symplinenum}{\csuse{parafootsep@#1}}{}}%
- {\csuse{parafootsep@#1}}%
- }%
- {\csuse{parafootsep@#1}}%
- }%
- {}%
- \global\csname prevpage#1@num\endcsname=\page@num%
+% \begin{macro}{\insertparafootftmsep}
+% \begin{macrocode}
+\newcount\prevpage@num
+\newcommand{\insertparafootftmsep}{%
+ \ifnum\prevpage@num=\page@num%
+ \parafootftmsep%
+ \fi%
+ \global\prevpage@num=\page@num%
}
% \end{macrocode}
% \end{macro}
@@ -7725,7 +7926,7 @@
\insert\csname #1footins\endcsname\bgroup
\notefontsetup
\footsplitskips
- \csname #1footfmt\endcsname #2[#1]\egroup}
+ \csname #1footfmt\endcsname #2\egroup}
% \end{macrocode}
% \end{macro}
%
@@ -7739,22 +7940,18 @@
% flush left.
%
% The arguments are 1)~the line numbers, 2)~the lemma and 3)~the
-% text of the \verb"-footnote" command 4) optional (for ascendant compatibility) : the series.
+% text of the \verb"-footnote" command.
%
% \begin{macrocode}
-\newcommandx*{\threecolfootfmt}[4][4=Z]{%
+\newcommand*{\threecolfootfmt}[3]{%
\normal@pars
\hsize .3\hsize
\parindent=0pt
\tolerance=5000
\raggedright
\leavevmode
- \strut{\printlinefootnote{#1}{#4}}%
- {\select@lemmafont#1|#2}%
- \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
- {\hskip\csuse{inplaceoflemmaseparator@#4}}%
- {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
- }}%
+ \strut{\notenumfont\printlines#1|}\enspace
+ {\select@lemmafont#1|#2}\rbracket\enskip
#3\strut\par\allowbreak}
% \end{macrocode}
% \end{macro}
@@ -7841,22 +8038,18 @@
\newcommand*{\twocolvfootnote}[2]{\insert\csname #1footins\endcsname\bgroup
\notefontsetup
\footsplitskips
- \csname #1footfmt\endcsname #2[#1]\egroup}
+ \csname #1footfmt\endcsname #2\egroup}
% \end{macrocode}
% \begin{macrocode}
-\newcommandx*{\twocolfootfmt}[4][4=Z]{% 4th arg is optional, for ascendant compatibility
+\newcommand*{\twocolfootfmt}[3]{%
\normal@pars
\hsize .45\hsize
\parindent=0pt
\tolerance=5000
\raggedright
\leavevmode
- \strut{\printlinefootnote{#1}{#4}}%
- {\select@lemmafont#1|#2}%
- \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
- {\hskip\csuse{inplaceoflemmaseparator@#4}}%
- {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
- }}%
+ \strut{\notenumfont\printlines#1|}\enspace
+ {\select@lemmafont#1|#2}\rbracket\enskip
#3\strut\par\allowbreak}
% \end{macrocode}
% \begin{macrocode}
@@ -7894,480 +8087,6 @@
% \end{macro}
% \end{PW}
%
-%
-% \subsection{Display}
-% \subsubsection{Options}
-% \changes{v0.18}{2012/08/30}{New generic commands to customize footnote display.}
-% \cs{numberonlyfistinline}\oarg{series}\oarg{position} is used to print line number only in the first time. It set to true the \cs{ifnumberonlyfirstinline@series} toggle.
-% \begin{macro}{\numberonlyfirstinline}
-% \begin{macrocode}
-\newtoggle{numberonlyfirstinline@A}
-\newtoggle{numberonlyfirstinline@B}
-\newtoggle{numberonlyfirstinline@C}
-\newtoggle{numberonlyfirstinline@D}
-\newtoggle{numberonlyfirstinline@E}
-\newtoggle{numberonlyfirstinline@Z}
-
-\newcommandx{\numberonlyfirstinline}[2][1,2={true}]{%
- \ifstrempty{#1}{
- \settoggle{numberonlyfirstinline@A}{#2}
- \settoggle{numberonlyfirstinline@B}{#2}
- \settoggle{numberonlyfirstinline@C}{#2}
- \settoggle{numberonlyfirstinline@D}{#2}
- \settoggle{numberonlyfirstinline@E}{#2}
- }
- {
- \settoggle{numberonlyfirstinline@#1}{#2}
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\ifledplinenum}
-% \begin{macro}{\symplinenum}
-% \begin{PW}
-% \cs{ifledplinenum} and \cs{symplinenum} are kept for ascendant compatibility. Should'nt be use anymore.
-% \end{PW}
-% \begin{macrocode}
-\newif\ifledplinenum
- \ledplinenumtrue
-\newcommand*{\symplinenum}{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\symlinenum}
-% \cs{symlinenum} is used to print a symbol in place of line number, in conjonction with \cs{numberonlyfirstinline}.
-% \begin{macrocode}
-\def\symlinenum@A{\symplinenum}
-\def\symlinenum@B{\symplinenum}
-\def\symlinenum@C{\symplinenum}
-\def\symlinenum@D{\symplinenum}
-\def\symlinenum@E{\symplinenum}
-\def\symlinenum@Z{\symplinenum}
-\newcommandx{\symlinenum}[2][1]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{symlinenum@A}{#2}%
- \csdef{symlinenum@B}{#2}%
- \csdef{symlinenum@C}{#2}%
- \csdef{symlinenum@D}{#2}%
- \csdef{symlinenum@E}{#2}%
- \csdef{symlinenum@Z}{#2}%
- }%
- {%
- \csdef{symlinenum@#1}{#2}%
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\nonumberinfootnote}
-% \cs{nonumberinfootnote}\oarg{series}\oarg{position} is used to disable line number printing in footnotes. It sets to true the \cs{nonumberinfootnote@series} toggle.
-% \begin{macrocode}
-\newtoggle{nonumberinfootnote@A}
-\newtoggle{nonumberinfootnote@B}
-\newtoggle{nonumberinfootnote@C}
-\newtoggle{nonumberinfootnote@D}
-\newtoggle{nonumberinfootnote@E}
-\newtoggle{nonumberinfootnote@Z}
-\newcommandx{\nonumberinfootnote}[2][1,2={true}]{%
- \ifstrempty{#1}{
- \settoggle{nonumberinfootnote@A}{#2}
- \settoggle{nonumberinfootnote@B}{#2}
- \settoggle{nonumberinfootnote@C}{#2}
- \settoggle{nonumberinfootnote@D}{#2}
- \settoggle{nonumberinfootnote@E}{#2}
- }
- {
- \settoggle{nonumberinfootnote@#1}{#2}
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\nonum@}
-% \cs{nonum@} toggle is used to disable line number printing in a particular footnote.
-% \begin{macrocode}
-\newtoggle{nonum@}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\nosep@}
-% \cs{nonum@} toggle is used to disable lemma separator in a particular footnote.
-% \begin{macrocode}
-\newtoggle{nosep@}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\beforenumberinfootnote}
-% \cs{beforenumberinfootnote}\oarg{series}\marg{length} is used to add glue before line number printing in footnotes.
-% \begin{macrocode}
-\def\beforenumberinfootnote@A{0pt}
-\def\beforenumberinfootnote@B{0pt}
-\def\beforenumberinfootnote@C{0pt}
-\def\beforenumberinfootnote@D{0pt}
-\def\beforenumberinfootnote@E{0pt}
-\def\beforenumberinfootnote@Z{0pt}
-\newcommandx*{\beforenumberinfootnote}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{beforenumberinfootnote@A}{#2}%
- \csdef{beforenumberinfootnote@B}{#2}%
- \csdef{beforenumberinfootnote@C}{#2}%
- \csdef{beforenumberinfootnote@D}{#2}%
- \csdef{beforenumberinfootnote@E}{#2}%
- \csdef{beforenumberinfootnote@Z}{#2}%
- }%
- {%
- \csdef{beforenumberinfootnote@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\afternumberinfootnote}
-% \cs{afternumberinfootnote}\oarg{series}\marg{length} is used add glue after line number in footnotes.
-% \begin{macrocode}
-\def\afternumberinfootnote@A{0.5em}
-\def\afternumberinfootnote@B{0.5em}
-\def\afternumberinfootnote@C{0.5em}
-\def\afternumberinfootnote@D{0.5em}
-\def\afternumberinfootnote@E{0.5em}
-\def\afternumberinfootnote@Z{0.5em}
-\newcommandx*{\afternumberinfootnote}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{afternumberinfootnote@A}{#2}%
- \csdef{afternumberinfootnote@B}{#2}%
- \csdef{afternumberinfootnote@C}{#2}%
- \csdef{afternumberinfootnote@D}{#2}%
- \csdef{afternumberinfootnote@E}{#2}%
- \csdef{afternumberinfootnote@Z}{#2}%
- }%
- {%
- \csdef{afternumberinfootnote@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\beforesymlinenum}
-% \cs{beforesymlinenum}\oarg{series}\marg{length} is used to add glue before line symbol.
-% \begin{macrocode}
-\def\beforesymlinenum@A{\beforenumberinfootnote@A}
-\def\beforesymlinenum@B{\beforenumberinfootnote@B}
-\def\beforesymlinenum@C{\beforenumberinfootnote@C}
-\def\beforesymlinenum@D{\beforenumberinfootnote@D}
-\def\beforesymlinenum@E{\beforenumberinfootnote@E}
-\def\beforesymlinenum@Z{\beforenumberinfootnote@Z}
-\newcommandx*{\beforesymlinenum}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{beforesymlinenum@A}{#2}%
- \csdef{beforesymlinenum@B}{#2}%
- \csdef{beforesymlinenum@C}{#2}%
- \csdef{beforesymlinenum@D}{#2}%
- \csdef{beforesymlinenum@E}{#2}%
- \csdef{beforesymlinenum@Z}{#2}%
- }%
- {%
- \csdef{beforesymlinenum@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\aftersymlinenum}
-% \cs{aftersymlinenum}\oarg{series}\marg{length} is used to add glue after line symbol.
-% \begin{macrocode}
-\def\aftersymlinenum@A{\afternumberinfootnote@A}
-\def\aftersymlinenum@B{\afternumberinfootnote@B}
-\def\aftersymlinenum@C{\afternumberinfootnote@C}
-\def\aftersymlinenum@D{\afternumberinfootnote@D}
-\def\aftersymlinenum@E{\afternumberinfootnote@E}
-\def\aftersymlinenum@Z{\afternumberinfootnote@Z}
-\newcommandx*{\aftersymlinenum}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{aftersymlinenum@A}{#2}%
- \csdef{aftersymlinenum@B}{#2}%
- \csdef{aftersymlinenum@C}{#2}%
- \csdef{aftersymlinenum@D}{#2}%
- \csdef{aftersymlinenum@E}{#2}%
- \csdef{aftersymlinenum@Z}{#2}%
- }%
- {%
- \csdef{aftersymlinenum@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\inplaceofnumber}
-% \cs{inplaceofnumber}\oarg{series}\marg{value} is used to define glue which is printed where no number or symbol is printed.
-% \begin{macrocode}
-\def\inplaceofnumber@A{1em}
-\def\inplaceofnumber@B{1em}
-\def\inplaceofnumber@C{1em}
-\def\inplaceofnumber@D{1em}
-\def\inplaceofnumber@E{1em}
-\def\inplaceofnumber@Z{1em}
-\newcommandx*{\inplaceofnumber}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{inplaceofnumber@A}{#2}%
- \csdef{inplaceofnumber@B}{#2}%
- \csdef{inplaceofnumber@C}{#2}%
- \csdef{inplaceofnumber@D}{#2}%
- \csdef{inplaceofnumber@E}{#2}%
- \csdef{inplaceofnumber@Z}{#2}%
- }%
- {%
- \csdef{inplaceofnumber@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\lemmaseparator}
-% The \cs{lemmaseparator}\oarg{series}\marg{lemma} is used to change lemma separator.
-% \begin{macrocode}
-\let\lemmaseparator@A\rbracket
-\let\lemmaseparator@B\rbracket
-\let\lemmaseparator@C\rbracket
-\let\lemmaseparator@D\rbracket
-\let\lemmaseparator@E\rbracket
-\let\lemmaseparator@E\rbracket
-\let\lemmaseparator@Z\rbracket
-\newcommandx*{\lemmaseparator}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{lemmaseparator@A}{#2}%
- \csdef{lemmaseparator@B}{#2}%
- \csdef{lemmaseparator@C}{#2}%
- \csdef{lemmaseparator@D}{#2}%
- \csdef{lemmaseparator@E}{#2}%
- \csdef{lemmaseparator@Z}{#2}%
- }%
- {%
- \csdef{lemmaseparator@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\beforelemmaseparator}
-% The \cs{beforelemmaseparator}\oarg{series}\marg{length} is used to change glue between lemma and separator.
-% \begin{macrocode}
-\def\beforelemmaseparator@A{0em}
-\def\beforelemmaseparator@B{0em}
-\def\beforelemmaseparator@C{0em}
-\def\beforelemmaseparator@D{0em}
-\def\beforelemmaseparator@E{0em}
-\def\beforelemmaseparator@Z{0em}
-\newcommandx*{\beforelemmaseparator}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{beforelemmaseparator@A}{#2}%
- \csdef{beforelemmaseparator@B}{#2}%
- \csdef{beforelemmaseparator@C}{#2}%
- \csdef{beforelemmaseparator@D}{#2}%
- \csdef{beforelemmaseparator@E}{#2}%
- \csdef{beforelemmaseparator@Z}{#2}%
- }%
- {%
- \csdef{beforelemmaseparator@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \begin{macro}{\afterlemmaseparator}
-% The \cs{afterlemmaseparator}\oarg{series}\marg{length} is used to change glue between lemma separator and note.
-% \begin{macrocode}
-\def\afterlemmaseparator@A{0.5em}
-\def\afterlemmaseparator@B{0.5em}
-\def\afterlemmaseparator@C{0.5em}
-\def\afterlemmaseparator@D{0.5em}
-\def\afterlemmaseparator@E{0.5em}
-\def\afterlemmaseparator@Z{0.5em}
-\newcommandx*{\afterlemmaseparator}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{afterlemmaseparator@A}{#2}%
- \csdef{afterlemmaseparator@B}{#2}%
- \csdef{afterlemmaseparator@C}{#2}%
- \csdef{afterlemmaseparator@D}{#2}%
- \csdef{afterlemmaseparator@E}{#2}%
- \csdef{afterlemmaseparator@Z}{#2}%
- }%
- {%
- \csdef{afterlemmaseparator@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\nolemmaseparator}
-% \cs{nolemmaseparator}\oarg{series} is just an alias for \cs{lemmaseparator}\oarg{series}\verb|{}|.
-% \begin{macrocode}
-\newcommandx*{\nolemmaseparator}[1][1]{\lemmaseparator[#1]{}}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\inplaceofnumber}
-% \cs{inplaceoflemmaseparator}\oarg{series}\marg{value} is used to define glue which is printed where no lemma separator is printed.
-% \begin{macrocode}
-\def\inplaceoflemmaseparator@A{1em}
-\def\inplaceoflemmaseparator@B{1em}
-\def\inplaceoflemmaseparator@C{1em}
-\def\inplaceoflemmaseparator@D{1em}
-\def\inplaceoflemmaseparator@E{1em}
-\def\inplaceoflemmaseparator@Z{1em}
-\newcommandx*{\inplaceoflemmaseparator}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{inplaceoflemmaseparator@A}{#2}%
- \csdef{inplaceoflemmaseparator@B}{#2}%
- \csdef{inplaceoflemmaseparator@C}{#2}%
- \csdef{inplaceoflemmaseparator@D}{#2}%
- \csdef{inplaceoflemmaseparator@E}{#2}%
- \csdef{inplaceoflemmaseparator@Z}{#2}%
- }%
- {%
- \csdef{inplaceoflemmaseparator@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\afternote}
-% The \cs{afternote}\oarg{series}\marg{length} is used to change length after note.
-%
-% There is a point to be careful about regarding the
-% \cs{afternote@series} commands. Remember that in \cs{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 (\thetexbook, pp.\,398--399).
-%
-% The length of the footnote includes the natural size of the glue
-% specified by \cs{afternote@series}, 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
-% \cs{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 \cs{vbox} message from the output
-% routine. To minimize the risk of this, you can do two things:
-% keep the \verb"plus" and \verb"minus" components of \cs{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 \verb"\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.
-% \begin{macrocode}
-\def\afternote@A{1em plus.4em minus.4em}
-\def\afternote@B{1em plus.4em minus.4em}
-\def\afternote@C{1em plus.4em minus.4em}
-\def\afternote@D{1em plus.4em minus.4em}
-\def\afternote@E{1em plus.4em minus.4em}
-\def\afternote@Z{1em plus.4em minus.4em}
-\newcommandx*{\afternote}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{afternote@A}{#2}%
- \csdef{afternote@B}{#2}%
- \csdef{afternote@C}{#2}%
- \csdef{afternote@D}{#2}%
- \csdef{afternote@E}{#2}%
- \csdef{afternote@Z}{#2}%
- }%
- {%
- \csdef{afternote@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\interparanoteglue}
-% \begin{macro}{\ipn@skip}
-% The \cs{ipn@skip} skip and \cs{interparanoteglue} command are kept for ascendant compatibility, but should not be used anymore.
-% \begin{macrocode}
-\newskip\ipn@skip
-\newcommand*{\interparanoteglue}[1]{%
- {\notefontsetup\global\ipn@skip=#1 \relax}}
-\interparanoteglue{1em plus.4em minus.4em}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\parafootftmsep}
-% The \cs{parafootftmsep} macro is kept for ascendant compatibility. Its default value of \cs{parafootsep@series}.
-% \begin{macrocode}
-\newcommand{\parafootftmsep}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\parafootsep}
-% The \cs{parafootsep}\oarg{series}\marg{sep} is used for separator of notes in paragraphed footnotes.
-% \begin{macrocode}
-\def\parafootsep@A{\parafootftmsep}
-\def\parafootsep@B{\parafootftmsep}
-\def\parafootsep@C{\parafootftmsep}
-\def\parafootsep@D{\parafootftmsep}
-\def\parafootsep@E{\parafootftmsep}
-\def\parafootsep@Z{\parafootftmsep}
-\newcommandx*{\parafootsep}[2][1,usedefault]{%
- \ifstrequal{#1}{}% If arg 1 is empty
- {%
- \csdef{parafootsep@A}{#2}%
- \csdef{parafootsep@B}{#2}%
- \csdef{parafootsep@C}{#2}%
- \csdef{parafootsep@D}{#2}%
- \csdef{parafootsep@E}{#2}%
- \csdef{parafootsep@Z}{#2}%
- }%
- {%
- \csdef{parafootsep@#1}{#2}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \subsubsection{Line number printing}
-% \begin{macro}{\printlinefootnote}
-% The \cs{printlinefootnote} macro is called in each \cs{<type>footfmt} command. It prints or not the line number, depending previous options. Its first argument is the information about lines, its secund is the series of footnote.
-% \begin{macrocode}
-\newcommand{\printlinefootnote}[2]{%
- \iftoggle{nonum@}{%Try if the line number must printed for this specific not (by default, yes)
- \hspace{\csuse{inplaceofnumber@#2}}%
- }%
- {%
- {%
- \iftoggle{nonumberinfootnote@#2}%Try if the line number must printed (by default, yes)
- {%
- \hspace{\csuse{inplaceofnumber@#2}}%
- }%
- {%
- {\iftoggle{numberonlyfirstinline@#2}% If for this series the line number must be printed only in the first time.
- {%
- \ifcsdef{prevline#2}%
- {%Be sure the \prevline exists.
- \ifnumequal{\csuse{prevline#2}}{\line@num}%Try it
- {%
- \ifcsstring{symlinenum@#2}{}% Try if a symbol is define
- {%
- \hspace{\csuse{inplaceofnumber@#2}}%
- }%
- {\hspace{\csuse{beforesymlinenum@#2}}\notenumfont\csuse{symlinenum@#2}\hspace{\csuse{aftersymlinenum@#2}}}%
- }%
- {%
- \hspace{\csuse{beforenumberinfootnote@#2}}\notenumfont\printlines#1|\hspace{\csuse{afternumberinfootnote@#2}}%
- }%
- }%
- {%
- \hspace{\csuse{beforenumberinfootnote@#2}}\notenumfont\printlines#1|\hspace{\csuse{afternumberinfootnote@#2}}%
- }%
- }%
- {%
- \hspace{\csuse{beforenumberinfootnote@#2}}\notenumfont\printlines#1|\hspace{\csuse{afternumberinfootnote@#2}}%
- }%
- \csnumgdef{prevline#2}{\line@num}%
- }%
- }%
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
% \section{Output routine}
% \label{output}\relax
%
@@ -8899,7 +8618,7 @@
\else
\gl@p\labelref@list\to\label@refs
\ifvmode
- \advancelabel@refs
+ \advancelabel@refs
\fi
\fi
% \edef\next{\write\@aux{\string\l@dmake@labels\label@refs|{#1}}}%
@@ -8925,21 +8644,21 @@
% \begin{macrocode}
%In cases where \cs{edlabel} is the first element in a paragraph, we have a problem with line counts, because line counts change only at the first horizontal box of the paragraph.
%Hence, we need to test \cs{edlabel} if it occurs at the start of a paragraph. To do so, we use \cs{ifvmode}. If the test is true, we must advance by one unit the amount of text we write into the \verb].aux] file.
+%\changes{v0.19}{2012/09/08}{Debug \cs{advancelabel@refs} to prevent some troubles.}
%We do so using \cs[advancelabel@refs} command.
\newcommand{\advancelabel@refs}{%
- \newcount\line%
- \ledmac@warning{\label@refs}
- \line=\expandafter\labelrefsparseline\label@refs%
- \advance\line by 1%
- \ifsublines@%
- \newcount\subline%
- \subline=\labelrefsparsesubline\label@refs%
- \advance\subline by 1%
- \def\label@refs{\the\line|\the\subline}%
- \else%
- \def\label@refs{\the\line|0}%
- \fi%
- }
+ \newcounter{line}%
+ \setcounter{line}{\expandafter\labelrefsparseline\label@refs}%
+ \stepcounter{line}%
+ \ifsublines@%
+ \newcounter{subline}%
+ \setcounter{subline}{\expandafter\labelrefsparsesubline\label@refs}%
+ \stepcounter{subline}{1}%
+ \def\label@refs{\theline|\thesubline}%
+ \else%
+ \def\label@refs{\theline|0}%
+\fi%
+}
\def\labelrefsparseline#1|#2{#1}
\def\labelrefsparsesubline#1|#2{#2}
% \end{macrocode}
@@ -9223,36 +8942,35 @@
% \cs{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.
-% \changes{v0.18.3}{2012/09/09}{Correct bug introduced by 0.18.1 and not corrected by 0.18.2}
% \begin{macrocode}
\newcommand*{\Aendnote}[1]{{\newlinechar='40
\immediate\write\l@d@end{\string\Aend%
{\ifnumberedpar@\l@d@nums\fi}%
- {\ifnumberedpar@\csexpandonce{@tag}\fi}{#1}}}\ignorespaces}
+ {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\Bendnote}[1]{{\newlinechar='40
\immediate\write\l@d@end{\string\Bend%
{\ifnumberedpar@\l@d@nums\fi}%
- {\ifnumberedpar@\csexpandonce{@tag}\fi}{#1}}}\ignorespaces}
+ {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\Cendnote}[1]{{\newlinechar='40
\immediate\write\l@d@end{\string\Cend%
{\ifnumberedpar@\l@d@nums\fi}%
- {\ifnumberedpar@\csexpandonce{@tag}\fi}{#1}}}\ignorespaces}
+ {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\Dendnote}[1]{{\newlinechar='40
\immediate\write\l@d@end{\string\Dend%
{\ifnumberedpar@\l@d@nums\fi}%
- {\ifnumberedpar@\csexpandonce{@tag}\fi}{#1}}}\ignorespaces}
+ {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
\newcommand*{\Eendnote}[1]{{\newlinechar='40
\immediate\write\l@d@end{\string\Eend%
{\ifnumberedpar@\l@d@nums\fi}%
- {\ifnumberedpar@\csexpandonce{@tag}\fi}{#1}}}\ignorespaces}
+ {\ifnumberedpar@\@tag\fi}{#1}}}\ignorespaces}
% \end{macrocode}
% \end{macro}
@@ -9571,23 +9289,20 @@
\newif\ifrightnoteup
\rightnoteuptrue
\newcommand*{\l@dlsnote}[1]{%
- \newcommand{\content}{#1}%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vl@dlsnote{\csexpandonce{content}}}%
+ \xright@appenditem{\noexpand\vl@dlsnote{#1}}%
\to\inserts@list
\global\advance\insert@count \@ne
\fi\ignorespaces}
\newcommand*{\l@drsnote}[1]{%
- \newcommand{\content}{#1}%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vl@drsnote{\csexpandonce{content}}}%
+ \xright@appenditem{\noexpand\vl@drsnote{#1}}%
\to\inserts@list
\global\advance\insert@count \@ne
\fi\ignorespaces}
\newcommand*{\l@dcsnote}[1]{%
- \newcommand{\content}{#1}%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vl@dcsnote{\csexpandonce{content}}}%
+ \xright@appenditem{\noexpand\vl@dcsnote{#1}}%
\to\inserts@list
\global\advance\insert@count \@ne
\fi\ignorespaces}
@@ -10285,7 +10000,6 @@
% \cs{footparagraphX}\marg{series}
% \begin{macrocode}
\newcommand*{\footparagraphX}[1]{%
- \expandafter\newcount\csname prevpage#1@num\endcsname
\expandafter\let\csname footstart#1\endcsname=\parafootstartX
\expandafter\let\csname regvfootnote#1\endcsname=\para@vfootnoteX
\expandafter\let\csname footfmt#1\endcsname=\parafootfmtX
@@ -10340,7 +10054,7 @@
\footsplitskips
\setbox0=\vbox{\hsize=\maxdimen
\noindent\@nameuse{footfmt#1}{#1}{#2}}%
- \setbox0=\hbox{\unvxh0[#1]}%
+ \setbox0=\hbox{\unvxh0}%
\dp0=\z@
\ht0=\csname footfudgefactor#1\endcsname\wd0
\box0
@@ -10353,7 +10067,7 @@
\footsplitskips
\setbox0=\vbox{\hsize=\maxdimen
\noindent\color@begingroup\@nameuse{footfmt#1}{#1}{#2}\color@endgroup}%
- \setbox0=\hbox{\unvxh0[#1]}%
+ \setbox0=\hbox{\unvxh0}%
\dp0=\z@
\ht0=\csname footfudgefactor#1\endcsname\wd0
\box0
@@ -10367,7 +10081,7 @@
% \cs{parafootfmtX}\marg{series}
% \begin{macrocode}
\newcommand*{\parafootfmtX}[2]{%
- \insertparafootsep{#1}%
+ \insertparafootftmsep
\ledsetnormalparstuff
{\notenumfont\@nameuse{footfootmark#1}\strut%\enspace
#2\penalty-10}}
@@ -11157,9 +10871,9 @@
\newif\ifinserthangingsymbol
\newcommand{\inserthangingsymbol}{%
\ifinserthangingsymbol%
- \ifinstanza%
- \hfill\hangingsymbol%
- \fi%
+ \ifinstanza%
+ \hfill\hangingsymbol%
+ \fi%
\fi%
}
% \end{macrocode}
@@ -11285,10 +10999,10 @@
\xdef\stanza@hang{\noexpand\leavevmode\noexpand\startlock
\hangindent\expandafter
\noexpand\csname sza@0@\endcsname\stanzaindentbase
- \hangafter\@ne}
+ \hangafter\@ne}
\def\sza@penalty{\count@\csname szp@\number\stanza@count @\endcsname
\ifnum\count@>\@M\advance\count@-\@M\penalty-\else
- \penalty\fi\count@}
+ \penalty\fi\count@}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -11321,7 +11035,7 @@
\let\startstanzahook\relax
\let\endstanzaextra\relax
\xdef\stanza{\noexpand\instanzatrue\expandafter
- \begingroup\startstanzahook%
+ \begingroup\startstanzahook%
\catcode`\&\active\global\stanza@count\@ne\stanza@modulo\@ne
\noexpand\ifnum\expandafter\noexpand
\csname sza@0@\endcsname=\z@\let\noexpand\stanza@hang\relax
@@ -12748,28 +12462,6 @@
% \newpage
% \appendix
%
-% \section{Historic compatibility}.
-% Since version 0.18, some change was made in code allow easy customization. It can make some trouble for people which have made their own customizations. The next sections explain how to correct.
-%
-% \subsection{Version 0.18}\label{correct018}
-%
-% This version add new commands to change display of footnote (see \ref{displayoptions} p.~\pageref{displayoptions}). Author think all old customisation of \cs{<X>footmt} commands should be used anymore, because of new standard hook. But if you want, for any reason, to conserve it, you should replace :
-% \begin{verbatim}
-% \def\Afootmt#1#2#3{<code>}
-% \end{verbatim}
-%
-% Or
-% \begin{verbatim}
-% \newcommand{\Afootmt}[3]{<code>}
-% \end{verbatim}
-% (and similar \cs{Xfootmt} commands) by :
-%
-% \begin{verbatim}
-% \newcommandx*{\Afootmt}[4][4]{<code>}
-% \end{verbatim}
-% \subsection{Version 0.18.1}
-% As the \cs{Xfootnote} commands can have now an optional argument, you should modify your own \cs{Xfootnote} commands, using \cs{Afootnote} model. Note that in version 1.0, you wont't have to define \cs{Xfootnote} commands : it will be generic.
-%
% \section{Examples}\label{examples}
%
%
@@ -13481,18 +13173,16 @@ in section~\ref{subsec}.
\newbox\lp@rbox
- \newcommand{\ffootnote}[2][]{%
- \newcommand{\content}{#2}%
+ \newcommand{\ffootnote}[1]{%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vffootnote{f}{{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}%
+ \xright@appenditem{\noexpand\vffootnote{f}{{\l@d@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}
- \newcommand{\gfootnote}[2][]{%
- \newcommand{\content}{#2}%
+ \newcommand{\gfootnote}[1]{%
\ifnumberedpar@
\xright@appenditem{\noexpand\vgfootnote{g}{#1}}%
\to\inserts@list
@@ -14043,6 +13733,7 @@ Ottonis\edtext{}{\Afootnote{p.\ 130~D}} comitis et civitatis
\renewcommand{\edtext}[2]{\leavevmode
\begingroup
+ \no@expands
\xdef\@tag{#1}%
\set@line
\global\insert@count=0