diff options
Diffstat (limited to 'ekdosis.dtx')
-rw-r--r-- | ekdosis.dtx | 340 |
1 files changed, 267 insertions, 73 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx index 716870c..7cfb10e 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 | [2021/06/28 v1.3-dev Typesetting TEI xml-compliant critical editions] | 64 | [2021/08/16 v1.3-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} |
@@ -166,7 +166,7 @@ along with this program. If not, see | |||
166 | <monogr> | 166 | <monogr> |
167 | <title level="m">Works of W. Shakespeare</title> | 167 | <title level="m">Works of W. Shakespeare</title> |
168 | <editor> | 168 | <editor> |
169 | <forename>H.N.</forename> | 169 | <forename>H. N.</forename> |
170 | <surname>Hudson</surname> | 170 | <surname>Hudson</surname> |
171 | </editor> | 171 | </editor> |
172 | <imprint> | 172 | <imprint> |
@@ -180,7 +180,7 @@ along with this program. If not, see | |||
180 | <monogr> | 180 | <monogr> |
181 | <title level="m">Shakespeare's Complete Sonnets</title> | 181 | <title level="m">Shakespeare's Complete Sonnets</title> |
182 | <editor> | 182 | <editor> |
183 | <forename>C.M.</forename> | 183 | <forename>C. M.</forename> |
184 | <surname>Walsh</surname> | 184 | <surname>Walsh</surname> |
185 | </editor> | 185 | </editor> |
186 | <imprint> | 186 | <imprint> |
@@ -246,7 +246,7 @@ along with this program. If not, see | |||
246 | author = {{Homer}}, | 246 | author = {{Homer}}, |
247 | title = {The Odyssey}, | 247 | title = {The Odyssey}, |
248 | date = 1919, | 248 | date = 1919, |
249 | editor = {Murray, A.T\adddot}, | 249 | editor = {Murray, A. T.}, |
250 | volumes = 2, | 250 | volumes = 2, |
251 | publisher = {Harvard University Press -- William Heinemann}, | 251 | publisher = {Harvard University Press -- William Heinemann}, |
252 | location = {Cambridge, MA. -- London} | 252 | location = {Cambridge, MA. -- London} |
@@ -266,7 +266,7 @@ along with this program. If not, see | |||
266 | } | 266 | } |
267 | 267 | ||
268 | @Book{ReynoldsWilson1991, | 268 | @Book{ReynoldsWilson1991, |
269 | author = {Reynolds, L. D. and Wilson, N. G}, | 269 | author = {Reynolds, L. D. and Wilson, N. G.}, |
270 | title = {Scribes and Scholars}, | 270 | title = {Scribes and Scholars}, |
271 | year = {1991}, | 271 | year = {1991}, |
272 | subtitle = {A Guide to the Translation of Greek and Latin | 272 | subtitle = {A Guide to the Translation of Greek and Latin |
@@ -311,6 +311,15 @@ along with this program. If not, see | |||
311 | url = {http://www.teibyexample.org} | 311 | url = {http://www.teibyexample.org} |
312 | } | 312 | } |
313 | 313 | ||
314 | @Software{babel, | ||
315 | title = {The Babel package}, | ||
316 | titleaddon = {Multilingual support for Plain TeX or LaTeX}, | ||
317 | author = {Bezos López, Javier and Braams, Johannes L.}, | ||
318 | url = {http://www.ctan.org/pkg/babel}, | ||
319 | date = {2020-07-13}, | ||
320 | version = {3.47} | ||
321 | } | ||
322 | |||
314 | @Software{extdash, | 323 | @Software{extdash, |
315 | title = {The Extdash package}, | 324 | title = {The Extdash package}, |
316 | titleaddon = {A range of dash commands for compound words}, | 325 | titleaddon = {A range of dash commands for compound words}, |
@@ -329,6 +338,16 @@ along with this program. If not, see | |||
329 | version = {1.0} | 338 | version = {1.0} |
330 | } | 339 | } |
331 | 340 | ||
341 | @Software{keyfloat, | ||
342 | title = {The Keyfloat package}, | ||
343 | subtitle = {Provides a key/value interface for generating | ||
344 | floats}, | ||
345 | author = {Dunn, Brian}, | ||
346 | url = {https://ctan.org/pkg/keyfloat}, | ||
347 | date = {2021-06-29}, | ||
348 | version = {2.06}, | ||
349 | } | ||
350 | |||
332 | @Software{lineno, | 351 | @Software{lineno, |
333 | title = {The Lineno package}, | 352 | title = {The Lineno package}, |
334 | titleaddon = {Line numbers on paragraphs}, | 353 | titleaddon = {Line numbers on paragraphs}, |
@@ -365,13 +384,14 @@ along with this program. If not, see | |||
365 | version = {1.49} | 384 | version = {1.49} |
366 | } | 385 | } |
367 | 386 | ||
368 | @Software{babel, | 387 | @Software{tcolorbox, |
369 | title = {The Babel package}, | 388 | title = {The Tcolorbox package}, |
370 | titleaddon = {Multilingual support for Plain TeX or LaTeX}, | 389 | subtitle = {Coloured boxes, for LaTeX examples and theorems, |
371 | author = {Bezos López, Javier and Braams, Johannes L.}, | 390 | etc}, |
372 | url = {http://www.ctan.org/pkg/babel}, | 391 | author = {Sturm, Thomas F.}, |
373 | date = {2020-07-13}, | 392 | url = {https://ctan.org/pkg/tcolorbox}, |
374 | version = {3.47} | 393 | date = {2021-06-14}, |
394 | version = {4.51}, | ||
375 | } | 395 | } |
376 | 396 | ||
377 | @Software{titleps, | 397 | @Software{titleps, |
@@ -549,6 +569,7 @@ along with this program. If not, see | |||
549 | \newfontfamily{\junicode}{Junicode}[ | 569 | \newfontfamily{\junicode}{Junicode}[ |
550 | Ligatures=TeX, | 570 | Ligatures=TeX, |
551 | RawFeature={+hist}] | 571 | RawFeature={+hist}] |
572 | \newfontfamily\missaali{Missaali Regular} | ||
552 | \babeltags{ancientgreek = greek} | 573 | \babeltags{ancientgreek = greek} |
553 | \def\sg#1{\textancientgreek{#1}} | 574 | \def\sg#1{\textancientgreek{#1}} |
554 | \usepackage[Old Standard]{mathfont} | 575 | \usepackage[Old Standard]{mathfont} |
@@ -578,6 +599,8 @@ along with this program. If not, see | |||
578 | \usepackage{manfnt} | 599 | \usepackage{manfnt} |
579 | \usepackage{lettrine} | 600 | \usepackage{lettrine} |
580 | \newcommand\danger{\lettrine[loversize=-.5]{\textdbend}{\hskip6pt}} | 601 | \newcommand\danger{\lettrine[loversize=-.5]{\textdbend}{\hskip6pt}} |
602 | \newcommand\mansee{\lettrine[loversize=-.4, | ||
603 | lraise=.55]{\mantriangleright}{\hskip6pt}} | ||
581 | \usepackage{metalogox} | 604 | \usepackage{metalogox} |
582 | \usepackage{hologo} | 605 | \usepackage{hologo} |
583 | \usepackage{xcolor} | 606 | \usepackage{xcolor} |
@@ -607,7 +630,11 @@ along with this program. If not, see | |||
607 | \bibinput{ekdosis} | 630 | \bibinput{ekdosis} |
608 | \usepackage[nospace,american]{varioref} | 631 | \usepackage[nospace,american]{varioref} |
609 | \newcommand\phts{\phantomsection} | 632 | \newcommand\phts{\phantomsection} |
633 | \usepackage{nameref} | ||
634 | \newcommand\vnref[1]{\vref{#1}, \enquote{\nameref{#1}}} | ||
610 | \usepackage[style=oxnotes-inote,dashed]{biblatex} | 635 | \usepackage[style=oxnotes-inote,dashed]{biblatex} |
636 | \DefineBibliographyStrings{english}{ | ||
637 | seenote={cf\adddotspace n\adddotspace}} | ||
611 | \DeclareSourcemap{ | 638 | \DeclareSourcemap{ |
612 | \maps[datatype=bibtex]{ | 639 | \maps[datatype=bibtex]{ |
613 | \map{ | 640 | \map{ |
@@ -616,6 +643,27 @@ along with this program. If not, see | |||
616 | } | 643 | } |
617 | } | 644 | } |
618 | } | 645 | } |
646 | % include seenote in parentheses | ||
647 | \renewbibmacro*{footcite:note}{% | ||
648 | \ifnameundef{labelname} | ||
649 | {\printfield{label}} | ||
650 | {\printnames{labelname}}% | ||
651 | \ifsingletitle | ||
652 | {} | ||
653 | {\setunit*{\printdelim{nametitledelim}}% | ||
654 | \printfield[title]{labeltitle}}% | ||
655 | \setunit*{\addspace}% | ||
656 | \printtext{% | ||
657 | \mkbibparens{% | ||
658 | \bibstring{seenote}\addnbspace | ||
659 | \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% | ||
660 | \iftoggle{cbx:pageref} | ||
661 | {\ifsamepage{\the\value{instcount}} | ||
662 | {\csuse{cbx@f@\thefield{entrykey}}} | ||
663 | {} | ||
664 | {\addcomma\space\bibstring{page}\addnbspace | ||
665 | \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} | ||
666 | {}}}} | ||
619 | \ifbool{nocolordoc} | 667 | \ifbool{nocolordoc} |
620 | { | 668 | { |
621 | \usepackage{academicons} | 669 | \usepackage{academicons} |
@@ -929,8 +977,9 @@ along with this program. If not, see | |||
929 | % \end{keyfigure} | 977 | % \end{keyfigure} |
930 | % \end{comment} | 978 | % \end{comment} |
931 | % | 979 | % |
932 | % The reader will find here, by way of introduction, a summarized | 980 | % \lettrine{\color{cinnamon}\missaali +T+}{he reader} will find here, |
933 | % version of the first part of an article published in the | 981 | % by way of introduction, a summarized version of the first part of an |
982 | % article published in the | ||
934 | % \mkbibemph{\citefield{Alessi2020}{journaltitle}} as a contribution | 983 | % \mkbibemph{\citefield{Alessi2020}{journaltitle}} as a contribution |
935 | % to a Digital Humanities workshop held at Stanford University | 984 | % to a Digital Humanities workshop held at Stanford University |
936 | % (\printdate{2019-04-15}).\footcite{Alessi2020} | 985 | % (\printdate{2019-04-15}).\footcite{Alessi2020} |
@@ -1137,17 +1186,66 @@ along with this program. If not, see | |||
1137 | % follows. | 1186 | % follows. |
1138 | % | 1187 | % |
1139 | % \danger The reader is invited to refer to the relevant sections of | 1188 | % \danger The reader is invited to refer to the relevant sections of |
1140 | % this documentation for more information on how to use them. | 1189 | % this documentation for more information on how to use these options. |
1141 | % | 1190 | % |
1142 | % \DescribeOption{layout}\phts\label{ref:layout-opt} | 1191 | % \DescribeOption{layout}\phts\label{ref:layout-opt} |
1143 | % |layout|$=$\verb+float|footins+\hfill\tcboxverb{Default: float}\\ | 1192 | % |layout|$=$\verb+float|footins|keyfloat|fitapp+ |
1144 | % By default, layers of critical notes are inserted as a floating | 1193 | % \hfill\tcboxverb{Default: float} |
1145 | % environment to be printed at the bottom of pages. |layout=footins| | 1194 | % \begin{enumerate} |
1146 | % can be set to insert critical notes in the default footnote block | 1195 | % \item |layout=float| By default, layers of critical notes are |
1147 | % which can be considered to be a special kind of float that is | 1196 | % inserted as floating environments to be printed at the bottom of |
1148 | % printed at the bottom of pages. In this case, the apparatus criticus | 1197 | % pages. |
1149 | % will be inserted between regular numbered footnotes, but will carry | 1198 | % \item |layout=footins| This can be set to insert critical notes in |
1150 | % no footnote mark of its own. | 1199 | % the default footnote block which can be considered to be a special |
1200 | % kind of float that is printed at the bottom of pages. In this | ||
1201 | % case, the apparatus criticus will be inserted between regular | ||
1202 | % numbered footnotes, but will carry no footnote mark of its own. | ||
1203 | % \item \label{ref:keyfloat-opt}\newfeature[v1.3] |layout=keyfloat| | ||
1204 | % does approximately the | ||
1205 | % same as the default option |layout=float| but uses the | ||
1206 | % \pkg{keyfloat} package\footcite{keyfloat} to generate the floating | ||
1207 | % environments to be used as containers for critical footnotes. This | ||
1208 | % way, the keys and values provided by this | ||
1209 | % package\footcite[See][sect. 2.3, \ppno~13--16]{keyfloat} may be | ||
1210 | % used to achieve such effects as append additional, informative | ||
1211 | % text below the apparatus, draw a line around the apparatus block | ||
1212 | % or change its width.\footnote{See below, \vpageref{ref:keyparopts} | ||
1213 | % for more information.} | ||
1214 | % \item \label{ref:fitapp-opt}\newfeature[v1.3] |layout=fitapp| As | ||
1215 | % described below in \vnref{sec:oscillating-problem}, \pkg{ekdosis} | ||
1216 | % may oscillate indefinitely between different sets of page | ||
1217 | % decisions when one or more apparatus entries attached to the last | ||
1218 | % lines of the edition text on a given page do not fit in the | ||
1219 | % apparatus block. The reader will find in this section of the | ||
1220 | % documentation a detailed account of several ways to circumvent | ||
1221 | % this issue. Alternatively, or rather conjointly with those ways, | ||
1222 | % |layout=fitapp| can be used to instruct \pkg{ekdosis} to scale | ||
1223 | % down the characters of the apparatus block so that the contentious | ||
1224 | % entries can fit. This mechanism uses the \enquote{fitting} library | ||
1225 | % provided by the \pkg{tcolorbox} package.\footcite[sect.~22, | ||
1226 | % \ppno~\pnfmt{438--449}]{tcolorbox} When this option is set, the | ||
1227 | % apparatus criticus grows normally until a predefined height is | ||
1228 | % reached. This height is set to |0.5\textheight| by | ||
1229 | % default.\footnote{Of course, this height can be modified. See | ||
1230 | % below \vpageref{ref:appheight} for details.} From this point on, | ||
1231 | % the apparatus block ceases to grow; rather, the size of the | ||
1232 | % characters is reduced to allow for additional entries. As a | ||
1233 | % consequence of this rationale, the total number of entries on a | ||
1234 | % given page must not be too high. It is therefore advisable to use | ||
1235 | % |layout=fitapp| conjointly with |maxentries| as described below | ||
1236 | % \vpageref{ref:maxentries} and in \vref{sec:oscillating-problem}. % | ||
1237 | % \danger If used appropriately, this mechanism gives excellent | ||
1238 | % typographical results, notably with complex edition texts of which | ||
1239 | % the entries in the associated apparatus can be quite abundant in | ||
1240 | % number. It may even put an end to the | ||
1241 | % \enquote{\hyperref[sec:oscillating-problem]{oscillating problem}} | ||
1242 | % in most of the cases. However, as suitable it may be for high | ||
1243 | % quality typeset texts and final, camera-ready copies, its benefit | ||
1244 | % comes at the expense of slowing down the compilation process. Yet | ||
1245 | % looser algorithms can be selected when speed must prevail over | ||
1246 | % quality for intermediate or draft copies.\footnote{See below | ||
1247 | % \vpageref{ref:fitalgorithm} for more information.} | ||
1248 | % \end{enumerate} | ||
1151 | % | 1249 | % |
1152 | % \DescribeOption{divs}\phts\label{ref:divs-opt} | 1250 | % \DescribeOption{divs}\phts\label{ref:divs-opt} |
1153 | % |divs|$=$\verb+ekdosis|latex+\hfill\tcboxverb{Default: ekdosis}\\ | 1251 | % |divs|$=$\verb+ekdosis|latex+\hfill\tcboxverb{Default: ekdosis}\\ |
@@ -3214,18 +3312,56 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+ | |||
3214 | % \DescribeOption{initialrule} |initialrule|$=$\meta{command} | 3312 | % \DescribeOption{initialrule} |initialrule|$=$\meta{command} |
3215 | % \phts\label{ref:initialrule}\hfill\bgroup\footnotesize | 3313 | % \phts\label{ref:initialrule}\hfill\bgroup\footnotesize |
3216 | % \tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt} (initially not set)}% | 3314 | % \tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt} (initially not set)}% |
3217 | % \egroup | 3315 | % \egroup \newfeature[v1.2] |initialrule| draws a separating rule |
3218 | % \newfeature[v1.2] |initialrule| draws a separating rule between the | 3316 | % between the edition text and all subsequent layers of critical |
3219 | % edition text and all subsequent layers of critical notes. Of course, | 3317 | % notes. Of course, this option only makes sense when multiple-layer |
3220 | % this option only makes sense when multiple-layer apparatus criticus | 3318 | % apparatus criticus are set. Therefore, it has no effect on |
3221 | % are set. Therefore, it has no effect on single-layer apparatus | 3319 | % single-layer apparatus |
3222 | % criticus.\\ | 3320 | % criticus.\\ |
3223 | % \DescribeOption{noinitialrule}\hfill\tcboxverb{Default: not set}\\ | 3321 | % \DescribeOption{noinitialrule}\hfill\tcboxverb{Default: not set}\\ |
3224 | % This is a no-value option. It removes any previously set | 3322 | % This is a no-value option. It removes any previously set |
3225 | % |initialrule|. | 3323 | % |initialrule|. |
3226 | % | 3324 | % |
3227 | % An example of the way these hooks may be used is provided below in | 3325 | % An example of the way these hooks may be used is provided below in |
3228 | % \vref{lst:shak-sonnet1}. | 3326 | % \vref{lst:shak-sonnet1}. |
3327 | % | ||
3328 | % \noindent\textbf{Option Specific to the |layout=keyfloat| Global | ||
3329 | % Setting}\footnote{See above \vref{ref:keyfloat-opt}.}\\ | ||
3330 | % \DescribeOption{keyparopts}% | ||
3331 | % \phts\label{ref:keyparopts}|keyparopts|$=$\meta{csv options} | ||
3332 | % \hfill\tcboxverb{Default: empty}\\ | ||
3333 | % \newfeature[v1.3] The comma-separated options that can be used are | ||
3334 | % those described in the documentation of the \pkg{keyfloat} | ||
3335 | % package.\footcite[sect.~2.3, \ppno~\pnfmt{13--15}]{keyfloat} As an | ||
3336 | % example, |keyparopts={ft, tr={made with ekdosis},| % | ||
3337 | % \allowbreak|lw=1.2}| will draw a tight frame around the apparatus | ||
3338 | % block, have the words \enquote{made with \pkg{ekdosis}} printed | ||
3339 | % below this block on the | ||
3340 | % right and set its width to |1.2\linewidth|.\\ | ||
3341 | % \textbf{Options Specific to the |layout=fitapp| Global | ||
3342 | % Setting}\footnote{See above \vref{ref:fitapp-opt}.}\\ | ||
3343 | % \DescribeOption{appheight}% | ||
3344 | % \phts\label{ref:appheight}|appheight|$=$\meta{dimension} | ||
3345 | % \hfill\tcboxverb{Default: 0.5\textheight}\\ | ||
3346 | % \newfeature[v1.3] This option is used to change the maximum height | ||
3347 | % up to which the apparatus block is allowed to grow before the size | ||
3348 | % of the characters is reduced to allow for more entries. The value | ||
3349 | % must be a dimension, namely a number followed by a length unit, such | ||
3350 | % as |0.65\textheight|, |18cm| or |6in|.\\ | ||
3351 | % \DescribeOption{fitalgorithm}% | ||
3352 | % \phts\label{ref:fitalgorithm} | ||
3353 | % \unskip|fitalgorithm|$=$\verb+fontsize|hybrid|areasize|squeeze+ | ||
3354 | % \hfill\tcboxverb{Default: fontsize}\\ | ||
3355 | % \newfeature[v1.3] The four algorithms that can be used to have the | ||
3356 | % entries inserted in the apparatus criticus fit to the selected | ||
3357 | % height are presented here from the tightest to the loosest, that is, | ||
3358 | % the slowest to the fastest.\footnote{See \cite[446--449]{tcolorbox} | ||
3359 | % for details and illustrative examples.} While it is advisable to | ||
3360 | % limit the use of |fontsize| to high quality typesetting for | ||
3361 | % camera-ready copies, |areasize| offers a satisfactory settlement | ||
3362 | % when speed must be given an advantage for intermediate or draft | ||
3363 | % copies. |squeeze| should be avoided as it gives results that are | ||
3364 | % offensive to the sight and unacceptable to any reader. | ||
3229 | % | 3365 | % |
3230 | % \subsection{Single-Layer Apparatus Criticus} | 3366 | % \subsection{Single-Layer Apparatus Criticus} |
3231 | % \label{sec:single-layer-app} | 3367 | % \label{sec:single-layer-app} |
@@ -3319,14 +3455,13 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+ | |||
3319 | % \hfill\tcboxverb{Default: empty}\\ | 3455 | % \hfill\tcboxverb{Default: empty}\\ |
3320 | % The characters to be appended at the end of the apparatus | 3456 | % The characters to be appended at the end of the apparatus |
3321 | % block.\footnote{See also n.~\vref{fn:rm-dots}.}\\ | 3457 | % block.\footnote{See also n.~\vref{fn:rm-dots}.}\\ |
3322 | % \DescribeOption{rule} |rule|$=$\meta{command}\verb+|+|none| | 3458 | % \DescribeOption{rule} |rule|$=$\meta{command} |
3323 | % \hfill\tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt}}\\ | 3459 | % \hfill\tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt}}\\ |
3324 | % As described above, |rule| is used to draw the separating line | 3460 | % As described above, |rule| is used to draw the separating line |
3325 | % between the edition text and the apparatus criticus. |rule=none| can | 3461 | % between the edition text and the apparatus criticus.\\ |
3326 | % also be used to remove the line.\\ | ||
3327 | % \DescribeOption{norule}\hfill\tcboxverb{Default: not set}\\ | 3462 | % \DescribeOption{norule}\hfill\tcboxverb{Default: not set}\\ |
3328 | % |norule| does not accept any value and has the same effect as | 3463 | % |norule| does not accept any value and is used to remove the |
3329 | % |rule=none|.\phts\label{ref:apparatus-settings-e}\\ | 3464 | % line.\phts\label{ref:apparatus-settings-e}\\ |
3330 | % \DescribeOption{lang} |lang|$=$\meta{languagename} | 3465 | % \DescribeOption{lang} |lang|$=$\meta{languagename} |
3331 | % \newfeature[v1.2]\phts\label{ref:app-lang-opt} | 3466 | % \newfeature[v1.2]\phts\label{ref:app-lang-opt} |
3332 | % \hfill\tcboxverb{Default: not set}\\ | 3467 | % \hfill\tcboxverb{Default: not set}\\ |
@@ -5313,7 +5448,7 @@ subtype="arabtex">'inna 'abI kAna mina | |||
5313 | % on odd pages the title of the edited text, then the current | 5448 | % on odd pages the title of the edited text, then the current |
5314 | % division, then the page number, like so:--- | 5449 | % division, then the page number, like so:--- |
5315 | % | 5450 | % |
5316 | % \needspace{4\baselineskip} | 5451 | % \needspace{5\baselineskip} |
5317 | % \begin{xltabular}{1.0\linewidth}{|XcX|} | 5452 | % \begin{xltabular}{1.0\linewidth}{|XcX|} |
5318 | % \multicolumn{3}{l}{Even pages:}\\ | 5453 | % \multicolumn{3}{l}{Even pages:}\\ |
5319 | % \hline | 5454 | % \hline |
@@ -5339,9 +5474,9 @@ subtype="arabtex">'inna 'abI kAna mina | |||
5339 | %</example> | 5474 | %</example> |
5340 | % \fi | 5475 | % \fi |
5341 | % | 5476 | % |
5342 | % The following example illustrates how the corresponding headers and | 5477 | % The following example finally illustrates how the corresponding |
5343 | % footers could be prepared in a straightforward way with the help of | 5478 | % headers and footers can be prepared in a straightforward way with |
5344 | % the \pkg{titleps} package:\footcite{titleps}--- | 5479 | % the help of the \pkg{titleps} package:\footcite{titleps}--- |
5345 | % | 5480 | % |
5346 | % \iffalse | 5481 | % \iffalse |
5347 | %<*example> | 5482 | %<*example> |
@@ -5533,6 +5668,17 @@ subtype="arabtex">'inna 'abI kAna mina | |||
5533 | % many of them and \pkg{ekdosis} still oscillates between different | 5668 | % many of them and \pkg{ekdosis} still oscillates between different |
5534 | % sets of page decisions. | 5669 | % sets of page decisions. |
5535 | % | 5670 | % |
5671 | % \paragraph{The \texttt{fitapp} Global Option} | ||
5672 | % \newfeature[v1.3] The rationale of this option is discussed above | ||
5673 | % (see \vref{ref:fitapp-opt}). As this mechanism has the characters of | ||
5674 | % the apparatus block scaled down to allow for more entries once a | ||
5675 | % predefined height has been reached, \pkg{ekdosis} should settle down | ||
5676 | % in most of the contentious cases.\footnote{That is, cases that arise | ||
5677 | % \emph{after} the predefined height has been reached.} However, it is | ||
5678 | % advisable to use |fitapp| conjointly with |maxentries| to prevent | ||
5679 | % the number of allowed entries from being too high, which would | ||
5680 | % result in the characters being too small or even illegible. | ||
5681 | % | ||
5536 | % \subsection{Variae Quaestiones} | 5682 | % \subsection{Variae Quaestiones} |
5537 | % \label{sec:variae-quaestiones} | 5683 | % \label{sec:variae-quaestiones} |
5538 | % This section is about issues that are not strictly speaking part of | 5684 | % This section is about issues that are not strictly speaking part of |
@@ -6581,7 +6727,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
6581 | % \fi | 6727 | % \fi |
6582 | \begin{minted}[linenos=false]{bibtex} | 6728 | \begin{minted}[linenos=false]{bibtex} |
6583 | @Book{ReynoldsWilson1991, | 6729 | @Book{ReynoldsWilson1991, |
6584 | author = {Reynolds, L. D. and Wilson, N. G}, | 6730 | author = {Reynolds, L. D. and Wilson, N. G.}, |
6585 | title = {Scribes and Scholars}, | 6731 | title = {Scribes and Scholars}, |
6586 | year = {1991}, | 6732 | year = {1991}, |
6587 | subtitle = {A Guide to the Translation of Greek and Latin | 6733 | subtitle = {A Guide to the Translation of Greek and Latin |
@@ -7405,6 +7551,8 @@ Sample text with a \textcolor{red}{word} in red. | |||
7405 | \RequirePackage{expkv-def} | 7551 | \RequirePackage{expkv-def} |
7406 | \newif\if@pkg@float | 7552 | \newif\if@pkg@float |
7407 | \newif\if@pkg@footins | 7553 | \newif\if@pkg@footins |
7554 | \newif\if@pkg@keyfloat | ||
7555 | \newif\if@pkg@fitfloat | ||
7408 | \newif\if@pkg@ekddivs | 7556 | \newif\if@pkg@ekddivs |
7409 | \newif\if@parnotesroman | 7557 | \newif\if@parnotesroman |
7410 | \newif\if@pkg@parnotes | 7558 | \newif\if@pkg@parnotes |
@@ -7412,7 +7560,9 @@ Sample text with a \textcolor{red}{word} in red. | |||
7412 | \newif\if@pkg@poetry@verse | 7560 | \newif\if@pkg@poetry@verse |
7413 | \ekvdefinekeys{ekdosis}{ | 7561 | \ekvdefinekeys{ekdosis}{ |
7414 | choice layout = {float = {\@pkg@floattrue}, | 7562 | choice layout = {float = {\@pkg@floattrue}, |
7415 | footins = {\@pkg@floatfalse\@pkg@footinstrue}}, | 7563 | footins = {\@pkg@floatfalse\@pkg@footinstrue}, |
7564 | keyfloat = {\@pkg@floatfalse\@pkg@keyfloattrue}, | ||
7565 | fitfloat = {\@pkg@floatfalse\@pkg@fitfloattrue}}, | ||
7416 | initial layout = float, | 7566 | initial layout = float, |
7417 | unknown-choice layout = \PackageError{ekdosis}{unknown | 7567 | unknown-choice layout = \PackageError{ekdosis}{unknown |
7418 | layout=#1}{`layout' must be either `float' or `footins'.}, | 7568 | layout=#1}{`layout' must be either `float' or `footins'.}, |
@@ -7462,6 +7612,18 @@ Sample text with a \textcolor{red}{word} in red. | |||
7462 | \RequirePackage{lineno} | 7612 | \RequirePackage{lineno} |
7463 | \if@pkg@float | 7613 | \if@pkg@float |
7464 | \RequirePackage{trivfloat} | 7614 | \RequirePackage{trivfloat} |
7615 | \trivfloat{ekdapparatus} | ||
7616 | \fi | ||
7617 | \if@pkg@keyfloat | ||
7618 | \RequirePackage{keyfloat} | ||
7619 | \def\ekd@keyparopts#1{% | ||
7620 | \def\ekd@insert@keyparapp{% | ||
7621 | \keyparbox[!b]{#1}{\ekd@insert@apparatus}}} | ||
7622 | \ekd@keyparopts{} | ||
7623 | \fi | ||
7624 | \if@pkg@fitfloat | ||
7625 | \RequirePackage{tcolorbox} | ||
7626 | \tcbuselibrary{fitting,skins} | ||
7465 | \fi | 7627 | \fi |
7466 | \RequirePackage{refcount} | 7628 | \RequirePackage{refcount} |
7467 | \RequirePackage{zref-user} | 7629 | \RequirePackage{zref-user} |
@@ -7487,7 +7649,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
7487 | % \end{macrocode} | 7649 | % \end{macrocode} |
7488 | % \paragraph{Setup} | 7650 | % \paragraph{Setup} |
7489 | % \begin{macro}{\ekdsetup} | 7651 | % \begin{macro}{\ekdsetup} |
7490 | % \changes{v1.3}{2021/06/28}{new command for global options} | 7652 | % \changes{v1.3}{2021/08/16}{new command for global options} |
7491 | % \cs{ekdsetup} is used to specify options that affect the general | 7653 | % \cs{ekdsetup} is used to specify options that affect the general |
7492 | % behavior of \pkg{ekdosis}. It is a preamble-only command. | 7654 | % behavior of \pkg{ekdosis}. It is a preamble-only command. |
7493 | % \begin{macrocode} | 7655 | % \begin{macrocode} |
@@ -7510,6 +7672,8 @@ Sample text with a \textcolor{red}{word} in red. | |||
7510 | % \texttt{lemmastyle}} | 7672 | % \texttt{lemmastyle}} |
7511 | % \changes{v1.2}{2021/04/02}{general hooks: new option | 7673 | % \changes{v1.2}{2021/04/02}{general hooks: new option |
7512 | % \texttt{readingstyle}} | 7674 | % \texttt{readingstyle}} |
7675 | % \changes{v1.3}{2021/08/16}{general hooks: new options | ||
7676 | % \texttt{keyparopts} and \texttt{appheight}} | ||
7513 | % \begin{macrocode} | 7677 | % \begin{macrocode} |
7514 | \ekvdefinekeys{ekd@hooks}{ | 7678 | \ekvdefinekeys{ekd@hooks}{ |
7515 | store appfontsize = \ekd@appfontsize, | 7679 | store appfontsize = \ekd@appfontsize, |
@@ -7517,6 +7681,17 @@ Sample text with a \textcolor{red}{word} in red. | |||
7517 | store postrefnum = \ekd@postrefnum, | 7681 | store postrefnum = \ekd@postrefnum, |
7518 | store lemmastyle = \ekd@lemmastyle, | 7682 | store lemmastyle = \ekd@lemmastyle, |
7519 | store readingstyle = \ekd@readingstyle, | 7683 | store readingstyle = \ekd@readingstyle, |
7684 | code keyparopts = \if@pkg@keyfloat\ekd@keyparopts{#1}\fi, | ||
7685 | dimen appheight = \ekd@app@height, | ||
7686 | initial appheight = .5\textheight, | ||
7687 | choice fitalgorithm = {fontsize = \def\ekd@fit@algorithm{fontsize}, | ||
7688 | hybrid = \def\ekd@fit@algorithm{hybrid}, | ||
7689 | areasize = \def\ekd@fit@algorithm{areasize}, | ||
7690 | squeeze = \def\ekd@fit@algorithm{squeeze}}, | ||
7691 | initial fitalgorithm = fontsize, | ||
7692 | unknown-choice fitalgorithm = \PackageError{ekdosis}{unknown | ||
7693 | fitalgorithm=#1}{`fitalgorithm' must be either `fontsize', | ||
7694 | `hybrid', `areasize' or `squeeze'.}, | ||
7520 | code initialrule = \def\ekd@initial@rule{#1\NLS}, | 7695 | code initialrule = \def\ekd@initial@rule{#1\NLS}, |
7521 | default initialrule = \rule{0.4\columnwidth}{0.4pt}, | 7696 | default initialrule = \rule{0.4\columnwidth}{0.4pt}, |
7522 | noval noinitialrule = \undef\ekd@initial@rule, | 7697 | noval noinitialrule = \undef\ekd@initial@rule, |
@@ -7718,7 +7893,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
7718 | % \end{macrocode} | 7893 | % \end{macrocode} |
7719 | % \end{macro} | 7894 | % \end{macro} |
7720 | % \begin{macro}{\teidirect} | 7895 | % \begin{macro}{\teidirect} |
7721 | % \changes{v1.3}{2021/06/28}{direct insertion of elements in the | 7896 | % \changes{v1.3}{2021/08/16}{direct insertion of elements in the |
7722 | % \texttt{TEI xml} file} | 7897 | % \texttt{TEI xml} file} |
7723 | % \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} | 7898 | % \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} |
7724 | % does nothing in \LaTeX. Its only use is to insert elements in the | 7899 | % does nothing in \LaTeX. Its only use is to insert elements in the |
@@ -8085,7 +8260,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
8085 | % \end{macrocode} | 8260 | % \end{macrocode} |
8086 | % \end{macro} | 8261 | % \end{macro} |
8087 | % \begin{macro}{\SetApparatusNoteLanguage} | 8262 | % \begin{macro}{\SetApparatusNoteLanguage} |
8088 | % \changes{v1.3}{2021/06/28}{defines an alternate language to be | 8263 | % \changes{v1.3}{2021/08/16}{defines an alternate language to be |
8089 | % applied in note apparatus entries} | 8264 | % applied in note apparatus entries} |
8090 | % \cs{SetApparatusNoteLang}\marg{languagename} can be used when | 8265 | % \cs{SetApparatusNoteLang}\marg{languagename} can be used when |
8091 | % it is needed to apply in entries introduced by the \cs{note} command | 8266 | % it is needed to apply in entries introduced by the \cs{note} command |
@@ -8168,10 +8343,36 @@ Sample text with a \textcolor{red}{word} in red. | |||
8168 | % commands need to know whether they are called from inside the | 8343 | % commands need to know whether they are called from inside the |
8169 | % apparatus criticus, a conditional is first defined. | 8344 | % apparatus criticus, a conditional is first defined. |
8170 | % \begin{macrocode} | 8345 | % \begin{macrocode} |
8171 | \if@pkg@float | ||
8172 | \trivfloat{ekdapparatus} | ||
8173 | \fi | ||
8174 | \newif\ifekd@inside@app | 8346 | \newif\ifekd@inside@app |
8347 | \if@pkg@fitfloat | ||
8348 | \newtcboxfit{\ekdfitapp}{% | ||
8349 | blankest, | ||
8350 | fit basedim = \f@size pt, | ||
8351 | fit fontsize macros, | ||
8352 | fit height from=0pt to \ekd@app@height, | ||
8353 | fit algorithm = \ekd@fit@algorithm, | ||
8354 | float=!b} | ||
8355 | \fi | ||
8356 | \long\def\ekd@insert@apparatus{% | ||
8357 | \unless\ifekd@mapps | ||
8358 | \ifrtl@app\pardir TRT\leavevmode\textdir TRT\else | ||
8359 | \pardir TLT\leavevmode\textdir TLT\fi | ||
8360 | \fi | ||
8361 | \if@pkg@parnotes | ||
8362 | \if@parnotesroman | ||
8363 | \renewcommand*{\theparnotemark}{\roman{parnotemark}}\fi | ||
8364 | \parnoteclear\fi | ||
8365 | \ekd@inside@apptrue | ||
8366 | \ekd@appfontsize | ||
8367 | \ifekd@mapps | ||
8368 | \ifdefined\ekd@initial@rule | ||
8369 | \ekd@initial@rule | ||
8370 | \fi | ||
8371 | \fi | ||
8372 | \apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi | ||
8373 | \ekd@inside@appfalse | ||
8374 | \if@pkg@parnotes\parnotes\parnotereset\fi | ||
8375 | }% | ||
8175 | \def\add@@apparatus{% | 8376 | \def\add@@apparatus{% |
8176 | \if@pkg@parnotes\parnotes\else\fi | 8377 | \if@pkg@parnotes\parnotes\else\fi |
8177 | \if@pkg@footins | 8378 | \if@pkg@footins |
@@ -8200,26 +8401,15 @@ Sample text with a \textcolor{red}{word} in red. | |||
8200 | \fi | 8401 | \fi |
8201 | \if@pkg@float | 8402 | \if@pkg@float |
8202 | \begin{ekdapparatus}[!b]% | 8403 | \begin{ekdapparatus}[!b]% |
8203 | \unless\ifekd@mapps | 8404 | \ekd@insert@apparatus |
8204 | \ifrtl@app\pardir TRT\leavevmode\textdir TRT\else | ||
8205 | \pardir TLT\leavevmode\textdir TLT\fi | ||
8206 | \fi | ||
8207 | \if@pkg@parnotes | ||
8208 | \if@parnotesroman | ||
8209 | \renewcommand*{\theparnotemark}{\roman{parnotemark}}\else\fi | ||
8210 | \parnoteclear\else\fi | ||
8211 | \ekd@inside@apptrue | ||
8212 | \ekd@appfontsize | ||
8213 | \ifekd@mapps | ||
8214 | \ifdefined\ekd@initial@rule | ||
8215 | \ekd@initial@rule | ||
8216 | \fi | ||
8217 | \fi | ||
8218 | \apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi | ||
8219 | \ekd@inside@appfalse | ||
8220 | \if@pkg@parnotes\parnotes\parnotereset\else\fi | ||
8221 | \end{ekdapparatus}% | 8405 | \end{ekdapparatus}% |
8222 | \fi | 8406 | \fi |
8407 | \if@pkg@keyfloat | ||
8408 | \ekd@insert@keyparapp | ||
8409 | \fi | ||
8410 | \if@pkg@fitfloat | ||
8411 | \ekdfitapp{\ekd@insert@apparatus}% | ||
8412 | \fi | ||
8223 | } | 8413 | } |
8224 | % \end{macrocode} | 8414 | % \end{macrocode} |
8225 | % Before inserting any new entry, \cs{add@apparatus} calls | 8415 | % Before inserting any new entry, \cs{add@apparatus} calls |
@@ -8373,14 +8563,14 @@ Sample text with a \textcolor{red}{word} in red. | |||
8373 | \begingroup | 8563 | \begingroup |
8374 | \ekvset{appnote}{#1}% | 8564 | \ekvset{appnote}{#1}% |
8375 | \ifekd@isinapp\ekd@appinapptrue\fi | 8565 | \ifekd@isinapp\ekd@appinapptrue\fi |
8376 | \ekd@isinapptrue% | 8566 | \ekd@isinapptrue |
8377 | \stepcounter{ekd@lab}% | 8567 | \stepcounter{ekd@lab}% |
8378 | \zlabel{ekd:\theekd@lab}% | 8568 | \zlabel{ekd:\theekd@lab}% |
8379 | \luadirect{ekdosis.storeabspg( | 8569 | \luadirect{ekdosis.storeabspg( |
8380 | \luastring{\zref@extract{ekd:\theekd@lab}{abspage}})}% | 8570 | \luastring{\zref@extract{ekd:\theekd@lab}{abspage}})}% |
8381 | \ifekd@state\add@apparatus\fi% | 8571 | \ifekd@state\add@apparatus\fi |
8382 | \luadirect{tex.sprint(ekdosis.removesp(\luastringN{#2}))}% | 8572 | \luadirect{tex.sprint(ekdosis.removesp(\luastringN{#2}))}% |
8383 | \ekd@isinappfalse% | 8573 | \ekd@isinappfalse |
8384 | \ekd@appinappfalse | 8574 | \ekd@appinappfalse |
8385 | \endgroup} | 8575 | \endgroup} |
8386 | % \end{macrocode} | 8576 | % \end{macrocode} |
@@ -9332,7 +9522,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9332 | % \end{macrocode} | 9522 | % \end{macrocode} |
9333 | % \end{macro} | 9523 | % \end{macro} |
9334 | % \begin{macro}{\endmark} | 9524 | % \begin{macro}{\endmark} |
9335 | % \changes{v1.3}{2021/06/28}{prints the last-emitted mark of the | 9525 | % \changes{v1.3}{2021/08/16}{prints the last-emitted mark of the |
9336 | % preceding page} | 9526 | % preceding page} |
9337 | % By default, \cs{ekdmark} described below prints the first mark | 9527 | % By default, \cs{ekdmark} described below prints the first mark |
9338 | % that is emitted on a given page and ignores the mark corresponding | 9528 | % that is emitted on a given page and ignores the mark corresponding |
@@ -9354,7 +9544,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9354 | % \end{macrocode} | 9544 | % \end{macrocode} |
9355 | % \end{macro} | 9545 | % \end{macro} |
9356 | % \begin{macro}{\edkmark} | 9546 | % \begin{macro}{\edkmark} |
9357 | % \changes{v1.3}{2021/06/28}{prints marks in headers or footers} | 9547 | % \changes{v1.3}{2021/08/16}{prints marks in headers or footers} |
9358 | % \cs{ekdmark} is an argument-less command called in commands used to | 9548 | % \cs{ekdmark} is an argument-less command called in commands used to |
9359 | % make headers and footers where the marks stored by means of the | 9549 | % make headers and footers where the marks stored by means of the |
9360 | % |mark| optional argument of \cs{ekddiv} are to be printed. | 9550 | % |mark| optional argument of \cs{ekddiv} are to be printed. |
@@ -9365,7 +9555,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9365 | % \end{macrocode} | 9555 | % \end{macrocode} |
9366 | % \end{macro} | 9556 | % \end{macro} |
9367 | % \begin{macro}{\ekdprintmark} | 9557 | % \begin{macro}{\ekdprintmark} |
9368 | % \changes{v1.3}{2021/06/28}{prints or removes the marks in headers | 9558 | % \changes{v1.3}{2021/08/16}{prints or removes the marks in headers |
9369 | % and footers} \cs{ekdprintmark}\marg{selector}\marg{signpost} The | 9559 | % and footers} \cs{ekdprintmark}\marg{selector}\marg{signpost} The |
9370 | % signposts printed in headers and footers must be | 9560 | % signposts printed in headers and footers must be |
9371 | % passed as second argument of \cs{ekdprintmark} so that \pkg{ekdosis} | 9561 | % passed as second argument of \cs{ekdprintmark} so that \pkg{ekdosis} |
@@ -9403,7 +9593,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9403 | % \end{macrocode} | 9593 | % \end{macrocode} |
9404 | % \end{macro} | 9594 | % \end{macro} |
9405 | % \begin{macro}{\ekdnofhmarks} | 9595 | % \begin{macro}{\ekdnofhmarks} |
9406 | % \changes{v1.3}{2021/06/28}{removes headers and footers on specific | 9596 | % \changes{v1.3}{2021/08/16}{removes headers and footers on specific |
9407 | % pages} Once the signposts are marked with \cs{ekdprintmark}, | 9597 | % pages} Once the signposts are marked with \cs{ekdprintmark}, |
9408 | % \cs{ekdnohfmarks} has the same effect as the \LaTeX\ standard | 9598 | % \cs{ekdnohfmarks} has the same effect as the \LaTeX\ standard |
9409 | % command \cs{thispagestyle}|{empty}|. | 9599 | % command \cs{thispagestyle}|{empty}|. |
@@ -9414,7 +9604,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9414 | % \end{macrocode} | 9604 | % \end{macrocode} |
9415 | % \end{macro} | 9605 | % \end{macro} |
9416 | % \begin{macro}{\ekdresethfmarks} | 9606 | % \begin{macro}{\ekdresethfmarks} |
9417 | % \changes{v1.3}{2021/06/28}{marks headers and footers as printable} | 9607 | % \changes{v1.3}{2021/08/16}{marks headers and footers as printable} |
9418 | % \cs{ekdresethfmarks} can be used in rare cases when it is needed to | 9608 | % \cs{ekdresethfmarks} can be used in rare cases when it is needed to |
9419 | % reset headers and footers to their original, viz.\ printable state. | 9609 | % reset headers and footers to their original, viz.\ printable state. |
9420 | % \begin{macrocode} | 9610 | % \begin{macrocode} |
@@ -10063,6 +10253,10 @@ local cmdtotags = { | |||
10063 | {a="marginpar", b="note", c=" place=\"margin\""}, | 10253 | {a="marginpar", b="note", c=" place=\"margin\""}, |
10064 | {a="footnote", b="note", c=" place=\"bottom\""}, | 10254 | {a="footnote", b="note", c=" place=\"bottom\""}, |
10065 | {a="enquote", b="quote", c=""}, | 10255 | {a="enquote", b="quote", c=""}, |
10256 | {a="prname *", b="span", | ||
10257 | c=" xml:lang=\"ar-Latn\" type=\"transliterated\""}, | ||
10258 | {a="prname", b="span", | ||
10259 | c=" xml:lang=\"ar-Latn\" type=\"transliterated\" subtype=\"arabtex\""}, | ||
10066 | {a="txtrans", b="s", c=" xml:lang=\"ar-Latn\" type=\"transliterated\""}, | 10260 | {a="txtrans", b="s", c=" xml:lang=\"ar-Latn\" type=\"transliterated\""}, |
10067 | {a="textbf", b="hi", c=" rend=\"bold\""}, | 10261 | {a="textbf", b="hi", c=" rend=\"bold\""}, |
10068 | {a="textit", b="hi", c=" rend=\"italic\""}, | 10262 | {a="textit", b="hi", c=" rend=\"italic\""}, |
@@ -10352,7 +10546,7 @@ end | |||
10352 | local function relocate_notes(str) | 10546 | local function relocate_notes(str) |
10353 | str = gsub(str, inlem, function(arg) | 10547 | str = gsub(str, inlem, function(arg) |
10354 | local notes = {} | 10548 | local notes = {} |
10355 | for i in string.gmatch(arg, "%<note.->.-%<%/note%>") | 10549 | for i in string.gmatch(arg, "%<note.-%>.-%<%/note%>") |
10356 | do | 10550 | do |
10357 | table.insert(notes, i) | 10551 | table.insert(notes, i) |
10358 | end | 10552 | end |