diff options
-rw-r--r-- | ekdosis.dtx | 245 | ||||
-rw-r--r-- | ekdosis.el | 20 |
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 |
@@ -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)) |