aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2021-08-24 11:47:51 +0200
committerRobert Alessi <alessi@robertalessi.net>2021-08-24 11:47:51 +0200
commitdbc90c86e991409053bbeef7f966517bb02ac1cc (patch)
treec52b2e01e3e010f5ef57f2e5035a91c99d7b2e2a
parent81926f6cfa069a153262275a7c6ddeb57d84eff4 (diff)
downloadekdosis-dbc90c86e991409053bbeef7f966517bb02ac1cc.tar.gz
new commands and options for subseparators between variant readings
-rw-r--r--ekdosis.dtx150
1 files changed, 119 insertions, 31 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx
index 30b19f0..0237235 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/08/18 v1.3 Typesetting TEI xml-compliant critical editions] 64 [2021/08/24 v1.4-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}
@@ -441,6 +441,11 @@ along with this program. If not, see
441} 441}
442\end{filecontents} 442\end{filecontents}
443\begin{filecontents}[overwrite]{\jobname-ekd.cfg} 443\begin{filecontents}[overwrite]{\jobname-ekd.cfg}
444%% fixfoot:---
445\DeclareFixedFootnote{\seeekdsep}{See below
446 \vpageref{ref:ekdsep-subsep} for more information and
447 \vref{lst:emend-coni-corr}, ll.~23--5 for an illustrative example.}
448%% ekdosis:---
444\footnotelayout{m} 449\footnotelayout{m}
445\SetCritSymbols{suppbegin = 〈,suppend = 〉} 450\SetCritSymbols{suppbegin = 〈,suppend = 〉}
446\EnvtoTEI{ancientgreek}{p}[xml:lang="grc"] 451\EnvtoTEI{ancientgreek}{p}[xml:lang="grc"]
@@ -558,14 +563,14 @@ along with this program. If not, see
558\defaultfontfeatures{Renderer=Harfbuzz} 563\defaultfontfeatures{Renderer=Harfbuzz}
559\usepackage[latin.classic,greek.ancient,american]{babel} 564\usepackage[latin.classic,greek.ancient,american]{babel}
560\babelfont{rm}{Old Standard} 565\babelfont{rm}{Old Standard}
561\babelfont{sf}{NewComputerModernSans10} 566\babelfont{sf}{NewCMSans10-Book}
562\babelfont{tt}{NewComputerModernMono10} 567\babelfont{tt}{NewCMMono10-Book}
563\babelfont[greek]{rm}[ 568\babelfont[greek]{rm}[
564 Script=Greek, 569 Script=Greek,
565 RawFeature={+ss05;+ss06} 570 RawFeature={+ss05;+ss06}
566 ]{Old Standard} 571 ]{Old Standard}
567\babelfont[greek]{sf}[Script=Greek]{NewComputerModernSans10} 572\babelfont[greek]{sf}[Script=Greek]{NewCMSans10-Book}
568\babelfont[greek]{tt}[Script=Greek]{NewComputerModernMono10} 573\babelfont[greek]{tt}[Script=Greek]{NewCMMono10-Book}
569\newfontfamily{\junicode}{Junicode}[ 574\newfontfamily{\junicode}{Junicode}[
570 Ligatures=TeX, 575 Ligatures=TeX,
571 RawFeature={+hist}] 576 RawFeature={+hist}]
@@ -575,6 +580,10 @@ along with this program. If not, see
575\usepackage[Old Standard]{mathfont} 580\usepackage[Old Standard]{mathfont}
576\usepackage[biblatex=true]{embrac} 581\usepackage[biblatex=true]{embrac}
577\usepackage{chifoot} 582\usepackage{chifoot}
583\usepackage{fixfoot}
584\usepackage[nospace,american]{varioref}
585\newcommand\phts{\phantomsection}
586\usepackage{nameref}
578\usepackage{arabluatex} 587\usepackage{arabluatex}
579\usepackage[parnotes=roman, teiexport=tidy, poetry=verse]{ekdosis} 588\usepackage[parnotes=roman, teiexport=tidy, poetry=verse]{ekdosis}
580\AddxmlBibResource{bibdata.xml} 589\AddxmlBibResource{bibdata.xml}
@@ -628,9 +637,6 @@ along with this program. If not, see
628\labelformat{figure}{fig.~#1} 637\labelformat{figure}{fig.~#1}
629\usepackage[defaultindex=none,citecmd=autocite]{icite} 638\usepackage[defaultindex=none,citecmd=autocite]{icite}
630\bibinput{ekdosis} 639\bibinput{ekdosis}
631\usepackage[nospace,american]{varioref}
632\newcommand\phts{\phantomsection}
633\usepackage{nameref}
634\newcommand\vnref[1]{\vref{#1}, \enquote{\nameref{#1}}} 640\newcommand\vnref[1]{\vref{#1}, \enquote{\nameref{#1}}}
635\usepackage[style=oxnotes-inote,dashed]{biblatex} 641\usepackage[style=oxnotes-inote,dashed]{biblatex}
636\DefineBibliographyStrings{english}{ 642\DefineBibliographyStrings{english}{
@@ -849,7 +855,7 @@ along with this program. If not, see
849%</driver> 855%</driver>
850% \fi 856% \fi
851% 857%
852% \CheckSum{2519} 858% \CheckSum{0}
853% 859%
854% \CharacterTable 860% \CharacterTable
855% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z 861% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -1905,14 +1911,12 @@ yesterday.
1905% |nosep| must be used when for some reason no \cs{rdg} command 1911% |nosep| must be used when for some reason no \cs{rdg} command
1906% follows a \cs{lem} command that has just been used, as shown below 1912% follows a \cs{lem} command that has just been used, as shown below
1907% in \vref{lst:emend-coni-corr}, l.~7. 1913% in \vref{lst:emend-coni-corr}, l.~7.
1908% 1914% \danger If |nosep| be used so as to insert an explanatory note after
1909% \needspace{2\baselineskip} 1915% the lemma text with the \cs{note} command described below
1910% \danger \DescribeMacro{\ekdsep} If |nosep| be used so as to insert 1916% \vpageref{ref:editorial-notes}, then the |sep| optional argument of
1911% an explanatory note after the lemma text with the \cs{note} command 1917% \cs{note} can be used to put back in the separator. This technique
1912% described below \vpageref{ref:editorial-notes}, then \cs{ekdsep} can 1918% is demonstrated below in
1913% be used\---for instance as value of the |post| optional argument of 1919% \vref{lst:emend-coni-corr}, ll.~23--5.\\
1914% the note\---to put back in the separator. This technique is
1915% demonstrated below in \vref{lst:emend-coni-corr}, ll.~23--5.\\
1916% \DescribeOption{nolem} |nolem|$=$\verb+true|false+\\ 1920% \DescribeOption{nolem} |nolem|$=$\verb+true|false+\\
1917% This named argument does not need a value as it defaults to |true| 1921% This named argument does not need a value as it defaults to |true|
1918% if used. |nolem| completely removes the lemma text from the related 1922% if used. |nolem| completely removes the lemma text from the related
@@ -1987,6 +1991,19 @@ yesterday.
1987% \DescribeOption{post} |post|$=$\meta{words}\\ 1991% \DescribeOption{post} |post|$=$\meta{words}\\
1988% \DescribeOption{prewit} |prewit|$=$\meta{words}\\ 1992% \DescribeOption{prewit} |prewit|$=$\meta{words}\\
1989% \DescribeOption{postwit} |postwit|$=$\meta{words}\\ 1993% \DescribeOption{postwit} |postwit|$=$\meta{words}\\
1994% \DescribeOption{subsep} |subsep|$=$\meta{subseparator}\\
1995% \newfeature[v1.4] |subsep| inserts a subseparator to be printed
1996% \emph{before} the current entry as described below
1997% \vpageref{ref:setsubseparator}. This option is supposed to be used
1998% when no subseparator is defined, or when one is defined but for some
1999% reason a different subseparator is needed for the current
2000% entry.\\
2001% \DescribeOption{nosubsep} This argument-less option removes the
2002% subseparator from the current entry, provided one has been set by
2003% means of \cs{SetSubseparator}, \cs{SetApparatus} or
2004% \cs{DeclareApparatus}.\footnote{See
2005% \vpagerefrange{ref:setsubseparator}{ref:apparatus-settings-e} and
2006% \vref{sec:declaring-layers} for details.}
1990% 2007%
1991% \paragraph{Notes} 2008% \paragraph{Notes}
1992% \DescribeMacro{\note}\phts\label{ref:notes-b}\DescribeMacro{\note*} 2009% \DescribeMacro{\note}\phts\label{ref:notes-b}\DescribeMacro{\note*}
@@ -2007,6 +2024,10 @@ yesterday.
2007% |pre| inserts \meta{words} immediately before the note.\\ 2024% |pre| inserts \meta{words} immediately before the note.\\
2008% \DescribeOption{post} |post|$=$\meta{words}\\ 2025% \DescribeOption{post} |post|$=$\meta{words}\\
2009% |post| inserts \meta{words} immediately after the note.\\ 2026% |post| inserts \meta{words} immediately after the note.\\
2027% \DescribeOption{sep} This argument-less option is equivalent to
2028% |post=\ekdsep|.\seeekdsep\\
2029% \DescribeOption{subsep} This argument-less option is equivalent to
2030% |pre=\ekdsubsep|.\seeekdsep\\
2010% 2031%
2011% \danger Under no circumstances is it permitted to insert this 2032% \danger Under no circumstances is it permitted to insert this
2012% command \cs{note} or \cs{note*} inside the argument of \cs{lem} or 2033% command \cs{note} or \cs{note*} inside the argument of \cs{lem} or
@@ -2639,7 +2660,7 @@ friend
2639 2660
2640 Πάντων δὲ \app{ 2661 Πάντων δὲ \app{
2641 \lem[resp=egomute, type=emendation, nosep]{\supplied{τῶν πυρετῶν}} 2662 \lem[resp=egomute, type=emendation, nosep]{\supplied{τῶν πυρετῶν}}
2642 \note[post=\ekdsep]{addidi (\arb{^gamI`a 'l-.hummayAti} 2663 \note[sep]{addidi (\arb{^gamI`a 'l-.hummayAti}
2643 \getsiglum{Gal})} 2664 \getsiglum{Gal})}
2644 \rdg[nordg, source=Gal]{\arb{al-.hummayAti}} 2665 \rdg[nordg, source=Gal]{\arb{al-.hummayAti}}
2645 \rdg[wit=codd, source=edd, alt=om.]{} 2666 \rdg[wit=codd, source=edd, alt=om.]{}
@@ -2676,7 +2697,7 @@ friend
2676% 2697%
2677% Πάντων δὲ \app{ 2698% Πάντων δὲ \app{
2678% \lem[resp=egomute, type=emendation, nosep]{\supplied{τῶν πυρετῶν}} 2699% \lem[resp=egomute, type=emendation, nosep]{\supplied{τῶν πυρετῶν}}
2679% \note[post=\ekdsep]{addidi (\arb{^gamI`a 'l-.hummayAti} 2700% \note[sep]{addidi (\arb{^gamI`a 'l-.hummayAti}
2680% \getsiglum{Gal})} 2701% \getsiglum{Gal})}
2681% \rdg[nordg, source=Gal]{\arb{al-.hummayAti}} 2702% \rdg[nordg, source=Gal]{\arb{al-.hummayAti}}
2682% \rdg[wit=hcodd, source=hedd, alt=om.]{} 2703% \rdg[wit=hcodd, source=hedd, alt=om.]{}
@@ -2985,7 +3006,7 @@ friend
2985% \emph{semicolons}, as shown in red in the listing below at the end 3006% \emph{semicolons}, as shown in red in the listing below at the end
2986% of lines~1 and 2. 3007% of lines~1 and 2.
2987% \begin{enumerate} 3008% \begin{enumerate}
2988% \item[\dbend] The colon at the end of line~3 closes the whole 3009% \item[\dbend] The comma at the end of line~3 closes the whole
2989% value of |text| and acts as a higher level separator. 3010% value of |text| and acts as a higher level separator.
2990% \end{enumerate} 3011% \end{enumerate}
2991% \item \phts\label{it:lang-subopt} Each name may be followed by a 3012% \item \phts\label{it:lang-subopt} Each name may be followed by a
@@ -3386,10 +3407,38 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3386% right-to-left. 3407% right-to-left.
3387% 3408%
3388% \DescribeMacro{\SetSeparator} \cs{SetSeparator}\marg{separator} is 3409% \DescribeMacro{\SetSeparator} \cs{SetSeparator}\marg{separator} is
3389% used to change the separator between lemma texts and variants 3410% used to change the separator between lemma texts and variant
3390% readings. By default, the separator is a closing square bracket 3411% readings. By default, the separator is a closing square bracket
3391% followed by a space (\verb*+] +). 3412% followed by a space (\verb*+] +).
3392% 3413%
3414% \DescribeMacro{\SetSubseparator}\label{ref:setsubseparator}
3415% \newfeature[v1.4] \cs{SetSubseparator}\marg{subseparator} is used to
3416% set or change the \enquote{subseparator} between succeeding variant
3417% readings. By default, no subseparator is set.
3418%
3419% \danger As the subseparator applies to subsequent variant readings
3420% only, it is naturally preceded by a breakable space. This space can
3421% be removed by \cs{unskip}. As an example, what follows replaces the
3422% breakable space with an unbreakable space, then prints a colon as
3423% subseparator followed by a space:---
3424%
3425% \iffalse
3426%<*example>
3427% \fi
3428\begin{minted}[linenos=false]{latex}
3429\SetSubseparator{\unskip~: }
3430\end{minted}
3431% \iffalse
3432%</example>
3433% \fi
3434%
3435% \danger \DescribeMacro{\ekdsep} \DescribeMacro{\ekdsubsep}
3436% \phts\label{ref:ekdsep-subsep} Once the separator and if applicable
3437% the subseparator have been set, they can be accessed by \cs{ekdsep}
3438% and \cs{ekdsubsep} respectively. It is therefore advisable to use
3439% these commands instead of the mere symbols at whatever place one
3440% would have them printed.
3441%
3393% \DescribeMacro{\SetBeginApparatus} 3442% \DescribeMacro{\SetBeginApparatus}
3394% \cs{SetBeginApparatus}\marg{characters\textbar commands} can be used 3443% \cs{SetBeginApparatus}\marg{characters\textbar commands} can be used
3395% to append \meta{characters} or \meta{commands} at the beginning of 3444% to append \meta{characters} or \meta{commands} at the beginning of
@@ -3452,6 +3501,9 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3452% \DescribeOption{sep} |sep|$=$\meta{command \textbar\ chars} 3501% \DescribeOption{sep} |sep|$=$\meta{command \textbar\ chars}
3453% \hfill\tcboxverb{Default: ]␣}\\ 3502% \hfill\tcboxverb{Default: ]␣}\\
3454% The separator between lemma texts and variant readings.\\ 3503% The separator between lemma texts and variant readings.\\
3504% \DescribeOption{subsep} |subsep|$=$\meta{command \textbar\ chars}
3505% \hfill\tcboxverb{Default: not set}\\
3506% The \enquote{subseparator} between succeeding variant readings.\\
3455% \DescribeOption{delim} |delim|$=$\meta{delimiter} 3507% \DescribeOption{delim} |delim|$=$\meta{delimiter}
3456% \hfill\tcboxverb{Default: not set}\\ 3508% \hfill\tcboxverb{Default: not set}\\
3457% The delimiter between entries in the apparatus criticus. As said 3509% The delimiter between entries in the apparatus criticus. As said
@@ -3470,7 +3522,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3470% between the edition text and the apparatus criticus.\\ 3522% between the edition text and the apparatus criticus.\\
3471% \DescribeOption{norule}\hfill\tcboxverb{Default: not set}\\ 3523% \DescribeOption{norule}\hfill\tcboxverb{Default: not set}\\
3472% |norule| does not accept any value and is used to remove the 3524% |norule| does not accept any value and is used to remove the
3473% line.\phts\label{ref:apparatus-settings-e}\\ 3525% line.\\
3474% \DescribeOption{lang} |lang|$=$\meta{languagename} 3526% \DescribeOption{lang} |lang|$=$\meta{languagename}
3475% \newfeature[v1.2]\phts\label{ref:app-lang-opt} 3527% \newfeature[v1.2]\phts\label{ref:app-lang-opt}
3476% \hfill\tcboxverb{Default: not set}\\ 3528% \hfill\tcboxverb{Default: not set}\\
@@ -3489,7 +3541,8 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3489% \cs{note}\oarg{options}\marg{text}\===a language different from the 3541% \cs{note}\oarg{options}\marg{text}\===a language different from the
3490% one that is selected in the edition text. |languagename| can be any 3542% one that is selected in the edition text. |languagename| can be any
3491% value accepted by \pkg{babel} or \pkg{polyglossia}. 3543% value accepted by \pkg{babel} or \pkg{polyglossia}.
3492% 3544% \phts\label{ref:apparatus-settings-e}
3545%
3493% As an example, an apparatus criticus with references to line numbers 3546% As an example, an apparatus criticus with references to line numbers
3494% printed in normal font, a colon as a separator between lemma texts 3547% printed in normal font, a colon as a separator between lemma texts
3495% and variant readings, a broad space as a delimiter between entries 3548% and variant readings, a broad space as a delimiter between entries
@@ -3578,6 +3631,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3578% \label{sec:layout-layers} 3631% \label{sec:layout-layers}
3579% \DescribeOption{direction} 3632% \DescribeOption{direction}
3580% \DescribeOption{sep} 3633% \DescribeOption{sep}
3634% \DescribeOption{subsep}
3581% \DescribeOption{delim} 3635% \DescribeOption{delim}
3582% \DescribeOption{bhook} 3636% \DescribeOption{bhook}
3583% \DescribeOption{ehook} 3637% \DescribeOption{ehook}
@@ -3603,7 +3657,7 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+
3603% \iffalse 3657% \iffalse
3604%<*example> 3658%<*example>
3605% \fi 3659% \fi
3606\begin{minted}{latex} 3660\begin{minted}[numbersep=6pt]{latex}
3607\SetHooks{ 3661\SetHooks{
3608 refnumstyle=\normalfont, 3662 refnumstyle=\normalfont,
3609 initialrule=\rule{0.7in}{0.4pt} 3663 initialrule=\rule{0.7in}{0.4pt}
@@ -8008,6 +8062,7 @@ Sample text with a \textcolor{red}{word} in red.
8008 nmeta norule = {rule=none}, 8062 nmeta norule = {rule=none},
8009 code delim = \def\delim@val{\unexpanded{#1}}, 8063 code delim = \def\delim@val{\unexpanded{#1}},
8010 store sep = \sep@val, 8064 store sep = \sep@val,
8065 store subsep = \subsep@val,
8011 store bhook = \bhook@val, 8066 store bhook = \bhook@val,
8012 store ehook = \ehook@val, 8067 store ehook = \ehook@val,
8013 store maxentries = \limit@val, 8068 store maxentries = \limit@val,
@@ -8042,6 +8097,7 @@ Sample text with a \textcolor{red}{word} in red.
8042 \luastringO{\rule@val}, 8097 \luastringO{\rule@val},
8043 \luastringO{\delim@val}, 8098 \luastringO{\delim@val},
8044 \luastringO{\sep@val}, 8099 \luastringO{\sep@val},
8100 \luastringO{\subsep@val},
8045 \luastringO{\bhook@val}, 8101 \luastringO{\bhook@val},
8046 \luastringO{\ehook@val}, 8102 \luastringO{\ehook@val},
8047 \luastringO{\limit@val}, 8103 \luastringO{\limit@val},
@@ -8181,12 +8237,14 @@ Sample text with a \textcolor{red}{word} in red.
8181% \begin{macrocode} 8237% \begin{macrocode}
8182\newif\ifrtl@app 8238\newif\ifrtl@app
8183\edef\ekdsep{] } 8239\edef\ekdsep{] }
8240\edef\ekdsubsep{}
8184\ekvdefinekeys{default@app}{ 8241\ekvdefinekeys{default@app}{
8185 choice direction = {LR = \rtl@appfalse, 8242 choice direction = {LR = \rtl@appfalse,
8186 RL = \rtl@apptrue}, 8243 RL = \rtl@apptrue},
8187 unknown-choice direction = \PackageError{ekdosis}{unknown 8244 unknown-choice direction = \PackageError{ekdosis}{unknown
8188 direction=#1}{`direction' must be either `LR' or `RL'.}, 8245 direction=#1}{`direction' must be either `LR' or `RL'.},
8189 code sep = \edef\ekdsep{#1}, 8246 code sep = \edef\ekdsep{#1},
8247 code subsep = \edef\ekdsubsep{#1},
8190 store bhook = \ekd@begin@apparatus, 8248 store bhook = \ekd@begin@apparatus,
8191 initial bhook = {}, 8249 initial bhook = {},
8192 store ehook = \ekd@end@apparatus, 8250 store ehook = \ekd@end@apparatus,
@@ -8232,6 +8290,15 @@ Sample text with a \textcolor{red}{word} in red.
8232\NewDocumentCommand{\SetSeparator}{m}{\edef\ekdsep{#1}} 8290\NewDocumentCommand{\SetSeparator}{m}{\edef\ekdsep{#1}}
8233% \end{macrocode} 8291% \end{macrocode}
8234% \end{macro} 8292% \end{macro}
8293% \begin{macro}{\SetSubseparator}
8294% \changes{v1.4}{2021/08/24}{New command for subseparators}
8295% \cs{SetSubseparator}\marg{sub-separator} allows to change the
8296% \enquote{subseparator} between variant readings. By default,
8297% no subseparator is set:---
8298% \begin{macrocode}
8299\NewDocumentCommand{\SetSubseparator}{m}{\edef\ekdsubsep{#1}}
8300% \end{macrocode}
8301% \end{macro}
8235% \begin{macro}{\SetBeginApparatus} 8302% \begin{macro}{\SetBeginApparatus}
8236% \cs{SetBeginApparatus}\marg{characters} can be used to append 8303% \cs{SetBeginApparatus}\marg{characters} can be used to append
8237% characters at the beginning of the apparatus block. By default, 8304% characters at the beginning of the apparatus block. By default,
@@ -8817,6 +8884,9 @@ Sample text with a \textcolor{red}{word} in red.
8817 code post = \def\ekdlr@post{#1}, 8884 code post = \def\ekdlr@post{#1},
8818 code prewit = \def\ekdlr@prewit{#1}, 8885 code prewit = \def\ekdlr@prewit{#1},
8819 code postwit = \def\ekdlr@postwit{#1}, 8886 code postwit = \def\ekdlr@postwit{#1},
8887 store subsep = \ekdr@subsep,
8888 initial subsep = \ekdsubsep,
8889 bool nosubsep = \ifekdr@nosubsep,
8820 store type = \ekdlr@type, 8890 store type = \ekdlr@type,
8821 bool nordg = \ifekdr@nordg 8891 bool nordg = \ifekdr@nordg
8822} 8892}
@@ -8987,8 +9057,11 @@ Sample text with a \textcolor{red}{word} in red.
8987% \cs{rdg}\oarg{options}\marg{variant reading} inserts \meta{variant 9057% \cs{rdg}\oarg{options}\marg{variant reading} inserts \meta{variant
8988% reading} in the second part of the entry, after the lemma text and 9058% reading} in the second part of the entry, after the lemma text and
8989% the separator, in the apparatus criticus. This command accepts the 9059% the separator, in the apparatus criticus. This command accepts the
8990% optional key-value arguments defined above. 9060% optional key-value arguments defined above. This command sets
9061% \cs{ifekd@subsq@rdg} to true, which instructs \pkg{ekdosis} that
9062% \enquote{subseparators} may be used for subsequent entries.
8991% \begin{macrocode} 9063% \begin{macrocode}
9064\newif\ifekd@subsq@rdg
8992\NewDocumentCommand{\rdg}{O{} m}{% 9065\NewDocumentCommand{\rdg}{O{} m}{%
8993 \bgroup% 9066 \bgroup%
8994 \ekvset{rdg}{#1}% 9067 \ekvset{rdg}{#1}%
@@ -9005,6 +9078,9 @@ Sample text with a \textcolor{red}{word} in red.
9005 \else% 9078 \else%
9006 \ifbool{al@rlmode}{% 9079 \ifbool{al@rlmode}{%
9007 \edef\rdg@app{% 9080 \edef\rdg@app{%
9081 \ifekd@subsq@rdg
9082 \unless\ifekdr@nosubsep\unexpanded\expandafter{\ekdr@subsep}\fi
9083 \fi
9008 \ifdefined\ekdlr@alt% 9084 \ifdefined\ekdlr@alt%
9009 \ifdefined\ekdlr@post% 9085 \ifdefined\ekdlr@post%
9010 \space\unexpanded\expandafter{\ekdlr@post}\space\else\fi 9086 \space\unexpanded\expandafter{\ekdlr@post}\space\else\fi
@@ -9031,6 +9107,9 @@ Sample text with a \textcolor{red}{word} in red.
9031 }% 9107 }%
9032 {% 9108 {%
9033 \edef\rdg@app{% 9109 \edef\rdg@app{%
9110 \ifekd@subsq@rdg
9111 \unless\ifekdr@nosubsep\unexpanded\expandafter{\ekdr@subsep}\fi
9112 \fi
9034 \ifdefined\ekdlr@alt% 9113 \ifdefined\ekdlr@alt%
9035 \ifdefined\ekdlr@pre% 9114 \ifdefined\ekdlr@pre%
9036 \space\unexpanded\expandafter{\ekdlr@pre}\space\else\fi 9115 \space\unexpanded\expandafter{\ekdlr@pre}\space\else\fi
@@ -9061,13 +9140,14 @@ Sample text with a \textcolor{red}{word} in red.
9061 \space\unexpanded\expandafter{\ekdlr@postwit}\else\fi 9140 \space\unexpanded\expandafter{\ekdlr@postwit}\else\fi
9062 }% 9141 }%
9063 }% 9142 }%
9064 \ifekd@mapps% 9143 \ifekd@mapps
9065 \append@app[\ekdan@type]{\rdg@app}% 9144 \append@app[\ekdan@type]{\rdg@app}%
9066 \else% 9145 \else
9067 \append@app{\rdg@app}% 9146 \append@app{\rdg@app}%
9068 \fi% 9147 \fi
9069 \fi% 9148 \fi
9070 \egroup% 9149 \egroup
9150 \ekd@subsq@rdgtrue
9071} 9151}
9072% \end{macrocode} 9152% \end{macrocode}
9073% \end{macro} 9153% \end{macro}
@@ -9177,7 +9257,9 @@ Sample text with a \textcolor{red}{word} in red.
9177% \begin{macrocode} 9257% \begin{macrocode}
9178\ekvdefinekeys{ekd@note}{ 9258\ekvdefinekeys{ekd@note}{
9179 store pre = \pre@value, 9259 store pre = \pre@value,
9180 store post = \post@value 9260 store post = \post@value,
9261 nmeta sep = {post=\ekdsep},
9262 nmeta subsep = {pre=\ekdsubsep}
9181} 9263}
9182% \end{macrocode} 9264% \end{macrocode}
9183% The following three commands, \cs{note@app}, \cs{ekd@note} and 9265% The following three commands, \cs{note@app}, \cs{ekd@note} and
@@ -11806,6 +11888,7 @@ function ekdosis.newapparatus(teitype,
11806 apprule, 11888 apprule,
11807 appdelim, 11889 appdelim,
11808 appsep, 11890 appsep,
11891 appsubsep,
11809 appbhook, 11892 appbhook,
11810 appehook, 11893 appehook,
11811 applimit, 11894 applimit,
@@ -11822,6 +11905,7 @@ function ekdosis.newapparatus(teitype,
11822 rule = apprule, 11905 rule = apprule,
11823 delim = appdelim, 11906 delim = appdelim,
11824 sep = appsep, 11907 sep = appsep,
11908 subsep = appsubsep,
11825 bhook = appbhook, 11909 bhook = appbhook,
11826 ehook = appehook, 11910 ehook = appehook,
11827 limit = applimit, 11911 limit = applimit,
@@ -12026,6 +12110,10 @@ function ekdosis.appout()
12026 table.insert(output, "\\edef\\ekdsep{" .. apparatuses[n].sep .. "}") 12110 table.insert(output, "\\edef\\ekdsep{" .. apparatuses[n].sep .. "}")
12027 else 12111 else
12028 end 12112 end
12113 if apparatuses[n].subsep ~= ""
12114 then
12115 table.insert(output, "\\edef\\ekdsubsep{" .. apparatuses[n].subsep .. "}")
12116 end
12029 if apparatuses[n].bhook ~= "" 12117 if apparatuses[n].bhook ~= ""
12030 then 12118 then
12031 table.insert(output, apparatuses[n].bhook) 12119 table.insert(output, apparatuses[n].bhook)