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.dtx392
1 files changed, 140 insertions, 252 deletions
diff --git a/Master/texmf-dist/source/latex/ledmac/ledmac.dtx b/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
index 8b7dba93418..91e4f8aa08b 100644
--- a/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
+++ b/Master/texmf-dist/source/latex/ledmac/ledmac.dtx
@@ -50,7 +50,7 @@
%
% \fi
%
-% \CheckSum{9041}
+% \CheckSum{9034}
%
% \makeatletter
% \newcommand*{\DescribeIt}{\leavevmode\@bsphack\begingroup\MakePrivateLetters
@@ -128,7 +128,10 @@
% \def\fileversion{v0.6} \def\filedate{2004/12/10}
% \def\fileversion{v0.7} \def\filedate{2005/03/24}
% \def\fileversion{v0.8} \def\filedate{2011/07/11}
-%\def\fileversion{v0.8.1} \def\filedate{2011/07/14}
+% \def\fileversion{v0.8.1} \def\filedate{2011/07/14}
+% \def\fileversion{v0.9} \def\filedate{2011/08/03}
+% \def\fileversion{v0.9.1} \def\filedate{2011/08/08}
+% \def\fileversion{v0.10} \def\filedate{2011/08/22}
% \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}
@@ -151,6 +154,9 @@
% \changes{v0.7}{2011/06/17}{Ma\"ieul Rouquette new maintainer}
% \changes{v0.8}{2011/07/11}{Bug on endnotes fixed : in a // text, every endnotes can be at the end (!)}
% \changes{v0.8.1}{2011/07/14}{Bug on \cs{edtext} ; \cs{critex} ; \cs{lemma} fixed : we can now us non switching commands, like \cs{textit}}
+% \changes{v0.9}{2011/08/03}{No more ledpatch. All patches are now in the main file.}
+% \changes{v0.9.1}{2011/08/08}{Fix some bug's linked with the integration of ledpatch on the main file.}
+% \changes{v0.10}{2011/08/22}{Corrections about \cs{section} and other titles in numbered sections}
% \hyphenation{man-u-script man-u-scripts}
%
% \newcommand{\Lpack}[1]{\textsf{#1}}
@@ -259,6 +265,8 @@
% Other LaTeX packages for critical editions include EDNOTES, and
% \Lpack{poemscol} for poetical works.
% \end{PW}
+%
+% Please, for all bug's report, open a ticket on \url{https://github.com/maieul/ledmac/issues/}
% \end{abstract}
%
% \tableofcontents
@@ -2932,7 +2940,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ledmac}[2005/03/24 v0.7 LaTeX port of EDMAC]
+\ProvidesPackage{ledmac}[2011/08/22 v0.10 LaTeX port of EDMAC]
% \end{macrocode}
%
@@ -4556,6 +4564,7 @@
%
% \begin{macro}{\lock@on}
% \begin{macro}{\do@lockon}
+% \begin{macro}{\do@lockonL}
% \cs{lock@on}
% adds an entry to the action-code list to turn line number
% locking on. The current setting of the sub-lineation flag tells us
@@ -4570,52 +4579,62 @@
\newcommand*{\lock@on}{\futurelet\next\do@lockon}
\newcommand*{\do@lockon}{%
\ifx\next\lock@off
- \global\let\lock@off=\skip@lockoff
+ \global\let\lock@off=\skip@lockoff
\else
- \xright@appenditem{\the\absline@num}\to\actionlines@list
- \ifsublines@
- \xright@appenditem{-1005}\to\actions@list
- \ifcase\sub@lock
- \sub@lock \@ne
- \else
- \sub@lock \z@
- \fi
- \else
- \xright@appenditem{-1003}\to\actions@list
- \ifcase\@lock
- \@lock \@ne
- \else
- \@lock \z@
- \fi
- \fi
+ \do@lockonL
+ \fi}
+\newcommand*{\do@lockonL}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \xright@appenditem{-1005}\to\actions@list
+ \ifnum\sub@lock=\z@
+ \sub@lock \@ne
+ \else
+ \ifnum\sub@lock=\thr@@
+ \sub@lock \@ne
+ \fi
+ \fi
+ \else
+ \xright@appenditem{-1003}\to\actions@list
+ \ifnum\@lock=\z@
+ \@lock \@ne
+ \else
+ \ifnum\@lock=\thr@@
+ \@lock \@ne
+ \fi
+ \fi
\fi}
+
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\lock@off}
% \begin{macro}{\do@lockoff}
+% \begin{macro}{\do@lockoffL}
% \begin{macro}{\skip@lockoff}
% \cs{lock@off} adds an entry to the action-code list
% to turn line number locking off.
% \begin{macrocode}
-\newcommand*{\do@lockoff}{%
+\newcommand*{\do@lockoffL}{%
\xright@appenditem{\the\absline@num}\to\actionlines@list
\ifsublines@
\xright@appenditem{-1006}\to\actions@list
\ifnum\sub@lock=\tw@
- \sub@lock \thr@@
+ \sub@lock \thr@@
\else
- \sub@lock \z@
+ \sub@lock \z@
\fi
\else
\xright@appenditem{-1004}\to\actions@list
\ifnum\@lock=\tw@
- \@lock \thr@@
+ \@lock \thr@@
\else
- \@lock \z@
+ \@lock \z@
\fi
\fi}
+\newcommand*{\do@lockoff}{\do@lockoffL}
\newcommand*{\skip@lockoff}{\global\let\lock@off=\do@lockoff}
\global\let\lock@off=\do@lockoff
@@ -4623,6 +4642,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{PW}
% \begin{macro}{\n@num}
@@ -5512,7 +5532,14 @@
% is happening within a group; definitions must be global if you want
% them to survive past the end of the paragraph.
% \begin{macrocode}
-\newcommand*{\pstart}{\ifnumbering \else
+\newcommand*{\pstart}{
+ \if@nobreak
+\let\@oldnobreak\@nobreaktrue
+\else
+\let\@oldnobreak\@nobreakfalse
+\fi
+\@nobreaktrue
+ \ifnumbering \else
\led@err@PstartNotNumbered
\beginnumbering
\fi
@@ -5560,7 +5587,8 @@
% \begin{macrocode}
\flush@notes
\endgroup
- \ignorespaces}
+ \ignorespaces
+ \@oldnobreak}
% \end{macrocode}
% \end{macro}
@@ -5639,139 +5667,30 @@
% \subsection{Processing one line}
%
% \begin{macro}{\do@line}
+% \begin{macro}{\l@dunhbox@line}
% The \cs{do@line} macro is called by \cs{pend} to
% do all the processing for a single line of text.
% \begin{macrocode}
-\newcommand*{\do@line}{%
-% \end{macrocode}
-%
-% First, pull
-% one line off the top of \cs{raw@text}, which contains the remaining
-% unprocessed lines of the paragraph. \cs{vbadness} must be cranked up to
-% suppress \verb"Underfull vbox" errors from
-% \cs{vsplit}; \cs{splittopskip} will be inserted at the top of
-% \cs{one@line}, so we zero it. (This skip will appear in the final
-% vertical list, just before every \cs{baselineskip}.)
-% \begin{macrocode}
- {\vbadness=10000 \splittopskip=0pt
-% \end{macrocode}
-% \begin{PW}
-% Provide a hook for potential extra settings.
-% \begin{macrocode}
- \do@linehook
-% \end{macrocode}
-% Null the \cs{...d@ta}, which may later hold line numbers, here.
-% They will get defined within \cs{affixline@num}. Similarly for
-% \cs{l@dcsnotetext} for the text of a sidenote.
-% \begin{macrocode}
- \l@demptyd@ta
-% \end{macrocode}
-% \end{PW}
-%
-% \begin{macrocode}
- \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
-% \end{macrocode}
-%
-% \cs{one@line} comes out of \cs{vsplit} as a \verb"vbox";
-% we now convert it to an \verb"hbox".
-%
-% This operation breaks if there's an insert connected to the
-% \phantomsection\label{doline} line. In that case, the content of the \verb"vbox"
-% \cs{one@line} before this operation is not just an \verb"hbox": it's
-% an \verb"hbox" followed by an insert. After the \cs{unvbox}, the
-% last thing on the vertical list is not the \verb"hbox" but the
-% insert. The result is that our line heads prematurely onto the
-% vertical list---with incorrect interline spacing, because there's
-% still a level of boxing that should be undone---and \cs{one@line}
-% is the void box, because the last thing on the vertical list
-% wasn't a box. The subsequent code consequently prints a blank
-% line.
-%
-% All this is why insertions need to be kept out of the paragraph
-% until this point; our footnote macros add all insertions to list
-% macros, and the \cs{add@inserts} macro below puts them onto the
-% vertical list at the proper time.
-% \begin{macrocode}
- \unvbox\one@line \global\setbox\one@line=\lastbox
-% \end{macrocode}
-%
-% Calculate the line and page number for this line.
-% \begin{macrocode}
- \getline@num
-% \end{macrocode}
-%
-% Now we'll add the line to the vertical list, with a line
-% number attached if necessary.
-%
-% The \verb"\hfil\hbox to \wd\one@line" is necessary to position a
-% hangindented line correctly: without it, \cs{one@line} gets
-% stretched out to \cs{hsize} in width and the indentation
-% disappears. This is because hanging indentation is done by
-% setting a nonzero `shift' value for the \verb"hbox" that
-% contains the line within the \verb"vbox", and that shift vanishes, like
-% the penalties, when we slice up the paragraph; one can examine
-% the \cs{ht} or \cs{wd} of a box within \TeX{}, but it provides no
-% way of examining the \cs{shift}, though it would be a trivial
-% modification of the \TeX{} program to add that function.
-% (\cs{parshape}\phantomsection\label{parshape}
-% also works by setting a nonzero shift, but this fix isn't good
-% enough there, because the total width of the lines is also varied
-% in that case; our algorithm will push all the lines of text over
-% to the right margin.)
-%
-% We put the \cs{new@line} start-of-line marker in the output list at
-% this point too: putting it within the \cs{hbox} here ensures that
-% it comes before any of the text of the line in the vertical list,
-% but cannot be broken away from it at a page break.
-%
-% \begin{PW}
-% For LaTeX I think that \cs{linewidth} is more appropriate
-% than \cs{hsize} here.
-%
-% It turns out (e.g., in the \verb?ledgroupsized? environment) to be useful
-% to have controllable fills at each end of the line, not just the
-% original \verb?\hfil\hbox?. Another change from the original, namely
-% adding the inserts earlier at the start of the line, lets
-% us have sidenotes in numbered text, and also regular and familiar
-% footnotes.
-% \changes{v0.5}{2004/04/03}{Changed \cs{do@line} to enable sidenotes and
-% regular footnoting}
-% \changes{v0.5.1}{2004/04/10}{Changed \cs{do@line} to restore correct line
-% numbering}
-% \changes{v0.5.1}{2004/04/10}{Added code to \cs{do@line} to handle
-% \cs{ledsidenote}s}
-%
-% \cs{affixline@num} puts the line numbers into \cs{l@dld@ta} (left)
-% and \cs{l@drd@ta} (right), so call it before starting to process the line.
-% \begin{macrocode}
+ \newcommand*{\l@dunhbox@line}[1]{\unhbox #1}
+ \newcommand*{\do@line}{%
+ {\vbadness=10000
+ \splittopskip=\z@
+ \do@linehook
+\l@demptyd@ta
+ \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
+ \unvbox\one@line \global\setbox\one@line=\lastbox
+ \getline@num
\affixline@num
-% \end{macrocode}
-% Now stick everything into a set of boxes. After calling \cs{add@inserts}
-% to grab any inserts for the line call \cs{affixside@note} to grab
-% the texts for any moveable sidenotes going into the margin(s).
-% \begin{macrocode}
- \hb@xt@ \linewidth{%
- \l@dld@ta\add@inserts\affixside@note
- \l@dlsn@te% left side note
- {\ledllfill
- \hb@xt@ \wd\one@line{\new@line\unhbox\one@line}%
- \ledrlfill\l@drd@ta%
- \l@drsn@te}% right side note
- }%
-% \end{macrocode}
-%
-% Originally the footnotes and insertions for this line were pulled out of the
-% \cs{inserts@list} list macro at this point and attached, but this has
-% now been done earlier.
-% \end{PW}
-%
-% Penalties get stripped off by this slicing process; the following
-% macro puts them back in as the last step.
-% \begin{macrocode}
- \add@penalties}
+ \hb@xt@ \linewidth{\l@dld@ta\add@inserts\affixside@note
+ \l@dlsn@te
+ {\ledllfill\hb@xt@ \wd\one@line{\new@line\l@dunhbox@line{\one@line}}\ledrlfill\l@drd@ta%
+ \l@drsn@te
+ }}
+ \add@penalties}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{PW}
% \begin{macro}{\do@linehook}
@@ -5990,62 +5909,33 @@
% \changes{v0.7}{2005/02/24}{Added \cs{do@actions@fixedcode}}
% \begin{macrocode}
\newcommand*{\do@actions@fixedcode}{%
- \ifcase\@l@dtempcnta% %1000
-% \end{macrocode}
-%
-% Commands that turn sub-lineation on and off.
-% \begin{macrocode}
- \or% % 1001
- \global\sublines@true
- \or% % 1002
- \global\sublines@false
-% \end{macrocode}
-%
-% Line locking. We ignore these indications when they don't appear
-% at the right times: a start-lock should appear only when locking
-% is entirely off, and an end-lock should only appear when locking is
-% in the `middle'.
-% \begin{macrocode}
- \or% % 1003
- \ifcase\@lock
- \global\@lock=\@ne
- \else
- \global\@lock=\z@
- \fi
- \or% % 1004
- \ifnum\@lock=\tw@
- \global\@lock=\thr@@
- \else
- \global\@lock=\z@
- \fi
-% \end{macrocode}
-%
-% Sub-line locking. Same comments as for line locking.
-% \begin{macrocode}
- \or% % 1005
- \ifcase\sub@lock
- \global\sub@lock=\@ne
- \else
- \global\sub@lock=\z@
- \fi
- \or% % 1006
- \ifnum\sub@lock=\tw@
- \global\sub@lock=\thr@@
- \else
- \global\sub@lock=\z@
- \fi
-% \end{macrocode}
-% Number skipping.
-% \begin{macrocode}
- \or% % 1007
- \l@dskipnumbertrue
-% \end{macrocode}
-%
-% If we get here, some unknown action code has been encountered.
-% \begin{macrocode}
- \else
- \led@warn@BadAction
- \fi}
+ \ifcase\@l@dtempcnta
+ \or% % 1001
+ \global\sublines@true
+ \or% % 1002
+ \global\sublines@false
+ \or% % 1003
+ \global\@lock=\@ne
+ \or% % 1004
+ \ifnum\@lock=\tw@
+ \global\@lock=\thr@@
+ \else
+ \global\@lock=\z@
+ \fi
+ \or% % 1005
+ \global\sub@lock=\@ne
+ \or% % 1006
+ \ifnum\sub@lock=\tw@
+ \global\sub@lock=\thr@@
+ \else
+ \global\sub@lock=\z@
+ \fi
+ \or% % 1007
+ \l@dskipnumbertrue
+ \else
+ \led@warn@BadAction
+ \fi}
+
% \end{macrocode}
% \end{macro}
@@ -9120,21 +9010,23 @@
% The `footnotes' for left, right, and moveable sidenotes. The whole
% scheme is reminiscent of the critical footnotes code.
% \begin{macrocode}
+\newif\ifrightnoteup
+ \rightnoteuptrue
\newcommand*{\l@dlsnote}[1]{%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vl@dlsnote{{\l@d@nums}{\@tag}{#1}}}%
+ \xright@appenditem{\noexpand\vl@dlsnote{#1}}%
\to\inserts@list
\global\advance\insert@count \@ne
\fi\ignorespaces}
\newcommand*{\l@drsnote}[1]{%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vl@drsnote{{\l@d@nums}{\@tag}{#1}}}%
+ \xright@appenditem{\noexpand\vl@drsnote{#1}}%
\to\inserts@list
\global\advance\insert@count \@ne
\fi\ignorespaces}
\newcommand*{\l@dcsnote}[1]{%
\ifnumberedpar@
- \xright@appenditem{\noexpand\vl@dcsnote{{\l@d@nums}{\@tag}{#1}}}%
+ \xright@appenditem{\noexpand\vl@dcsnote{#1}}%
\to\inserts@list
\global\advance\insert@count \@ne
\fi\ignorespaces}
@@ -9149,9 +9041,9 @@
% \begin{macro}{\vl@dcsnote}
% Put the left/right text into boxes, but just save the moveable text.
% \begin{macrocode}
-\newcommand*{\vl@dlsnote}[1]{\setl@dlp@rbox#1}
-\newcommand*{\vl@drsnote}[1]{\setl@drp@rbox#1}
-\newcommand*{\vl@dcsnote}[1]{\savel@dcsnote#1}
+\newcommand*{\vl@dlsnote}[1]{\setl@dlp@rbox{#1}}
+\newcommand*{\vl@drsnote}[1]{\setl@drp@rbox{#1}}
+\newcommand*{\vl@dcsnote}[1]{\gdef\l@dcsnotetext{#1}}
% \end{macrocode}
% \end{macro}
@@ -9166,14 +9058,25 @@
% It is these boxes that finally
% get displayed in the margins.
% \begin{macrocode}
-\newcommand*{\setl@dlp@rbox}[3]{%
+\newcommand*{\setl@dlp@rbox}[1]{%
{\parindent\z@\hsize=\ledlsnotewidth\ledlsnotefontsetup
- \global\setbox\l@dlp@rbox=\vbox to\z@{\vss#3}}}% aligns on bottom line
+ \global\setbox\l@dlp@rbox
+ \ifleftnoteup
+ =\vbox to\z@{\vss #1}%
+ \else
+ =\vbox to 0.70\baselineskip{\strut#1\vss}%
+ \fi}}
%% \global\setbox\l@dlp@rbox=\vbox to\z@{#3\vss}}}% aligns on top line
-\newcommand*{\setl@drp@rbox}[3]{%
+\newcommand*{\setl@drp@rbox}[1]{%
{\parindent\z@\hsize=\ledrsnotewidth\ledrsnotefontsetup
- \global\setbox\l@drp@rbox=\vbox to\z@{\vss#3}}}
-
+ \global\setbox\l@drp@rbox
+ \ifrightnoteup
+ =\vbox to\z@{\vss#1}%
+ \else
+ =\vbox to0.7\baselineskip{\strut#1\vss}%
+ \fi}}
+\newif\ifleftnoteup
+ \leftnoteuptrue
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -9199,9 +9102,9 @@
\ifx\@templ@d\l@dcsnotetext \else
\if@twocolumn
\if@firstcolumn
- \setl@dlp@rbox{}{}{\l@dcsnotetext}%
+ \setl@dlp@rbox{\l@dcsnotetext}%
\else
- \setl@drp@rbox{}{}{\l@dcsnotetext}%
+ \setl@drp@rbox{\l@dcsnotetext}%
\fi
\else
\@l@dtempcntb=\sidenote@margin
@@ -9209,9 +9112,9 @@
\advance\@l@dtempcntb by\page@num
\fi
\ifodd\@l@dtempcntb
- \setl@drp@rbox{}{}{\l@dcsnotetext}%
+ \setl@drp@rbox{\l@dcsnotetext}%
\else
- \setl@dlp@rbox{}{}{\l@dcsnotetext}%
+ \setl@dlp@rbox{\l@dcsnotetext}%
\fi
\fi
\fi}
@@ -10068,7 +9971,7 @@
% \changes{v0.4.1}{2003/03/06}{Added minpage setup to \cs{addfootinsX}}
% \begin{macrocode}
\newcommand*{\addfootinsX}[1]{%
- \footnormalX{#1}
+ \footnormalX{#1}%
\g@addto@macro{\doxtrafeeti}{%
\setbox\@outputbox \vbox{%
\unvbox\@outputbox
@@ -10078,11 +9981,11 @@
\ifvoid\@nameuse{footins#1}\else
\insert\@nameuse{footins#1}{\unvbox\@nameuse{footins#1}}\fi}%
\g@addto@macro{\l@dfambeginmini}{%
- \expandafter\let\csname footnote#1\endcsname=\@nameuse{mpfootnote#1}}
+ \expandafter\expandafter\expandafter\let\expandafter\expandafter
+ \csname footnote#1\endcsname \csname mpfootnote#1\endcsname}%
\g@addto@macro{\l@dfamendmini}{%
- \ifvoid\@nameuse{mpfootins#1}\else\@nameuse{mpfootgroup#1{#1}}}%
+ \ifvoid\@nameuse{mpfootins#1}\else\@nameuse{mpfootgroup#1}{#1}\fi}%
}
-
% \end{macrocode}
% \end{macro}
%
@@ -11226,16 +11129,17 @@
% \begin{macro}{\l@dcheckcols}
% Check that the number of columns is consistent. (was |\tabfehlermeldung|)
% \begin{macrocode}
-\newcommand{\l@dcheckcols}{%
- \ifnum\l@dcolcount=1\relax%
+\newcommand*{\l@dcheckcols}{%
+ \ifnum\l@dcolcount=1\relax
\else
- \ifnum\l@dampcount=1\relax%
+ \ifnum\l@dampcount=1\relax
\else
- \ifnum\l@dcolcount=\l@dampcount\relax%
- \led@err@UnequalColumns
- \fi%
+ \ifnum\l@dcolcount=\l@dampcount\relax
+ \else
+ \l@d@err@UnequalColumns
+ \fi
\fi
- \l@dampcount=\l@dcolcount%
+ \l@dampcount=\l@dcolcount
\fi}
% \end{macrocode}
@@ -12223,14 +12127,8 @@
%
% \section{The End}\label{end}
%
-% This is the end of the package code. But before we finish, enable
-% a patch file (if there is one) to be read.
-%
-% \begin{macrocode}
-\InputIfFileExists{ledpatch.sty}
%</code>
-% \end{macrocode}
%
% \newpage
% \appendix
@@ -12972,18 +12870,8 @@ in section~\ref{subsec}.
\newcommand{\vffootnote}[2]{\setlp@rbox#2}
\newcommand{\vgfootnote}[2]{\def\rd@ta{#2}}
+
- \renewcommand{\do@line}{%
- {\vbadness=10000 \splittopskip=0pt
- \gdef\rd@ta{}% for right margin paragraph->always a few characters
- \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
- \unvbox\one@line \global\setbox\one@line=\lastbox
- \getline@num
- \hbox to\hsize{\affixline@num\add@inserts\hbox to\z@% inserts added here so
- {\hss\box\lp@rbox\kern\linenumsep}% that margin pars are
- \hfil\hbox to\wd\one@line{\new@line\unhbox\one@line% included.
- \hbox to\z@{\kern\linenumsep\notenumfont\rd@ta\hss}}}%
- \add@penalties} % margin pars also included in line format
\renewcommand{\affixline@num}{%
\ifsublines@