aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ekdosis.dtx245
-rw-r--r--ekdosis.el20
2 files changed, 212 insertions, 53 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx
index f6571f6..bfce8bc 100644
--- a/ekdosis.dtx
+++ b/ekdosis.dtx
@@ -61,7 +61,7 @@ along with this program. If not, see
61%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] 61%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
62%<package>\ProvidesPackage{ekdosis} 62%<package>\ProvidesPackage{ekdosis}
63%<*package> 63%<*package>
64 [2022/10/25 v1.5-dev Typesetting TEI xml-compliant critical editions] 64 [2022/10/26 v1.5-dev Typesetting TEI xml-compliant critical editions]
65%</package> 65%</package>
66%<*driver> 66%<*driver>
67\begin{filecontents}[noheader,overwrite]{bibdata.xml} 67\begin{filecontents}[noheader,overwrite]{bibdata.xml}
@@ -356,6 +356,15 @@ along with this program. If not, see
356 version = {1.3} 356 version = {1.3}
357} 357}
358 358
359@Software{fgruler,
360 title = {The Fgruler package},
361 titleaddon = {Draw rulers on the foreground or in the text},
362 author = {Tómács, Tibor},
363 url = {https://ctan.org/pkg/fgruler},
364 date = {2022-06-25},
365 version = {1.5},
366}
367
359@Software{fnpos, 368@Software{fnpos,
360 title = {The Fnpos package}, 369 title = {The Fnpos package},
361 titleaddon = {Control the position of footnotes on the page}, 370 titleaddon = {Control the position of footnotes on the page},
@@ -3447,7 +3456,9 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3447% further adjust languages, hyphenation rules, and/or fonts to be 3456% further adjust languages, hyphenation rules, and/or fonts to be
3448% applied in each environment. To return to the example provided 3457% applied in each environment. To return to the example provided
3449% above, once \cs{SetAlignment} has been used, the languages can be 3458% above, once \cs{SetAlignment} has been used, the languages can be
3450% set as follows:--- 3459% set as follows:\footnote{The \cs{setmaxlines} command provides a
3460% further example of applying this technique. See below
3461% \vpageref{ref:setmaxlines-hook}.}---
3451% 3462%
3452% \iffalse 3463% \iffalse
3453%<*example> 3464%<*example>
@@ -3716,7 +3727,9 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3716% up to which the apparatus block is allowed to grow before the size 3727% up to which the apparatus block is allowed to grow before the size
3717% of the characters is reduced to allow for more entries. The value 3728% of the characters is reduced to allow for more entries. The value
3718% must be a dimension, namely a number followed by a length unit, such 3729% must be a dimension, namely a number followed by a length unit, such
3719% as |0.65\textheight|, |18cm| or |6in|.\\ 3730% as |0.65\textheight|, |18cm| or |6in|. \mansee To learn how this
3731% value can be adjusted on given pages, see below
3732% \vpageref{ref:fitapp-trick}.\\
3720% \DescribeOption{fitalgorithm}% 3733% \DescribeOption{fitalgorithm}%
3721% \phts\label{ref:fitalgorithm} 3734% \phts\label{ref:fitalgorithm}
3722% \unskip|fitalgorithm|$=$\verb+fontsize|hybrid|areasize|squeeze+ 3735% \unskip|fitalgorithm|$=$\verb+fontsize|hybrid|areasize|squeeze+
@@ -5114,9 +5127,53 @@ substantiall fewell,}
5114% 5127%
5115% \medskip\noindent\textbf{Limiting the Number of Lines per Page} 5128% \medskip\noindent\textbf{Limiting the Number of Lines per Page}
5116% \phts\label{ref:gmaxlines}\\ 5129% \phts\label{ref:gmaxlines}\\
5117% \DescribeOption{maxlines} \newfeature[v1.5] |maxlines|=\meta{n} 5130% \DescribeOption{maxlines} |maxlines|$=$\emph{n} (where \emph{n} is
5131% an integer $\geq 1$)\newfeature[v1.5]
5118% \hfill\tcboxverb{Default: not set}\\ 5132% \hfill\tcboxverb{Default: not set}\\
5133% |maxlines|$=$\emph{n} instructs \pkg{ekdosis} to break the pages of
5134% numbered text every \emph{n} lines. This option is very useful for
5135% building editions equipped with long and complex apparatus
5136% criticus. The rationale is to start with a number of lines that will
5137% allow all pages to pass just after a few runs of \LuaLaTeX, even at
5138% the cost of showing blanks between the edition text and the
5139% apparatus criticus. Adjusting further the number of lines will then
5140% leave fewer blanks on display. Combined with the |fitapp| global
5141% option\footnote{See above \vpageref{ref:fitapp-opt}.} or with
5142% |maxentries|,\footnote{Se above \vpageref{ref:maxentries}.}
5143% |maxlines| can achieve excellent results. For more details on this
5144% technique, see below \ref{sec:oscillating-problem},
5145% \enquote{\nameref{sec:oscillating-problem}}
5146% \vpageref{ref:maxlines-trick}.\\
5147% \DescribeOption{nomaxlines} \newfeature[v1.5]
5148% \hfill\tcboxverb{Default: not set}\\
5149% This no-value option unsets any limit previously set by |maxlines|
5150% or \cs{setmaxlines}\\
5151% \DescribeMacro{\setmaxlines} \cs{setmaxlines}\marg{n} (where
5152% \meta{n} $\geq 1$) has the same effect as the |maxlines| option just
5153% described. This command can be used either in the preamble or at any
5154% point of the document. \mansee \phts\label{ref:setmaxlines-hook} The
5155% |maxlines| option operates globally, on any pages or columns of text
5156% that are set to receive at least one layer of apparatus
5157% criticus. The way of applying the limit to only one out of several
5158% edition texts is therefore to append \cs{setmaxlines} as a hook to
5159% the environment corresponding to this edition text as described
5160% above \vpageref{sec:alignment-hooks}, like so:---
5119% 5161%
5162% \iffalse
5163%<*example>
5164% \fi
5165\begin{minted}[linenos=false]{latex}
5166\AtBeginEnvironment{latin}{\setmaxlines{<n>}}
5167\end{minted}
5168% \iffalse
5169%</example>
5170% \fi
5171%
5172% \DescribeMacro{\nomaxlines} \noindent\cs{nomaxlines} is an
5173% argument-less command that operates as the |nomaxlines| option just
5174% described. This command can be used either in the preamble or at any
5175% point of the document.
5176%
5120% \medskip\noindent\textbf{Options Specific to the |poetry=verse| 5177% \medskip\noindent\textbf{Options Specific to the |poetry=verse|
5121% Global Setting}\footnote{See above 5178% Global Setting}\footnote{See above
5122% \vref{sec:verse-package}.}\phts\label{ref:verse-lineation}\\ 5179% \vref{sec:verse-package}.}\phts\label{ref:verse-lineation}\\
@@ -6168,37 +6225,92 @@ subtype="arabtex">'inna 'abI kAna mina
6168% entries with right line numbers cannot come on pages that follow a 6225% entries with right line numbers cannot come on pages that follow a
6169% wrong page either. 6226% wrong page either.
6170% 6227%
6171% An alert reader may have guessed that inserting a \cs{pagebreak} is 6228% The alert reader may have guessed that inserting a \cs{pagebreak} is
6172% a good way to get out of the vicious circle. And surely, if only a 6229% a good way to get out of the vicious circle. And surely, if only a
6173% few pages be at stake, this is the way to go. However, 6230% few pages be at stake, this is the way to go. However,
6174% \cs{pagebreak} commands should only be inserted when the whole 6231% \cs{pagebreak} commands should only be inserted when the whole
6175% edition text is ready for any substantial change in the preceding 6232% edition text is ready for any substantial change in the preceding
6176% pages may result in pages that break just after they begin. 6233% pages may result in pages that break just after they begin.
6177% 6234%
6235% \paragraph{Limiting the Number of Lines per Page}
6236% \phts\label{ref:maxlines-trick} One way to avoid this inconvenience
6237% is to use the |maxlines| option of \cs{SetLineation} as described
6238% above \vpageref{ref:gmaxlines}. Depending on the abundance of
6239% critical footnotes to be printed, the editor may start with a number
6240% that will allow most, if not all, pages to pass.
6241%
6242% Furthermore, this technique can be combined with the |fitapp| global
6243% option described below \vpageref{ref:fitapp-trick}. Once |maxlines|
6244% has been applied, the \pkg{fgruler} package\footcite{fgruler} can be
6245% used to gauge the respective heights of the edition text and the
6246% apparatus criticus like so:---
6247%
6248% \iffalse
6249%<*example>
6250% \fi
6251\begin{minted}[linenos=false]{latex}
6252% Preamble
6253\usepackage[type=lowerleftT]{fgruler}
6254\end{minted}
6255% \iffalse
6256%</example>
6257% \fi
6258%
6259% Based on the height corresponding to the last line of the edition
6260% text limited by the value of |maxlines|, the height from which the
6261% apparatus criticus block should stop growing and the characters
6262% should be scaled down to allow for more entries can be
6263% estimated.\footnote{To learn how the maximum height of the apparatus
6264% criticus can be set, see \vpageref{ref:appheight}. The |fitapp|
6265% global option is described \vpageref{ref:fitapp-opt}.} This ensures
6266% that any contentious entries are included in the apparatus criticus
6267% when the last line of text has been reached.
6268%
6269% In addition to the |maxlines| option of \cs{SetLineation} and the
6270% \cs{setmaxlines} command,\footnote{See above
6271% \vpageref{ref:gmaxlines}.} the following commands are provided:---
6272%
6273% \DescribeMacro{\localmaxlines} \cs{localmaxlines}\marg{n}, where
6274% \meta{n} $\geq 1$, can be used in the edition text to adjust the
6275% number of lines on a given page. Of course, this command must be
6276% issued before the line number corresponding to |maxlines| is
6277% reached. \mansee \cs{localmaxlines}|{0}| can therefore be used to
6278% remove the limit set by |maxlines| or \cs{setmaxlines} on a given
6279% page.
6280%
6281% \DescribeMacro{\addtomaxlines} Unlike \cs{localmaxlines},
6282% \cs{addtomaxlines}\marg{n} takes as argument the number of lines one
6283% wishes to add or substract from the number that has been set by
6284% |maxlines| or \cs{setmaxlines}. As a result, \meta{n} can be a
6285% positive or negative integer.
6286%
6287% \DescribeMacro{\nomaxlines} \cs{nomaxlines} is an argument-less
6288% command that unsets any limit previously set by |maxlines| or
6289% \cs{setmaxlines}.
6290%
6178% \paragraph{Conditional page breaks} 6291% \paragraph{Conditional page breaks}
6179% \phts\label{ref:ekdpb} \DescribeMacro{\ekdpb}\DescribeMacro{\ekdpb*} 6292% \phts\label{ref:ekdpb} \DescribeMacro{\ekdpb}\DescribeMacro{\ekdpb*}
6180% \cs{ekdpb}\oarg{page no}\marg{line no} 6293% \cs{ekdpb}\oarg{page no}\marg{line no} \cs{ekdpb*}|{}| \cs{ekdpb*}
6181% \cs{ekdpb*}|{}| \cs{ekdpb*}
6182% \newfeature[v1.2]\\ 6294% \newfeature[v1.2]\\
6183% One way to avoid this inconvenience is to use \cs{ekdpb} instead of 6295% One other way is to use \cs{ekdpb} instead of the standard
6184% the standard \cs{pagebreak} command provided by \LaTeX\ to insert 6296% \cs{pagebreak} command provided by \LaTeX\ to insert conditional
6185% conditional page breaks. \cs{ekdpb} takes as mandatory argument the 6297% page breaks. \cs{ekdpb} takes as mandatory argument the line number,
6186% line number, as it is printed in the margin, where the page break 6298% as it is printed in the margin, where the page break should take
6187% should take place. An optional argument allows to further specify 6299% place. An optional argument allows to further specify the page
6188% the page number where the page break should occur. The value that is 6300% number where the page break should occur. The value that is expected
6189% expected is the page number as it is printed\===e.g.\ an Arabic, 6301% is the page number as it is printed\===e.g.\ an Arabic, Roman or
6190% Roman or alphanumeric number. If the specified conditions be not 6302% alphanumeric number. If the specified conditions be not met, then
6191% met, then the page break is not triggered. Finally, the 6303% the page break is not triggered. Finally, the \enquote{starred}
6192% \enquote{starred} version of this command forces the page break, 6304% version of this command forces the page break, irrespective of the
6193% irrespective of the values specified as page or line numbers. Unlike 6305% values specified as page or line numbers. Unlike \cs{ekdpb}, which
6194% \cs{ekdpb}, which requires the lines to be numbered, \cs{ekdpb*} is 6306% requires the lines to be numbered, \cs{ekdpb*} is allowed at any
6195% allowed at any point of the document: as \cs{ekdpb*} disregards the 6307% point of the document: as \cs{ekdpb*} disregards the number given as
6196% number given as argument, it is equivalent to the standard \LaTeX\ 6308% argument, it is equivalent to the standard \LaTeX\ \cs{pagebreak}
6197% \cs{pagebreak} command. Yet it can be used instead of the latter to 6309% command. Yet it can be used instead of the latter to have marks
6198% have marks further printed in the margins so as to spot with a 6310% further printed in the margins so as to spot with a fleeting glance
6199% fleeting glance the locations where induced page breaks 6311% the locations where induced page breaks occur.\footnote{This
6200% occur.\footnote{This requires the |showpagebreaks| option to be set 6312% requires the |showpagebreaks| option to be set to |true| as
6201% to |true| as described above \vpageref{ref:showpagebreaks-opt}.} 6313% described above \vpageref{ref:showpagebreaks-opt}.}
6202% 6314%
6203% \paragraph{Using \texttt{maxentries}} 6315% \paragraph{Using \texttt{maxentries}}
6204% Another way\---should the edition text fall into the vicious circle 6316% Another way\---should the edition text fall into the vicious circle
@@ -6249,15 +6361,42 @@ subtype="arabtex">'inna 'abI kAna mina
6249% sets of page decisions. 6361% sets of page decisions.
6250% 6362%
6251% \paragraph{The \texttt{fitapp} Global Option} 6363% \paragraph{The \texttt{fitapp} Global Option}
6252% \newfeature[v1.3] The rationale of this option is discussed above 6364% \phts\label{ref:fitapp-trick} \newfeature[v1.3] The rationale of
6253% (see \vref{ref:fitapp-opt}). As this mechanism has the characters of 6365% this option is discussed above (see \vref{ref:fitapp-opt}). As this
6254% the apparatus block scaled down to allow for more entries once a 6366% mechanism has the characters of the apparatus block scaled down to
6255% predefined height has been reached, \pkg{ekdosis} should settle down 6367% allow for more entries once a predefined height has been reached,
6256% in most of the contentious cases.\footnote{That is, cases that arise 6368% \pkg{ekdosis} should settle down in most of the contentious
6257% \emph{after} the predefined height has been reached.} However, it is 6369% cases.\footnote{That is, cases that arise \emph{after} the
6258% advisable to use |fitapp| conjointly with |maxentries| to prevent 6370% predefined height has been reached.} However, it is advisable to use
6259% the number of allowed entries from being too high, which would 6371% |fitapp| conjointly with |maxlines| or |maxentries| to prevent the
6260% result in the characters being too small or even illegible. 6372% number of allowed entries from being too high, which would result in
6373% the characters being too small or even illegible.
6374%
6375% \newfeature[v1.5] As already seen \vpageref{ref:appheight}, once the
6376% global option |layout=fitapp| has been set,\footnote{See above
6377% \vpageref{ref:fitapp-opt}.} the default maximum height of the
6378% apparatus criticus block is |0.5\textheight|, which can be changed
6379% by assigning a new length to the |appheight| option of
6380% \cs{SetHooks}. To more finely adjust this height on given pages,
6381% \pkg{ekdosis} provides additional commands to be used in the edition
6382% text:---
6383%
6384% \DescribeMacro{\localappheight}
6385% \cs{localappheight}\marg{dimen} can be used to change locally the
6386% height up to which the apparatus block is allowed to
6387% grow. \meta{dimen} must be a number followed by a unit
6388% length. \danger This command operates only on the apparatus block
6389% that follows it. Therefore, it must be issued \emph{before} the
6390% first entry of the apparatus block on which it is intended to
6391% operate, either on the current page or in the last lines of the
6392% preceding page.
6393%
6394% \DescribeMacro{\addtoappheight}
6395% As the name suggests, in contrast to \cs{localappheight},
6396% \cs{addtoappheight}\marg{dimen} is used to increase or decrease
6397% locally the height of the apparatus typeblock. \meta{dimen} must be
6398% a number followed by a unit length. Just as \cs{localappheight},
6399% this command operates only on the apparatus block that follows it.
6261% 6400%
6262% \subsection{Using \textsf{emacs}} 6401% \subsection{Using \textsf{emacs}}
6263% \label{sec:using-emacs} 6402% \label{sec:using-emacs}
@@ -8409,7 +8548,7 @@ Sample text with a \textcolor{red}{word} in red.
8409% \end{macrocode} 8548% \end{macrocode}
8410% \paragraph{\textsf{ekdosis} Symbol} 8549% \paragraph{\textsf{ekdosis} Symbol}
8411% \begin{macro}{\eKd} 8550% \begin{macro}{\eKd}
8412% \changes{v1.5}{2022/10/25}{Prints \textsf{ekdosis} indentifying 8551% \changes{v1.5}{2022/10/26}{Prints \textsf{ekdosis} indentifying
8413% symbol} As of v1.5, \pkg{ekdosis} has its own identifying 8552% symbol} As of v1.5, \pkg{ekdosis} has its own identifying
8414% symbol. It is produced by \cs{eKd} and best printed with the Old 8553% symbol. It is produced by \cs{eKd} and best printed with the Old
8415% Standard Greek font. 8554% Standard Greek font.
@@ -8672,7 +8811,7 @@ Sample text with a \textcolor{red}{word} in red.
8672% \begin{macro}{\teidirectE} 8811% \begin{macro}{\teidirectE}
8673% \changes{v1.3}{2021/08/18}{direct insertion of elements in the 8812% \changes{v1.3}{2021/08/18}{direct insertion of elements in the
8674% \texttt{TEI xml} file} 8813% \texttt{TEI xml} file}
8675% \changes{v1.5}{2022/10/25}{direct insertion of empty elements in the 8814% \changes{v1.5}{2022/10/26}{direct insertion of empty elements in the
8676% \texttt{TEI xml} file} 8815% \texttt{TEI xml} file}
8677% \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} 8816% \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code}
8678% does nothing in \LaTeX. It is only used to insert elements in the 8817% does nothing in \LaTeX. It is only used to insert elements in the
@@ -8687,7 +8826,7 @@ Sample text with a \textcolor{red}{word} in red.
8687% \end{macro} 8826% \end{macro}
8688% \end{macro} 8827% \end{macro}
8689% \begin{macro}{\getTEIxmlid} 8828% \begin{macro}{\getTEIxmlid}
8690% \changes{v1.5}{2022/10/25}{returns \texttt{TEI xml:ids} from a 8829% \changes{v1.5}{2022/10/26}{returns \texttt{TEI xml:ids} from a
8691% csv-list of ids} This command returns from a csv-list of unique 8830% csv-list of ids} This command returns from a csv-list of unique
8692% identifiers declared in commands such as \cs{DeclareWitness} and the 8831% identifiers declared in commands such as \cs{DeclareWitness} and the
8693% like a space-separated list of their corresponding |xml:id|s, each 8832% like a space-separated list of their corresponding |xml:id|s, each
@@ -9163,10 +9302,10 @@ Sample text with a \textcolor{red}{word} in red.
9163\newlength{\ekd@app@localheight} 9302\newlength{\ekd@app@localheight}
9164% \end{macrocode} 9303% \end{macrocode}
9165% \begin{macro}{\localappheight} 9304% \begin{macro}{\localappheight}
9166% \changes{v1.5}{2022/10/25}{changes the height of the apparatus 9305% \changes{v1.5}{2022/10/26}{changes the height of the apparatus
9167% criticus} 9306% criticus}
9168% \cs{localappheight}\marg{dimen} can be used to change locally the 9307% \cs{localappheight}\marg{dimen} can be used to change locally the
9169% length of \cs{\ekd@app@height} set by the |appheight| option of 9308% length of \cs{ekd@app@height} set by the |appheight| option of
9170% \cs{SetHooks}, namely the height up to which the apparatus block is 9309% \cs{SetHooks}, namely the height up to which the apparatus block is
9171% allowed to grow. \meta{dimen} must be a number followed by a unit 9310% allowed to grow. \meta{dimen} must be a number followed by a unit
9172% length. This command operates only on the apparatus block that 9311% length. This command operates only on the apparatus block that
@@ -9182,11 +9321,11 @@ Sample text with a \textcolor{red}{word} in red.
9182% \end{macrocode} 9321% \end{macrocode}
9183% \end{macro} 9322% \end{macro}
9184% \begin{macro}{\addtoappheight} 9323% \begin{macro}{\addtoappheight}
9185% \changes{v1.5}{2022/10/25}{increases or decreases the height of the 9324% \changes{v1.5}{2022/10/26}{increases or decreases the height of the
9186% apparatus criticus} 9325% apparatus criticus}
9187% As the name suggests, in contrast to \cs{localappheight}, 9326% As the name suggests, in contrast to \cs{localappheight},
9188% \cs{addtoappheight}\marg{dimen} is used to increase or decrease 9327% \cs{addtoappheight}\marg{dimen} is used to increase or decrease
9189% locally the length of \cs{\ekd@app@height}. \meta{dimen} must be a 9328% locally the length of \cs{ekd@app@height}. \meta{dimen} must be a
9190% number followed by a unit length. This command operates only on the 9329% number followed by a unit length. This command operates only on the
9191% apparatus block that follows it. 9330% apparatus block that follows it.
9192% \begin{macrocode} 9331% \begin{macrocode}
@@ -9468,7 +9607,7 @@ Sample text with a \textcolor{red}{word} in red.
9468% The following commands are provided to set and control the maximum 9607% The following commands are provided to set and control the maximum
9469% number of lines printed on each page. 9608% number of lines printed on each page.
9470% \begin{macro}{\setmaxlines} 9609% \begin{macro}{\setmaxlines}
9471% \changes{v1.5}{2022/10/25}{limits the number of lines per page} 9610% \changes{v1.5}{2022/10/26}{limits the number of lines per page}
9472% \cs{setmaxlines}\marg{n}, where \meta{n} is a positive integer 9611% \cs{setmaxlines}\marg{n}, where \meta{n} is a positive integer
9473% $\geq 1$, can be used either in the preamble or at any point of the 9612% $\geq 1$, can be used either in the preamble or at any point of the
9474% document to set the maximum number of lines to be printed on each 9613% document to set the maximum number of lines to be printed on each
@@ -9479,7 +9618,7 @@ Sample text with a \textcolor{red}{word} in red.
9479% \end{macrocode} 9618% \end{macrocode}
9480% \end{macro} 9619% \end{macro}
9481% \begin{macro}{\localmaxlines} 9620% \begin{macro}{\localmaxlines}
9482% \changes{v1.5}{2022/10/25}{changes the maximum number of lines 9621% \changes{v1.5}{2022/10/26}{changes the maximum number of lines
9483% locally} 9622% locally}
9484% Once a maximum number of lines per page has been set, 9623% Once a maximum number of lines per page has been set,
9485% \cs{localmaxlines}\marg{n} can be used to adjust this number on a 9624% \cs{localmaxlines}\marg{n} can be used to adjust this number on a
@@ -9492,7 +9631,7 @@ Sample text with a \textcolor{red}{word} in red.
9492% \end{macrocode} 9631% \end{macrocode}
9493% \end{macro} 9632% \end{macro}
9494% \begin{macro}{\addtomaxlines} 9633% \begin{macro}{\addtomaxlines}
9495% \changes{v1.5}{2022/10/25}{adds or subtracts lines from a given page} 9634% \changes{v1.5}{2022/10/26}{adds or subtracts lines from a given page}
9496% Unlike \cs{localmaxlines}, \cs{addtomaxlines}\meta{n} takes as 9635% Unlike \cs{localmaxlines}, \cs{addtomaxlines}\meta{n} takes as
9497% argument the number of lines one wishes to add or substract from the 9636% argument the number of lines one wishes to add or substract from the
9498% number that has been set by \cs{setmaxlines}. As a result, \meta{n} 9637% number that has been set by \cs{setmaxlines}. As a result, \meta{n}
@@ -9505,7 +9644,7 @@ Sample text with a \textcolor{red}{word} in red.
9505% \end{macrocode} 9644% \end{macrocode}
9506% \end{macro} 9645% \end{macro}
9507% \begin{macro}{\nomaxlines} 9646% \begin{macro}{\nomaxlines}
9508% \changes{v1.5}{2022/10/25}{unsets \cs{setmaxlines}} 9647% \changes{v1.5}{2022/10/26}{unsets \cs{setmaxlines}}
9509% \cs{nomaxlines} unsets any limit previously set by \cs{setmaxlines}. 9648% \cs{nomaxlines} unsets any limit previously set by \cs{setmaxlines}.
9510% \begin{macrocode} 9649% \begin{macrocode}
9511\def\nomaxlines{\luadirect{tex.sprint(ekdosis.resetlocalmaxlines())}} 9650\def\nomaxlines{\luadirect{tex.sprint(ekdosis.resetlocalmaxlines())}}
@@ -9569,7 +9708,7 @@ Sample text with a \textcolor{red}{word} in red.
9569% \end{macrocode} 9708% \end{macrocode}
9570% \end{macro} 9709% \end{macro}
9571% \begin{macro}{\App} 9710% \begin{macro}{\App}
9572% \changes{v1.5}{2022/10/25}{To be used conjointly with 9711% \changes{v1.5}{2022/10/26}{To be used conjointly with
9573% \texttt{ekdosis.el}} 9712% \texttt{ekdosis.el}}
9574% In contrast to \cs{app}, \cs{App} takes two mandatory arguments and 9713% In contrast to \cs{app}, \cs{App} takes two mandatory arguments and
9575% accepts one optional argument like so: 9714% accepts one optional argument like so:
@@ -10453,7 +10592,7 @@ Sample text with a \textcolor{red}{word} in red.
10453% \end{macro} 10592% \end{macro}
10454% \paragraph{Lacunae} 10593% \paragraph{Lacunae}
10455% \begin{macro}{\ilabel} 10594% \begin{macro}{\ilabel}
10456% \changes{v1.5}{2022/10/25}{recalls and sets the ending label of 10595% \changes{v1.5}{2022/10/26}{recalls and sets the ending label of
10457% lemmas used to mark lacunae in witnesses} When \cs{lem} has been 10596% lemmas used to mark lacunae in witnesses} When \cs{lem} has been
10458% used with the optional argument |ilabel=<label>|, 10597% used with the optional argument |ilabel=<label>|,
10459% \cs{ilabel}\marg{label} must be used to mark the point where the 10598% \cs{ilabel}\marg{label} must be used to mark the point where the
@@ -10769,7 +10908,7 @@ Sample text with a \textcolor{red}{word} in red.
10769% \end{macrocode} 10908% \end{macrocode}
10770% \end{macro} 10909% \end{macro}
10771% \begin{macro}{\ekdEOprint} 10910% \begin{macro}{\ekdEOprint}
10772% \changes{v1.5}{2022/10/25}{Sets headers and footers on 10911% \changes{v1.5}{2022/10/26}{Sets headers and footers on
10773% \enquote{paired} facing pages} 10912% \enquote{paired} facing pages}
10774% To set headers and footers on \enquote{paired} facing pages, 10913% To set headers and footers on \enquote{paired} facing pages,
10775% \cs{ekdEOprint} accepts two mandatory, self-evident arguments, like 10914% \cs{ekdEOprint} accepts two mandatory, self-evident arguments, like
@@ -10809,7 +10948,7 @@ Sample text with a \textcolor{red}{word} in red.
10809% counter to set the value of the page numbers. This counter should be 10948% counter to set the value of the page numbers. This counter should be
10810% incremented every two pages. 10949% incremented every two pages.
10811% \begin{counter}{pairedpage} 10950% \begin{counter}{pairedpage}
10812% \changes{v1.5}{2022/10/25}{A counter incremented every two pages} 10951% \changes{v1.5}{2022/10/26}{A counter incremented every two pages}
10813% |pairedpage| is first set as a global counter:--- 10952% |pairedpage| is first set as a global counter:---
10814% \begin{macrocode} 10953% \begin{macrocode}
10815\newcounter{pairedpage} 10954\newcounter{pairedpage}
@@ -10817,19 +10956,19 @@ Sample text with a \textcolor{red}{word} in red.
10817% \end{macrocode} 10956% \end{macrocode}
10818% \end{counter} 10957% \end{counter}
10819% \begin{macro}{\setpairedpagenum} 10958% \begin{macro}{\setpairedpagenum}
10820% \changes{v1.5}{2022/10/25}{sets the same page number on paired 10959% \changes{v1.5}{2022/10/26}{sets the same page number on paired
10821% pages} \cs{setpairedpagenum}\marg{number} is used just ahead of 10960% pages} \cs{setpairedpagenum}\marg{number} is used just ahead of
10822% the alignment environment to set the number of the first left-hand 10961% the alignment environment to set the number of the first left-hand
10823% paired page. 10962% paired page.
10824% \begin{macro}{\setpairedpage} 10963% \begin{macro}{\setpairedpage}
10825% \changes{v1.5}{2022/10/25}{sets the page number of the first paired 10964% \changes{v1.5}{2022/10/26}{sets the page number of the first paired
10826% page} \cs{setpairedpage} is an argument-less command meant to be 10965% page} \cs{setpairedpage} is an argument-less command meant to be
10827% issued in commands used to set headers or footers before 10966% issued in commands used to set headers or footers before
10828% \cs{thepage}. This command has the counter |pairedpage| 10967% \cs{thepage}. This command has the counter |pairedpage|
10829% incremented on right-hand pages only, and sets |page| $\leftarrow$ 10968% incremented on right-hand pages only, and sets |page| $\leftarrow$
10830% |pairedpage| on every page. 10969% |pairedpage| on every page.
10831% \begin{macro}{\resetpagenumber} 10970% \begin{macro}{\resetpagenumber}
10832% \changes{v1.5}{2022/10/25}{resets normal running page numbers} 10971% \changes{v1.5}{2022/10/26}{resets normal running page numbers}
10833% \cs{resetpagenumber} must be used right out of \enquote{mirrored} 10972% \cs{resetpagenumber} must be used right out of \enquote{mirrored}
10834% paired pages alignment environments. This argument-less command 10973% paired pages alignment environments. This argument-less command
10835% corrects any numbering error on the page following the edition 10974% corrects any numbering error on the page following the edition
diff --git a/ekdosis.el b/ekdosis.el
index 00deed5..19c9c1a 100644
--- a/ekdosis.el
+++ b/ekdosis.el
@@ -206,6 +206,8 @@
206 ("modulonum") 206 ("modulonum")
207 ("margin" ("right" "left" "inner" "outer")) 207 ("margin" ("right" "left" "inner" "outer"))
208 ("numbers" ("elided" "full")) 208 ("numbers" ("elided" "full"))
209 ("maxlines")
210 ("nomaxlines")
209 ("vlineation" ("page" "document")) 211 ("vlineation" ("page" "document"))
210 ("vmodulo") 212 ("vmodulo")
211 ("vnumbrokenlines" ("true" "false")) 213 ("vnumbrokenlines" ("true" "false"))
@@ -311,6 +313,18 @@
311 (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list) 313 (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
312 '("[t]" ("teidirectE")) 314 '("[t]" ("teidirectE"))
313 t) 315 t)
316 (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
317 '("[ml]" ("localmaxlines"))
318 t)
319 (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
320 '("[ml]" ("addtomaxlines"))
321 t)
322 (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
323 '("[h]" ("localappheight"))
324 t)
325 (add-to-list (make-local-variable 'LaTeX-fold-macro-spec-list)
326 '("[h]" ("addtoappheight"))
327 t)
314 ;; This package relies on lualatex, so check for it: 328 ;; This package relies on lualatex, so check for it:
315 (TeX-check-engine-add-engines 'luatex) 329 (TeX-check-engine-add-engines 'luatex)
316 (TeX-add-symbols 330 (TeX-add-symbols
@@ -389,6 +403,10 @@
389 '("SetLineation" (TeX-arg-key-val LaTeX-ekdosis-setlineation-options)) 403 '("SetLineation" (TeX-arg-key-val LaTeX-ekdosis-setlineation-options))
390 '("innerlinenumbers" 0) 404 '("innerlinenumbers" 0)
391 '("outerlinenumbers" 0) 405 '("outerlinenumbers" 0)
406 '("setmaxlines" "number" 0)
407 '("localmaxlines" "number" 0)
408 '("addtomaxlines" "number" 0)
409 '("nomaxlines" 0)
392 '("modulolinenumbers" [ "number" ] ) 410 '("modulolinenumbers" [ "number" ] )
393 '("vmodulolinenumbers" [ "number" ] ) 411 '("vmodulolinenumbers" [ "number" ] )
394 '("resetlinenumber" [ "number" ] ) 412 '("resetlinenumber" [ "number" ] )
@@ -418,6 +436,8 @@
418 '("ekdpb" [ "page number" ] "line number" 0) 436 '("ekdpb" [ "page number" ] "line number" 0)
419 '("ekdpb*") 437 '("ekdpb*")
420 '("addentries" [ "layer" ] "number" 0) 438 '("addentries" [ "layer" ] "number" 0)
439 '("localappheight" "dimension" 0)
440 '("addtoappheight" "dimension" 0)
421 '("SetTEIFilename" "base name" 0) 441 '("SetTEIFilename" "base name" 0)
422 '("SetTEIxmlExport" (TeX-arg-key-val 442 '("SetTEIxmlExport" (TeX-arg-key-val
423 LaTeX-ekdosis-setteixmlexport-options)) 443 LaTeX-ekdosis-setteixmlexport-options))