From 5ee555b18c5d1b514f56d1583cb66ad016b9c0c6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 24 Aug 2011 00:06:44 +0000 Subject: ledmac (ledpar) update (23aug11) git-svn-id: svn://tug.org/texlive/trunk@23663 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/ledmac/ledarab.dtx | 2 + Master/texmf-dist/source/latex/ledmac/ledmac.dtx | 392 +++++-------- Master/texmf-dist/source/latex/ledmac/ledpar.dtx | 671 ++++++++++++---------- 3 files changed, 496 insertions(+), 569 deletions(-) (limited to 'Master/texmf-dist/source/latex/ledmac') diff --git a/Master/texmf-dist/source/latex/ledmac/ledarab.dtx b/Master/texmf-dist/source/latex/ledmac/ledarab.dtx index eaed5ddd2fa..6d45e1fc1a2 100644 --- a/Master/texmf-dist/source/latex/ledmac/ledarab.dtx +++ b/Master/texmf-dist/source/latex/ledmac/ledarab.dtx @@ -193,6 +193,8 @@ % provides an interface between \Larabtex{} and \Ledmac{} (also \Ledpar) % for arabic text % in critical editions. +% +% Please, for all bug's report, open a ticket on \url{https://github.com/maieul/ledmac/issues/} % \end{abstract} % % \tableofcontents 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} % -% \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@ diff --git a/Master/texmf-dist/source/latex/ledmac/ledpar.dtx b/Master/texmf-dist/source/latex/ledmac/ledpar.dtx index 0b12bf384d8..8b03e4eaa6e 100644 --- a/Master/texmf-dist/source/latex/ledmac/ledpar.dtx +++ b/Master/texmf-dist/source/latex/ledmac/ledpar.dtx @@ -50,7 +50,7 @@ % % \fi % -% \CheckSum{4247} +% \CheckSum{4361} % % \makeatletter % \newcommand*{\DescribeIt}{\leavevmode\@bsphack\begingroup\MakePrivateLetters @@ -122,6 +122,9 @@ % \def\fileversion{v0.3a} \def\filedate{2005/03/30} % \def\fileversion{v0.3b} \def\filedate{2005/04/08} % \def\fileversion{v0.3c} \def\filedate{2011/06/16} +% \def\fileversion{v0.4} \def\filedate{2011/08/03} +% \def\fileversion{v0.5} \def\filedate{2011/08/21} +% \def\fileversion{v0.6} \def\filedate{2011/08/22} % % \changes{v0.1}{2004/12/10}{First public release} % \changes{v0.2}{2005/01/01}{Fix babel problems} @@ -129,7 +132,9 @@ % \changes{v0.3a}{2005/03/30}{Minor \cs{linenummargin} fix} % \changes{v0.3b}{2005/04/08}{Improved parallel page balancing} % \changes{v0.3c}{2011/06/16}{Compatibilty with Polyglossia} - +% \changes{v0.4}{2011/08/03}{No more ledparpatch. All patches are now in the main file.} +% \changes{v0.5}{2011/08/21}{Corrections about \cs{section} and other titles in numbered sections} +% \changes{v0.6}{2011/08/22}{Be able to us \cs{chapter} in parallel pages.} % \hyphenation{man-u-script man-u-scripts} % % \newcommand{\Lpack}[1]{\textsf{#1}} @@ -183,6 +188,8 @@ % editions. The \Ledpar{} package is an extension to \Ledmac{} % which enables texts and their critical apparatus to be typeset in % parallel, either in two columns or on pairs of facing pages. +% +% Please, for all bug's report, open a ticket on \url{https://github.com/maieul/ledmac/issues/} % \end{abstract} % % \tableofcontents @@ -679,7 +686,7 @@ % \begin{macrocode} %<*code> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ledpar}[2011/06/16 v0.3c ledmac extension for parallel texts] +\ProvidesPackage{ledpar}[2011/08/22 v0.6 ledmac extension for parallel texts] % \end{macrocode} % @@ -831,12 +838,11 @@ \global\advance\section@numR \@ne \global\absline@numR \z@ \global\line@numR \z@ - \global\subline@numR \z@ - \global\@lock \z@ - \global\sub@lock \z@ + \global\@lockR \z@ + \global\sub@lockR \z@ \global\sublines@false - \global\let\next@page@numR=\relax - \global\let\sub@change=\relax + \global\let\next@page@numR\relax + \global\let\sub@change\relax \message{Section \the\section@numR R }% \line@list@stuffR{\jobname.\extensionchars\the\section@numR R}% \l@dend@stuff} @@ -1295,81 +1301,68 @@ % % The macros with \verb"action" in their names contain all the code % that modifies the action-code list. -% +% \begin{macro}{\@l@regR} % \begin{macro}{\@l} % \cs{@l} does everything related to the start of a % new line of numbered text. Exactly what it does depends % on whether right text is being processed. % % \begin{macrocode} -\renewcommand{\@l}[2]{% - \fix@page{#1}% - \ifledRcol - \ifx\l@dchset@num\relax \else - \advance\absline@numR \@ne - \set@line@action - \let\l@dchset@num=\relax - \advance\absline@numR \m@ne - \advance\line@numR \m@ne% % do we need this?? - \fi +\newcommand{\@l@regR}{% + \ifx\l@dchset@num\relax \else \advance\absline@numR \@ne -% \end{macrocode} -% Increment the absolute line-number, and perform -% deferred actions relating to page starts and sub-lines. -% \begin{macrocode} - \ifx\next@page@numR\relax \else - \page@action - \let\next@page@numR=\relax - \fi - \ifx\sub@change\relax \else - \ifnum\sub@change>\z@ - \sublines@true - \else - \sublines@false - \fi - \sub@action - \let\sub@change=\relax + \set@line@action + \let\l@dchset@num\relax + \advance\absline@numR \m@ne + \advance\line@numR \m@ne% % do we need this? + \fi + \advance\absline@numR \@ne + \ifx\next@page@numR\relax \else + \page@action + \let\next@page@numR\relax + \fi + \ifx\sub@change\relax \else + \ifnum\sub@change>\z@ + \sublines@true + \else + \sublines@false \fi -% \end{macrocode} -% -% Fix the lock counters, if necessary. A value of $1$ is advanced to -% $2$; $3$ advances to $0$; other values are unchanged. -% \begin{macrocode} - \ifcase\@lock - \or - \@lock \tw@ - \or \or - \@lock \z@ - \fi - \ifcase\sub@lock - \or - \sub@lock \tw@ - \or \or - \sub@lock \z@ - \fi -% \end{macrocode} -% -% Now advance the visible line number, unless it's been locked. -% \begin{macrocode} + \sub@action + \let\sub@change\relax + \fi + \ifcase\@lockR + \or + \@lockR \tw@ + \or\or + \@lockR \z@ + \fi + \ifcase\sub@lockR + \or + \sub@lockR \tw@ + \or\or + \sub@lockR \z@ + \fi \ifsublines@ - \ifnum\sub@lock<\tw@ + \ifnum\sub@lockR<\tw@ \advance\subline@numR \@ne \fi \else - \ifnum\@lock<\tw@ + \ifnum\@lockR<\tw@ \advance\line@numR \@ne \subline@numR \z@ \fi - \fi + \fi} + +\renewcommand*{\@l}[2]{% + \fix@page{#1}% + \ifledRcol + \@l@regR \else -% \end{macrocode} -% And when we are not in right text -% \begin{macrocode} \@l@reg \fi} % \end{macrocode} % \end{macro} -% +% \end{macro} % \begin{macro}{\last@page@numR} % \begin{macro}{\fix@page} % We have to adjust \cs{fix@page} to handle parallel texts. @@ -1564,102 +1557,91 @@ % \end{macro} % % \begin{macro}{\do@lockon} +% \begin{macro}{\do@lockonR} % \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 % whether this applies to line numbers or sub-line numbers. % \begin{macrocode} +\newcount\@lockR +\newcount\sub@lockR + +\newcommand*{\do@lockonR}{% + \xright@appenditem{\the\absline@numR}\to\actionlines@listR + \ifsublines@ + \xright@appenditem{-1005}\to\actions@listR + \ifnum\sub@lockR=\z@ + \sub@lockR \@ne + \else + \ifnum\sub@lockR=\thr@@ + \sub@lockR \@ne + \fi + \fi + \else + \xright@appenditem{-1003}\to\actions@listR + \ifnum\@lockR=\z@ + \@lockR \@ne + \else + \ifnum\@lockR=\thr@@ + \@lockR \@ne + \fi + \fi + \fi} + \renewcommand*{\do@lockon}{% \ifx\next\lock@off - \global\let\lock@off=\skip@lockoff + \global\let\lock@off=\skip@lockoff \else \ifledRcol - \xright@appenditem{\the\absline@numR}\to\actionlines@listR - \ifsublines@ - \xright@appenditem{-1005}\to\actions@listR - \ifcase\sub@lock - \sub@lock \@ne - \else - \sub@lock \z@ - \fi - \else - \xright@appenditem{-1003}\to\actions@listR - \ifcase\@lock - \@lock \@ne - \else - \@lock \z@ - \fi - \fi + \do@lockonR \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 - \fi + \do@lockonL + \fi \fi} % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\lock@off} % \begin{macro}{\do@lockoff} +% \begin{macro}{\do@lockoffR} % \begin{macro}{\skip@lockoff} % \cs{lock@off} adds an entry to the action-code list % to turn line number locking off. % \begin{macrocode} -\renewcommand*{\do@lockoff}{% - \ifledRcol - \xright@appenditem{\the\absline@numR}\to\actionlines@listR - \ifsublines@ - \xright@appenditem{-1006}\to\actions@listR - \ifnum\sub@lock=\tw@ - \sub@lock \thr@@ - \else - \sub@lock \z@ - \fi + + +\newcommand{\do@lockoffR}{% + \xright@appenditem{\the\absline@numR}\to\actionlines@listR + \ifsublines@ + \xright@appenditem{-1006}\to\actions@listR + \ifnum\sub@lockR=\tw@ + \sub@lockR \thr@@ \else - \xright@appenditem{-1004}\to\actions@listR - \ifnum\@lock=\tw@ - \@lock \thr@@ - \else - \@lock \z@ - \fi + \sub@lockR \z@ \fi \else - \xright@appenditem{\the\absline@num}\to\actionlines@list - \ifsublines@ - \xright@appenditem{-1006}\to\actions@list - \ifnum\sub@lock=\tw@ - \sub@lock \thr@@ - \else - \sub@lock \z@ - \fi + \xright@appenditem{-1004}\to\actions@listR + \ifnum\@lockR=\tw@ + \@lockR \thr@@ \else - \xright@appenditem{-1004}\to\actions@list - \ifnum\@lock=\tw@ - \@lock \thr@@ - \else - \@lock \z@ - \fi + \@lockR \z@ \fi \fi} + +\renewcommand*{\do@lockoff}{% + \ifledRcol + \do@lockoffR + \else + \do@lockoffL + \fi} \global\let\lock@off=\do@lockoff % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\n@num} % This macro implements the \cs{skipnumbering} command. It uses a new @@ -2087,6 +2069,7 @@ % % \begin{environment}{pairs} % \begin{environment}{pages} +% \begin{macro}{chapterinpages} % The \verb?pairs? environment is for parallel columns and the \verb?pages? % environment for parallel pages. % \begin{macrocode} @@ -2098,9 +2081,11 @@ } % \end{macrocode} % The \verb?pages? environment additionally sets the `column' widths to the -% \cs{textwidth} (as known at the time the package is called). +% \cs{textwidth} (as known at the time the package is called). As in this environnement there is two text in parallels in 2 pages, chapter have not to start in a left page. So the \cs{chapter} command is redefined to make no test about clearing page. % \begin{macrocode} \newenvironment{pages}{% + \let\oldchapter\chapter + \let\chapter\chapterinpages \l@dpairingtrue \l@dpagingtrue \setlength{\Lcolwidth}{\textwidth}% @@ -2108,9 +2093,15 @@ }{% \l@dpairingfalse \l@dpagingfalse + \let\chapter\oldchapter } +\newcommand{\chapterinpages}{\thispagestyle{plain}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} % \end{macrocode} +% \end{macro} % \end{environment} % \end{environment} % @@ -2238,7 +2229,14 @@ % among other things because of potential changes in the linewidth. % % \begin{macrocode} -\newcommand*{\pstartL}{\ifnumbering \else +\newcommand*{\pstartL}{ +\if@nobreak + \let\@oldnobreak\@nobreaktrue +\else + \let\@oldnobreak\@nobreakfalse +\fi + \@nobreaktrue + \ifnumbering \else \led@err@PstartNotNumbered \beginnumbering \fi @@ -2272,7 +2270,14 @@ % \end{macrocode} % % \begin{macrocode} -\newcommand*{\pstartR}{\ifnumberingR \else +\newcommand*{\pstartR}{ +\if@nobreak + \let\@oldnobreak\@nobreaktrue +\else + \let\@oldnobreak\@nobreakfalse +\fi + \@nobreaktrue + \ifnumberingR \else \led@err@PstartNotNumbered \beginnumberingR \fi @@ -2325,7 +2330,8 @@ % End the group that was begun in the \cs{pstart}. % \begin{macrocode} \endgroup - \ignorespaces} + \ignorespaces + \@oldnobreak} % \end{macrocode} % \end{macro} @@ -2344,7 +2350,8 @@ \endgraf\global\num@linesR=\prevgraf\egroup \global\par@lineR=0 \endgroup - \ignorespaces} + \ignorespaces + \@oldnobreak} % \end{macrocode} % \end{macro} @@ -2410,78 +2417,33 @@ % \begin{macrocode} \newcommand*{\do@lineL}{% \advance\countLline \@ne -% \end{macrocode} -% If the current \cs{l@dLcolrawbox} box is not empty it contains -% the remaining unprocessed lines of the chunk, so -% pull one line off the top. -% \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} \ifvbox\namebox{l@dLcolrawbox\the\l@dpscL}% - {\vbadness=10000 \splittopskip=0pt -% \end{macrocode} -% Insert the \cs{do@lineLhook} and -% 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} - \do@lineLhook - \l@demptyd@ta -% \end{macrocode} -% -% \begin{macrocode} - \global\setbox\one@line=\vsplit\namebox{l@dLcolrawbox\the\l@dpscL} - to\baselineskip}% -% \end{macrocode} -% -% \cs{one@line} comes out of \cs{vsplit} as a \verb"vbox"; -% we now convert it to an \verb"hbox". -% \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 put the line into a box of the apropriate width, with a line -% number attached if necessary. -% \begin{macrocode} - \setbox\l@dleftbox - \hb@xt@ \Lcolwidth{% -% \end{macrocode} -% Add line numbers, inserts, sidenotes, etc. -% \begin{macrocode} - \affixline@num - \l@dld@ta - \add@inserts - \affixside@note -% \end{macrocode} -% Now stick everything into a set of boxes. -% \begin{macrocode} - \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 + {\vbadness=10000 + \splittopskip=\z@ + \do@lineLhook + \l@demptyd@ta + \global\setbox\one@line=\vsplit\namebox{l@dLcolrawbox\the\l@dpscL} + to\baselineskip}% + \unvbox\one@line \global\setbox\one@line=\lastbox + \getline@num + \setbox\l@dleftbox + \hb@xt@ \Lcolwidth{% + \affixline@num + \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 }}% -% \end{macrocode} -% Penalties get stripped off by this slicing process; the following -% macro puts them back in as the last stepandthen we increment the -% number of `real' (text),and total lines done. -% \begin{macrocode} - \add@penaltiesL - \global\advance\@donereallinesL\@ne - \global\advance\@donetotallinesL\@ne -% \end{macrocode} -% Otherwise, the curent \cs{l@dLcolrawbox} has been emptied, so just -% generate an empty box and increment the total lines. -% \begin{macrocode} - \else - \setbox\l@dleftbox \hb@xt@ \Lcolwidth{\hspace*{\Lcolwidth}}% - \global\advance\@donetotallinesL\@ne - \fi} + \add@penaltiesL + \global\advance\@donereallinesL\@ne + \global\advance\@donetotallinesL\@ne +\else + \setbox\l@dleftbox \hb@xt@ \Lcolwidth{\hspace*{\Lcolwidth}}% + \global\advance\@donetotallinesL\@ne +\fi} + % \end{macrocode} % \end{macro} @@ -2506,30 +2468,32 @@ \newcommand*{\do@lineR}{% \advance\countRline \@ne \ifvbox\namebox{l@dRcolrawbox\the\l@dpscR}% - {\vbadness=10000 \splittopskip=0pt - \do@lineRhook - \l@demptyd@ta - \global\setbox\one@lineR=\vsplit\namebox{l@dRcolrawbox\the\l@dpscR} - to\baselineskip}% - \unvbox\one@lineR \global\setbox\one@lineR=\lastbox - \getline@numR - \setbox\l@drightbox - \hb@xt@ \Rcolwidth{% - \affixline@numR - \l@dld@ta - \add@insertsR - \affixside@noteR - \l@dlsn@te% left side note - {\ledllfill\hb@xt@ \wd\one@lineR{\new@lineR\unhbox\one@lineR}\ledrlfill\l@drd@ta - \l@drsn@te% right side note + {\vbadness=10000 + \splittopskip=\z@ + \do@lineRhook + \l@demptyd@ta + \global\setbox\one@lineR=\vsplit\namebox{l@dRcolrawbox\the\l@dpscR} + to\baselineskip}% + \unvbox\one@lineR \global\setbox\one@lineR=\lastbox + \getline@numR + \setbox\l@drightbox + \hb@xt@ \Rcolwidth{% + \affixline@numR + \l@dld@ta + \add@insertsR + \affixside@noteR + \l@dlsn@te + {\ledllfill\hb@xt@ \wd\one@lineR{\new@lineR\l@dunhbox@line{\one@lineR}}\ledrlfill\l@drd@ta% + \l@drsn@te }}% - \add@penaltiesR - \global\advance\@donereallinesR \@ne - \global\advance\@donetotallinesR \@ne - \else - \setbox\l@drightbox \hb@xt@ \Rcolwidth{\hspace*{\Rcolwidth}} - \global\advance\@donetotallinesR \@ne - \fi} + \add@penaltiesR + \global\advance\@donereallinesR\@ne + \global\advance\@donetotallinesR\@ne +\else + \setbox\l@drightbox \hb@xt@ \Rcolwidth{\hspace*{\Rcolwidth}} + \global\advance\@donetotallinesR\@ne +\fi} + % \end{macrocode} % \end{macro} @@ -2547,16 +2511,17 @@ \do@actionsR \do@ballastR \ifsublines@ - \ifnum\sub@lock<\tw@ - \global\advance\subline@numR \@ne - \fi + \ifnum\sub@lockR<\tw@ + \global\advance\subline@numR \@ne + \fi \else - \ifnum\@lock<\tw@ - \global\advance\line@numR \@ne - \global\subline@numR=\z@ - \fi + \ifnum\@lockR<\tw@ + \global\advance\line@numR \@ne + \global\subline@numR \z@ + \fi \fi} + % \end{macrocode} % \end{macro} % @@ -2580,6 +2545,7 @@ % % % \begin{macro}{\do@actionsR} +% \begin{macro}{\do@actions@fixedcodeR} % \begin{macro}{\do@actions@nextR} % % The \cs{do@actionsR} macro @@ -2590,36 +2556,65 @@ % \cs{do@actions@nextR} for this. % \changes{v0.3}{2005/02/24}{Used \cs{do@actions@fixedcode} in \cs{do@actionsR}} % \begin{macrocode} +\newcommand*{\do@actions@fixedcodeR}{% + \ifcase\@l@dtempcnta% + \or% % 1001 + \global\sublines@true + \or% % 1002 + \global\sublines@false + \or% % 1003 + \global\@lockR=\@ne + \or% % 1004 + \ifnum\@lockR=\tw@ + \global\@lockR=\thr@@ + \else + \global\@lockR=\z@ + \fi + \or% % 1005 + \global\sub@lockR=\@ne + \or% % 1006 + \ifnum\sub@lockR=\tw@ + \global\sub@lockR=\thr@@ + \else + \global\sub@lockR=\z@ + \fi + \or% % 1007 + \l@dskipnumbertrue + \else + \led@warn@BadAction + \fi} + + \newcommand*{\do@actionsR}{% \global\let\do@actions@nextR=\relax \@l@dtempcntb=\absline@numR \ifnum\@l@dtempcntb<\next@actionlineR\else - \ifnum\next@actionR>-1001 - \global\page@numR=\next@actionR - \ifbypage@R - \global\line@numR=\z@ \global\subline@numR=\z@ - \fi + \ifnum\next@actionR>-1001\relax + \global\page@numR=\next@actionR + \ifbypage@R + \global\line@numR \z@ \global\subline@numR \z@ + \fi \else - \ifnum\next@actionR<-4999 - \@l@dtempcnta=-\next@actionR - \advance\@l@dtempcnta by -5001 - \ifsublines@ - \global\subline@numR=\@l@dtempcnta - \else - \global\line@numR=\@l@dtempcnta - \fi - \else - \@l@dtempcnta=-\next@actionR - \advance\@l@dtempcnta by -1000 - \do@actions@fixedcode - \fi + \ifnum\next@actionR<-4999\relax % 9/05 added relax here + \@l@dtempcnta=-\next@actionR + \advance\@l@dtempcnta by -5001\relax + \ifsublines@ + \global\subline@numR=\@l@dtempcnta + \else + \global\line@numR=\@l@dtempcnta + \fi + \else + \@l@dtempcnta=-\next@actionR + \advance\@l@dtempcnta by -1000\relax + \do@actions@fixedcodeR + \fi \fi \ifx\actionlines@listR\empty - \gdef\next@actionlineR{1000000}% + \gdef\next@actionlineR{1000000}% \else - \gl@p\actionlines@listR\to\next@actionlineR - \gl@p\actions@listR\to\next@actionR - \global\let\do@actions@nextR=\do@actionsR + \gl@p\actionlines@listR\to\next@actionlineR + \gl@p\actions@listR\to\next@actionR + \global\let\do@actions@nextR=\do@actionsR \fi \fi \do@actions@nextR} @@ -2627,79 +2622,130 @@ % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \subsection{Line number printing} % -% +% \begin{macro}{\l@dcalcnum} +% \begin{macro}{\ch@cksub@l@ckR} +% \begin{macro}{\ch@ck@l@ckR} +% \begin{macro}{\f@x@l@cksR} % \begin{macro}{\affixline@numR} % \cs{affixline@numR} is the right text version of the % \cs{affixline@num} macro. % \changes{v0.3}{2005/02/24}{Changed \cs{affixline@numR} to match new ledmac} % \begin{macrocode} + +\providecommand*{\l@dcalcnum}[3]{% + \ifnum #1 > #2\relax + \@l@dtempcnta = #1\relax + \advance\@l@dtempcnta by -#2\relax + \divide\@l@dtempcnta by #3\relax + \multiply\@l@dtempcnta by #3\relax + \advance\@l@dtempcnta by #2\relax + \else + \@l@dtempcnta=#2\relax + \fi} + +\newcommand*{\ch@cksub@l@ckR}{% + \ifcase\sub@lockR + \or + \ifnum\sublock@disp=\@ne + \@l@dtempcntb \z@ \@l@dtempcnta \@ne + \fi + \or + \ifnum\sublock@disp=\tw@ + \else + \@l@dtempcntb \z@ \@l@dtempcnta \@ne + \fi + \or + \ifnum\sublock@disp=\z@ + \@l@dtempcntb \z@ \@l@dtempcnta \@ne + \fi + \fi} + +\newcommand*{\ch@ck@l@ckR}{% + \ifcase\@lockR + \or + \ifnum\lock@disp=\@ne + \@l@dtempcntb \z@ \@l@dtempcnta \@ne + \fi + \or + \ifnum\lock@disp=\tw@ + \else + \@l@dtempcntb \z@ \@l@dtempcnta \@ne + \fi + \or + \ifnum\lock@disp=\z@ + \@l@dtempcntb \z@ \@l@dtempcnta \@ne + \fi + \fi} + +\newcommand*{\f@x@l@cksR}{% + \ifcase\@lockR + \or + \global\@lockR \tw@ + \or \or + \global\@lockR \z@ + \fi + \ifcase\sub@lockR + \or + \global\sub@lockR \tw@ + \or \or + \global\sub@lockR \z@ + \fi} + + \newcommand*{\affixline@numR}{% \ifl@dskipnumber \global\l@dskipnumberfalse \else \ifsublines@ \@l@dtempcntb=\subline@numR - \ifnum\subline@numR>\c@firstsublinenumR - \@l@dtempcnta=\subline@numR - \advance\@l@dtempcnta by-\c@firstsublinenumR - \divide\@l@dtempcnta by\c@sublinenumincrementR - \multiply\@l@dtempcnta by\c@sublinenumincrementR - \advance\@l@dtempcnta by\c@firstsublinenumR - \else - \@l@dtempcnta=\c@firstsublinenumR - \fi - \ch@cksub@l@ck + \l@dcalcnum{\subline@numR}{\c@firstsublinenumR}{\c@sublinenumincrementR}% + \ch@cksub@lockR \else \@l@dtempcntb=\line@numR \ifx\linenumberlist\empty - \ifnum\line@numR>\c@firstlinenumR - \@l@dtempcnta=\line@numR - \advance\@l@dtempcnta by-\c@firstlinenumR - \divide\@l@dtempcnta by\c@linenumincrementR - \multiply\@l@dtempcnta by\c@linenumincrementR - \advance\@l@dtempcnta by\c@firstlinenumR - \else - \@l@dtempcnta=\c@firstlinenumR - \fi + \l@dcalcnum{\line@numR}{\c@firstlinenumR}{\c@linenumincrementR}% \else \@l@dtempcnta=\line@numR \edef\rem@inder{,\linenumberlist,\number\line@numR,}% \edef\sc@n@list{\def\noexpand\sc@n@list ####1,\number\@l@dtempcnta,####2|{\def\noexpand\rem@inder{####2}}}% - \sc@n@list\expandafter\sc@n@list\rem@inder|% - \ifx\rem@inder\empty\advance\@l@dtempcnta\@ne\fi - \fi - \ch@ck@l@ck + \sc@n@list\expandafter\sc@n@list\rem@inder|% + \ifx\rem@inder\empty\advance\@l@dtempcnta\@ne\fi + \fi + \ch@ck@l@ckR \fi \ifnum\@l@dtempcnta=\@l@dtempcntb - \if@twocolumn - \if@firstcolumn - \gdef\l@dld@ta{\llap{{\leftlinenumR}}}% - \else - \gdef\l@drd@ta{\rlap{{\rightlinenumR}}}% - \fi - \else - \@l@dtempcntb=\line@marginR - \ifnum\@l@dtempcntb>\@ne - \advance\@l@dtempcntb by\page@numR - \fi - \ifodd\@l@dtempcntb - \gdef\l@drd@ta{\rlap{{\rightlinenumR}}}% + \if@twocolumn + \if@firstcolumn + \gdef\l@dld@ta{\llap{{\leftlinenumR}}}% + \else + \gdef\l@drd@ta{\rlap{{\rightlinenumR}}}% + \fi \else - \gdef\l@dld@ta{\llap{{\leftlinenumR}}}% + \@l@dtempcntb=\line@marginR + \ifnum\@l@dtempcntb>\@ne + \advance\@l@dtempcntb by\page@numR + \fi + \ifodd\@l@dtempcntb + \gdef\l@drd@ta{\rlap{{\rightlinenumR}}}% + \else + \gdef\l@dld@ta{\llap{{\leftlinenumR}}}% + \fi \fi - \fi - \else -%% #1% \fi - \f@x@l@cks + \f@x@l@cksR \fi} % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \subsection{Add insertions to the vertical list} % @@ -3197,11 +3243,11 @@ \renewcommand*{\l@dlsnote}[1]{% \ifnumberedpar@ \ifledRcol - \xright@appenditem{\noexpand\vl@dlsnote{{\l@d@nums}{\@tag}{#1}}}% + \xright@appenditem{\noexpand\vl@dlsnote{#1}}% \to\inserts@listR \global\advance\insert@countR \@ne \else - \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 @@ -3209,11 +3255,11 @@ \renewcommand*{\l@drsnote}[1]{% \ifnumberedpar@ \ifledRcol - \xright@appenditem{\noexpand\vl@drsnote{{\l@d@nums}{\@tag}{#1}}}% + \xright@appenditem{\noexpand\vl@drsnote{#1}}% \to\inserts@listR \global\advance\insert@countR \@ne \else - \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 @@ -3221,11 +3267,11 @@ \renewcommand*{\l@dcsnote}[1]{% \ifnumberedpar@ \ifledRcol - \xright@appenditem{\noexpand\vl@dcsnote{{\l@d@nums}{\@tag}{#1}}}% + \xright@appenditem{\noexpand\vl@dcsnote{#1}}% \to\inserts@listR \global\advance\insert@countR \@ne \else - \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 @@ -3244,23 +3290,19 @@ \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@marginR \ifnum\@l@dtempcntb>\@ne - \ifl@dpaging - \advance\@l@dtempcntb by\@ne - \else - \advance\@l@dtempcntb by\page@num - \fi + \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} @@ -4393,14 +4435,9 @@ % % \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{ledparpatch.sty} + % -% \end{macrocode} % % \newpage % \appendix -- cgit v1.2.3