diff options
-rw-r--r-- | ekdosis.dtx | 113 | ||||
-rw-r--r-- | ekdosis.el | 1 |
2 files changed, 68 insertions, 46 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx index a7a5b49..a1c3bb0 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/08/28 v1.5-dev Typesetting TEI xml-compliant critical editions] | 64 | [2022/09/01 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} |
@@ -2011,13 +2011,17 @@ yesterday. | |||
2011 | % \vpageref{ref:ilabel-cmd}.} This allows for abbreviated lemmas | 2011 | % \vpageref{ref:ilabel-cmd}.} This allows for abbreviated lemmas |
2012 | % corresponding to spans of texts that cross verse, paragraph or | 2012 | % corresponding to spans of texts that cross verse, paragraph or |
2013 | % section boundaries as described below in \vnref{sec:lacunae}.\\ | 2013 | % section boundaries as described below in \vnref{sec:lacunae}.\\ |
2014 | % \DescribeOption{nodelim} |nodelim|$=$\verb+true|false+\\ | 2014 | % \DescribeOption{delim} (no-value argument) \newfeature[v1.5]\\ |
2015 | % \newfeature[v1.5] This named argument does not need a value as it | 2015 | % |delim| takes no value. If used, this argument instructs to forcibly |
2016 | % defaults to |true| if used. |nodelim| removes the delimiter that is | 2016 | % print the delimiter that \pkg{ekdosis} may have decided not to print |
2017 | % printed just before the entry in the apparatus criticus. This option | 2017 | % in the apparatus criticus before the lemma text.\\ |
2018 | % is typically used in rare occasions in combination with |nolem| and | 2018 | % \DescribeOption{nodelim} (no-value argument)\\ |
2019 | % |nonum| for entries that carry information not to be printed in the | 2019 | % \newfeature[v1.5] |nodelim| takes no value. If used, this argument |
2020 | % apparatus but nevertheless to be retained in the \texttt{TEI xml} | 2020 | % removes the delimiter that is printed just before the entry in the |
2021 | % apparatus criticus. This option is typically used in rare occasions | ||
2022 | % in combination with |nolem| and |nonum| for entries that carry | ||
2023 | % information not to be printed in the apparatus but nevertheless to | ||
2024 | % be retained in the \texttt{TEI xml} | ||
2021 | % output file.\\ | 2025 | % output file.\\ |
2022 | % \DescribeOption{sep} |sep|$=$\meta{separator}\\ | 2026 | % \DescribeOption{sep} |sep|$=$\meta{separator}\\ |
2023 | % |sep| allows to change the symbol used to separate the lemma text | 2027 | % |sep| allows to change the symbol used to separate the lemma text |
@@ -8399,7 +8403,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
8399 | % \end{macrocode} | 8403 | % \end{macrocode} |
8400 | % \paragraph{\textsf{ekdosis} Symbol} | 8404 | % \paragraph{\textsf{ekdosis} Symbol} |
8401 | % \begin{macro}{\eKd} | 8405 | % \begin{macro}{\eKd} |
8402 | % \changes{v1.5}{2022/08/28}{Prints \textsf{ekdosis} indentifying | 8406 | % \changes{v1.5}{2022/09/01}{Prints \textsf{ekdosis} indentifying |
8403 | % symbol} As of v1.5, \pkg{ekdosis} has its own identifying | 8407 | % symbol} As of v1.5, \pkg{ekdosis} has its own identifying |
8404 | % symbol. It is produced by \cs{eKd} and best printed with the Old | 8408 | % symbol. It is produced by \cs{eKd} and best printed with the Old |
8405 | % Standard Greek font. | 8409 | % Standard Greek font. |
@@ -8662,7 +8666,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
8662 | % \begin{macro}{\teidirectE} | 8666 | % \begin{macro}{\teidirectE} |
8663 | % \changes{v1.3}{2021/08/18}{direct insertion of elements in the | 8667 | % \changes{v1.3}{2021/08/18}{direct insertion of elements in the |
8664 | % \texttt{TEI xml} file} | 8668 | % \texttt{TEI xml} file} |
8665 | % \changes{v1.5}{2022/08/28}{direct insertion of empty elements in the | 8669 | % \changes{v1.5}{2022/09/01}{direct insertion of empty elements in the |
8666 | % \texttt{TEI xml} file} | 8670 | % \texttt{TEI xml} file} |
8667 | % \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} | 8671 | % \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} |
8668 | % does nothing in \LaTeX. It is only used to insert elements in the | 8672 | % does nothing in \LaTeX. It is only used to insert elements in the |
@@ -8677,7 +8681,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
8677 | % \end{macro} | 8681 | % \end{macro} |
8678 | % \end{macro} | 8682 | % \end{macro} |
8679 | % \begin{macro}{\getTEIxmlid} | 8683 | % \begin{macro}{\getTEIxmlid} |
8680 | % \changes{v1.5}{2022/08/28}{returns \texttt{TEI xml:ids} from a | 8684 | % \changes{v1.5}{2022/09/01}{returns \texttt{TEI xml:ids} from a |
8681 | % csv-list of ids} This command returns from a csv-list of unique | 8685 | % csv-list of ids} This command returns from a csv-list of unique |
8682 | % identifiers declared in commands such as \cs{DeclareWitness} and the | 8686 | % identifiers declared in commands such as \cs{DeclareWitness} and the |
8683 | % like a space-separated list of their corresponding |xml:id|s, each | 8687 | % like a space-separated list of their corresponding |xml:id|s, each |
@@ -9425,7 +9429,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9425 | % \end{macrocode} | 9429 | % \end{macrocode} |
9426 | % \end{macro} | 9430 | % \end{macro} |
9427 | % \begin{macro}{\App} | 9431 | % \begin{macro}{\App} |
9428 | % \changes{v1.5}{2022/08/28}{To be used conjointly with | 9432 | % \changes{v1.5}{2022/09/01}{To be used conjointly with |
9429 | % \texttt{ekdosis.el}} | 9433 | % \texttt{ekdosis.el}} |
9430 | % In contrast to \cs{app}, \cs{App} takes two mandatory arguments and | 9434 | % In contrast to \cs{app}, \cs{App} takes two mandatory arguments and |
9431 | % accepts one optional argument like so: | 9435 | % accepts one optional argument like so: |
@@ -9655,6 +9659,8 @@ Sample text with a \textcolor{red}{word} in red. | |||
9655 | % \begin{macrocode} | 9659 | % \begin{macrocode} |
9656 | \newif\ifekdl@forcenum | 9660 | \newif\ifekdl@forcenum |
9657 | \newif\ifekdl@nonum | 9661 | \newif\ifekdl@nonum |
9662 | \newif\ifekdl@nodelim | ||
9663 | \newif\ifekdl@forcedelim | ||
9658 | \newif\ifekdl@ilabel | 9664 | \newif\ifekdl@ilabel |
9659 | \ekvdefinekeys{lem}{ | 9665 | \ekvdefinekeys{lem}{ |
9660 | code wit = \def\ekdlr@wit{#1}, | 9666 | code wit = \def\ekdlr@wit{#1}, |
@@ -9670,7 +9676,8 @@ Sample text with a \textcolor{red}{word} in red. | |||
9670 | store sep = \ekdl@sep, | 9676 | store sep = \ekdl@sep, |
9671 | noval nonum = \ekdl@nonumtrue, | 9677 | noval nonum = \ekdl@nonumtrue, |
9672 | noval num = \ekdl@forcenumtrue, | 9678 | noval num = \ekdl@forcenumtrue, |
9673 | bool nodelim = \ifekdl@nodelim, | 9679 | noval nodelim = \ekdl@nodelimtrue, |
9680 | noval delim = \ekdl@forcedelimtrue, | ||
9674 | bool nolem = \ifekdl@nolem, | 9681 | bool nolem = \ifekdl@nolem, |
9675 | nmeta Nolem = {nodelim, nonum, nolem}, | 9682 | nmeta Nolem = {nodelim, nonum, nolem}, |
9676 | bool nosep = \ifekdl@nosep, | 9683 | bool nosep = \ifekdl@nosep, |
@@ -9771,32 +9778,42 @@ Sample text with a \textcolor{red}{word} in red. | |||
9771 | \luadirect{tex.sprint(ekdosis.getappdelim(\luastringO{\ekdan@type}))}}% | 9778 | \luadirect{tex.sprint(ekdosis.getappdelim(\luastringO{\ekdan@type}))}}% |
9772 | \luadirect{tex.sprint(ekdosis.limit_bagunits(\luastringO{\ekdan@type}))}% | 9779 | \luadirect{tex.sprint(ekdosis.limit_bagunits(\luastringO{\ekdan@type}))}% |
9773 | \fi% | 9780 | \fi% |
9774 | \ifekdl@nolem\edef\lem@app{% | 9781 | \ifekdl@nolem |
9775 | % \hskip .75em | 9782 | \edef\lem@app{% |
9776 | \ifekd@mapps | 9783 | % \hskip .75em |
9777 | \unless\ifekdl@nodelim | 9784 | \ifekd@mapps |
9778 | \ifbool{subsq@unit@\ekdan@type}% | 9785 | \unless\ifekdl@nodelim |
9779 | {\ekd@munit@delim}{}% | 9786 | \ifbool{subsq@unit@\ekdan@type}% |
9780 | \fi | 9787 | {\ekd@munit@delim}{\ifekdl@forcedelim\ekd@munit@delim\fi}% |
9781 | \else | 9788 | \fi |
9782 | \unless\ifekdl@nodelim | 9789 | \else |
9783 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | 9790 | \unless\ifekdl@nodelim |
9784 | \fi | 9791 | \ifsubsq@unit |
9785 | \fi% | 9792 | \unexpanded\expandafter{\ekd@unit@delim}% |
9786 | \unless\ifekdl@nonum\current@ref\fi}%\hskip .25em}% | 9793 | \else |
9794 | \ifekdl@forcedelim\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9795 | \fi | ||
9796 | \fi | ||
9797 | \fi% | ||
9798 | \unless\ifekdl@nonum\current@ref\fi | ||
9799 | }%\hskip .25em}% | ||
9787 | \else% | 9800 | \else% |
9788 | \ifbool{al@rlmode}{% | 9801 | \ifbool{al@rlmode}{% |
9789 | \edef\lem@app{% | 9802 | \edef\lem@app{% |
9790 | % \hskip .75em | 9803 | % \hskip .75em |
9791 | \ifekd@mapps | 9804 | \ifekd@mapps |
9792 | \unless\ifekdl@nodelim | 9805 | \unless\ifekdl@nodelim |
9793 | \ifbool{subsq@unit@\ekdan@type}% | 9806 | \ifbool{subsq@unit@\ekdan@type}% |
9794 | {\ekd@munit@delim}{}% | 9807 | {\ekd@munit@delim}{\ifekdl@forcedelim\ekd@munit@delim\fi}% |
9795 | \fi | 9808 | \fi |
9796 | \else | 9809 | \else |
9797 | \unless\ifekdl@nodelim | 9810 | \unless\ifekdl@nodelim |
9798 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | 9811 | \ifsubsq@unit |
9799 | \fi | 9812 | \unexpanded\expandafter{\ekd@unit@delim}% |
9813 | \else | ||
9814 | \ifekdl@forcedelim\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9815 | \fi | ||
9816 | \fi | ||
9800 | \fi% | 9817 | \fi% |
9801 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em | 9818 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em |
9802 | \ifdefined\ekdlr@alt% | 9819 | \ifdefined\ekdlr@alt% |
@@ -9828,14 +9845,18 @@ Sample text with a \textcolor{red}{word} in red. | |||
9828 | \edef\lem@app{% | 9845 | \edef\lem@app{% |
9829 | % \hskip .75em | 9846 | % \hskip .75em |
9830 | \ifekd@mapps | 9847 | \ifekd@mapps |
9831 | \unless\ifekdl@nodelim | 9848 | \unless\ifekdl@nodelim |
9832 | \ifbool{subsq@unit@\ekdan@type}% | 9849 | \ifbool{subsq@unit@\ekdan@type}% |
9833 | {\ekd@munit@delim}{}% | 9850 | {\ekd@munit@delim}{\ifekdl@forcedelim\ekd@munit@delim\fi}% |
9834 | \fi | 9851 | \fi |
9835 | \else | 9852 | \else |
9836 | \unless\ifekdl@nodelim | 9853 | \unless\ifekdl@nodelim |
9837 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | 9854 | \ifsubsq@unit |
9838 | \fi | 9855 | \unexpanded\expandafter{\ekd@unit@delim}% |
9856 | \else | ||
9857 | \ifekdl@forcedelim\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9858 | \fi | ||
9859 | \fi | ||
9839 | \fi% | 9860 | \fi% |
9840 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em | 9861 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em |
9841 | \ifdefined\ekdlr@alt% | 9862 | \ifdefined\ekdlr@alt% |
@@ -10298,7 +10319,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
10298 | % \end{macro} | 10319 | % \end{macro} |
10299 | % \paragraph{Lacunae} | 10320 | % \paragraph{Lacunae} |
10300 | % \begin{macro}{\ilabel} | 10321 | % \begin{macro}{\ilabel} |
10301 | % \changes{v1.5}{2022/08/28}{recalls and sets the ending label of | 10322 | % \changes{v1.5}{2022/09/01}{recalls and sets the ending label of |
10302 | % lemmas used to mark lacunae in witnesses} When \cs{lem} has been | 10323 | % lemmas used to mark lacunae in witnesses} When \cs{lem} has been |
10303 | % used with the optional argument |ilabel=<label>|, | 10324 | % used with the optional argument |ilabel=<label>|, |
10304 | % \cs{ilabel}\marg{label} must be used to mark the point where the | 10325 | % \cs{ilabel}\marg{label} must be used to mark the point where the |
@@ -10614,7 +10635,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
10614 | % \end{macrocode} | 10635 | % \end{macrocode} |
10615 | % \end{macro} | 10636 | % \end{macro} |
10616 | % \begin{macro}{\ekdEOprint} | 10637 | % \begin{macro}{\ekdEOprint} |
10617 | % \changes{v1.5}{2022/08/28}{Sets headers and footers on | 10638 | % \changes{v1.5}{2022/09/01}{Sets headers and footers on |
10618 | % \enquote{paired} facing pages} | 10639 | % \enquote{paired} facing pages} |
10619 | % To set headers and footers on \enquote{paired} facing pages, | 10640 | % To set headers and footers on \enquote{paired} facing pages, |
10620 | % \cs{ekdEOprint} accepts two mandatory, self-evident arguments, like | 10641 | % \cs{ekdEOprint} accepts two mandatory, self-evident arguments, like |
@@ -10654,7 +10675,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
10654 | % counter to set the value of the page numbers. This counter should be | 10675 | % counter to set the value of the page numbers. This counter should be |
10655 | % incremented every two pages. | 10676 | % incremented every two pages. |
10656 | % \begin{counter}{pairedpage} | 10677 | % \begin{counter}{pairedpage} |
10657 | % \changes{v1.5}{2022/08/28}{A counter incremented every two pages} | 10678 | % \changes{v1.5}{2022/09/01}{A counter incremented every two pages} |
10658 | % |pairedpage| is first set as a global counter:--- | 10679 | % |pairedpage| is first set as a global counter:--- |
10659 | % \begin{macrocode} | 10680 | % \begin{macrocode} |
10660 | \newcounter{pairedpage} | 10681 | \newcounter{pairedpage} |
@@ -10662,19 +10683,19 @@ Sample text with a \textcolor{red}{word} in red. | |||
10662 | % \end{macrocode} | 10683 | % \end{macrocode} |
10663 | % \end{counter} | 10684 | % \end{counter} |
10664 | % \begin{macro}{\setpairedpagenum} | 10685 | % \begin{macro}{\setpairedpagenum} |
10665 | % \changes{v1.5}{2022/08/28}{sets the same page number on paired | 10686 | % \changes{v1.5}{2022/09/01}{sets the same page number on paired |
10666 | % pages} \cs{setpairedpagenum}\marg{number} is used just ahead of | 10687 | % pages} \cs{setpairedpagenum}\marg{number} is used just ahead of |
10667 | % the alignment environment to set the number of the first left-hand | 10688 | % the alignment environment to set the number of the first left-hand |
10668 | % paired page. | 10689 | % paired page. |
10669 | % \begin{macro}{\setpairedpage} | 10690 | % \begin{macro}{\setpairedpage} |
10670 | % \changes{v1.5}{2022/08/28}{sets the page number of the first paired | 10691 | % \changes{v1.5}{2022/09/01}{sets the page number of the first paired |
10671 | % page} \cs{setpairedpage} is an argument-less command meant to be | 10692 | % page} \cs{setpairedpage} is an argument-less command meant to be |
10672 | % issued in commands used to set headers or footers before | 10693 | % issued in commands used to set headers or footers before |
10673 | % \cs{thepage}. This command has the counter |pairedpage| | 10694 | % \cs{thepage}. This command has the counter |pairedpage| |
10674 | % incremented on right-hand pages only, and sets |page| $\leftarrow$ | 10695 | % incremented on right-hand pages only, and sets |page| $\leftarrow$ |
10675 | % |pairedpage| on every page. | 10696 | % |pairedpage| on every page. |
10676 | % \begin{macro}{\resetpagenumber} | 10697 | % \begin{macro}{\resetpagenumber} |
10677 | % \changes{v1.5}{2022/08/28}{resets normal running page numbers} | 10698 | % \changes{v1.5}{2022/09/01}{resets normal running page numbers} |
10678 | % \cs{resetpagenumber} must be used right out of \enquote{mirrored} | 10699 | % \cs{resetpagenumber} must be used right out of \enquote{mirrored} |
10679 | % paired pages alignment environments. This argument-less command | 10700 | % paired pages alignment environments. This argument-less command |
10680 | % corrects any numbering error on the page following the edition | 10701 | % corrects any numbering error on the page following the edition |
@@ -91,6 +91,7 @@ | |||
91 | ("sep") | 91 | ("sep") |
92 | ("type") | 92 | ("type") |
93 | ("ilabel") | 93 | ("ilabel") |
94 | ("delim") | ||
94 | ("nodelim") | 95 | ("nodelim") |
95 | ("num") | 96 | ("num") |
96 | ("nonum") | 97 | ("nonum") |