% ledpatch.sty % Copyright Peter Wilson 2004, 2005 % herries dot press at earthlink dot net % % Patch(es) for ledmac % % %%%%\ProvidesFile{ledpatch}[2004/12/18 v0.1 patches for ledmac v0.6] %\ProvidesFile{ledpatch}[2005/01/11 v0.2 patches for ledmac v0.6] %\ProvidesFile{ledpatch}[2005/03/24 v0.3 patches for ledmac v0.7] %\ProvidesFile{ledpatch}[2005/04/15 v0.3a patches for ledmac v0.7] %\ProvidesFile{ledpatch}[2005/06/02 v0.4 patches for ledmac v0.7] \ProvidesFile{ledpatch}[2005/08/22 v0.5 patches for ledmac v0.7] %%%%%%%%%%%%%%%%%%%%%%%%%%%% v0.5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% There was a missing \else in \l@dcheckcols just before the %%% error message. The symptom was reported by Tobias Verbeke. \renewcommand*{\l@dcheckcols}{% \ifnum\l@dcolcount=1\relax \else \ifnum\l@dampcount=1\relax \else \ifnum\l@dcolcount=\l@dampcount\relax \else \l@d@err@UnequalColumns \fi \fi \l@dampcount=\l@dcolcount \fi} %%% \startlock and \endlock did not work properly in the middle %%% of a line. Problem reported by Stefano Cracolic %%% Letting S stand for \startlock and E for \endlock and t for regular %%% text, numbering is per the following examples: %%% %%% 1 Sttttt 1 Sttttt 1 Sttttt 1 Sttttt %%% tttttt tttttt tttttt tttttt %%% 2 ttEStt 2 ttttES tttttE tttttt %%% tttttt tttttt 2 Sttttt 2 EStttt %%% tttttt tttttt tttttt tttttt %%% ttEttt ttEttt ttEttt ttEttt %%% 3 tttttt 3 tttttt 3 tttttt 3 tttttt %%% 4 tttStt 4 tttttS 4 tttStt 4 ttSEtt %%% tttttt tttttt tttttt 5 tttttt %%% tttttt tttttt tttttt 6 tttttt %%% ttEttt Ettttt tttttE 7 tttttt %%% 5 tttttt 5 tttttt 5 tttttt 8 tttttt \renewcommand*{\do@lockon}{% \ifx\next\lock@off \global\let\lock@off=\skip@lockoff \else \do@lockonL \fi} \newcommand*{\do@lockonL}{% \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 \ifnum\sub@lock=\z@ \sub@lock \@ne \else \ifnum\sub@lock=\thr@@ \sub@lock \@ne \fi \fi \else \xright@appenditem{-1003}\to\actions@list %% \ifcase\@lock %% \@lock \@ne %% \else %% \@lock \z@ %% \fi \ifnum\@lock=\z@ \@lock \@ne \else \ifnum\@lock=\thr@@ \@lock \@ne \fi \fi \fi} \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@@ \else \sub@lock \z@ \fi \else \xright@appenditem{-1004}\to\actions@list \ifnum\@lock=\tw@ \@lock \thr@@ \else \@lock \z@ \fi \fi} \renewcommand*{\do@lockoff}{\do@lockoffL} \global\let\lock@off=\do@lockoff \renewcommand*{\do@actions@fixedcode}{% \ifcase\@l@dtempcnta \or% % 1001 \global\sublines@true \or% % 1002 \global\sublines@false \or% % 1003 %% \ifcase\@lock %% \global\@lock=\@ne %% \else %% \global\@lock=\z@ %% \fi \global\@lock=\@ne \or% % 1004 \ifnum\@lock=\tw@ \global\@lock=\thr@@ \else \global\@lock=\z@ \fi \or% % 1005 5% \ifcase\sub@lock %% \global\sub@lock=\@ne %% \else %% \global\sub@lock=\z@ %% \fi \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} %%% Reworked the sidenotes code. %%% Sidenotes are normally aligned on their bottom lines, %%% i.e, multiline notes extend upwards. To align notes on %%% their top lines (multiline notes extend downwards): %%% \rightnoteupfalse and/or \leftnoteupfalse. The default %%% is, of course, \rightnoteuptrue and \leftnoteuptrue. \newif\ifrightnoteup \rightnoteuptrue \renewcommand*{\l@drsnote}[1]{% \ifnumberedpar@ \xright@appenditem{\noexpand\vl@drsnote{#1}}% \to\inserts@list \global\advance\insert@count \@ne \fi\ignorespaces} \renewcommand*{\vl@drsnote}[1]{\setl@drp@rbox{#1}} \renewcommand*{\setl@drp@rbox}[1]{% {\parindent\z@\hsize=\ledrsnotewidth\ledrsnotefontsetup \global\setbox\l@drp@rbox \ifrightnoteup =\vbox to\z@{\vss#1}% \else =\vbox to0.7\baselineskip{\strut#1\vss}% \fi}} \newif\ifleftnoteup \leftnoteuptrue \renewcommand*{\l@dlsnote}[1]{% \ifnumberedpar@ \xright@appenditem{\noexpand\vl@dlsnote{#1}}% \to\inserts@list \global\advance\insert@count \@ne \fi\ignorespaces} \renewcommand*{\vl@dlsnote}[1]{\setl@dlp@rbox{#1}} \renewcommand*{\setl@dlp@rbox}[1]{% {\parindent\z@\hsize=\ledlsnotewidth\ledlsnotefontsetup \global\setbox\l@dlp@rbox \ifleftnoteup =\vbox to\z@{\vss #1}% \else =\vbox to 0.70\baselineskip{\strut#1\vss}% \fi}} \renewcommand*{\l@dcsnote}[1]{% \ifnumberedpar@ \xright@appenditem{\noexpand\vl@dcsnote{#1}}% \to\inserts@list \global\advance\insert@count \@ne \fi\ignorespaces} \renewcommand*{\vl@dcsnote}[1]{\gdef\l@dcsnotetext{#1}} \renewcommand*{\affixside@note}{% \gdef\@templ@d{}% \ifx\@templ@d\l@dcsnotetext \else \if@twocolumn \if@firstcolumn \setl@dlp@rbox{\l@dcsnotetext}% \else \setl@drp@rbox{\l@dcsnotetext}% \fi \else \@l@dtempcntb=\sidenote@margin \ifnum\@l@dtempcntb>\@ne \advance\@l@dtempcntb by\page@num \fi \ifodd\@l@dtempcntb \setl@drp@rbox{\l@dcsnotetext}% \else \setl@dlp@rbox{\l@dcsnotetext}% \fi \fi \fi} %%%%%%%%%%%%%%%%%%%%%%%%%%%% v0.4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% The instructions on page 26 in the manual regarding creating %%% a new familiar footnote series are incorrect. Instead follow %%% how the provided series are defined, that is, for example: %%% \makeatletter %%% \newcommand{\footnoteD}[1]{% %%% \stepcounter{footnoteD}% %%% \protected@xdef\@thefnmarkD{\thefootnoteD}% %%% \@footnotemarkD %%% \vfootnoteD{D}{#1}\m@mmf@prepare} %%% %%% \newcounter{footnoteD} %%% \renewcommand{\thefootnoteD}{\arabic{footnoteD}} %%% \newinsert\footinsD %%% %%% \newcommand{\mpfootnoteD}[1]{% %%% \stepcounter{footnoteD}% %%% \protected@xdef\@thefnmarkD{\thefootnoteD}% %%% \@footnotemarkD %%% \mpvfootnoteD{D}{#1}\m@mmf@prepare} %%% \newinsert\mpfootinsD %%% %%% \footnormalX{D} %%% \addfootinsX{D} %%% \makeatother %%% %%% Change \addfootinsX to correct screwups in defining new familar %%% series footnotes. Problem initially noted by Dirk Schlimm %%% (dschlimm@gmail.com) in private email, 2005/05/31 \renewcommand*{\addfootinsX}[1]{% \footnormalX{#1}% \g@addto@macro{\doxtrafeeti}{% \setbox\@outputbox \vbox{% \unvbox\@outputbox \ifvoid\@nameuse{footins#1}\else \@nameuse{footstart#1}{#1}\@nameuse{footgroup#1}{#1}\fi}}% \g@addto@macro{\doreinxtrafeeti}{% \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}}% \g@addto@macro{\l@dfambeginmini}{% \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}}}% \g@addto@macro{\l@dfamendmini}{% \ifvoid\@nameuse{mpfootins#1}\else\@nameuse{mpfootgroup#1}{#1}\fi}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%% v0.3a %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Slight efficiency improvement (particularly for ledpar) \newcommand*{\l@dunhbox@line}[1]{\unhbox #1} \renewcommand*{\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 \hb@xt@ \linewidth{\l@dld@ta\add@inserts\affixside@note \l@dlsn@te %%%% {\ledllfill\hb@xt@ \wd\one@line{\new@line\unhbox\one@line}\ledrlfill\l@drd@ta% {\ledllfill\hb@xt@ \wd\one@line{\new@line\l@dunhbox@line{\one@line}}\ledrlfill\l@drd@ta% \l@drsn@te }} \add@penalties} \endinput %%%%%%%%%%% earlier patches now in ledmac.sty itself