aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ekdosis.dtx150
1 files changed, 87 insertions, 63 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx
index da016a7..7a16446 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/05/09 v1.5-dev Typesetting TEI xml-compliant critical editions] 64 [2022/05/15 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}
@@ -6156,7 +6156,7 @@ subtype="arabtex">'inna 'abI kAna mina
6156% \paragraph{Conditional page breaks} 6156% \paragraph{Conditional page breaks}
6157% \phts\label{ref:ekdpb} \DescribeMacro{\ekdpb}\DescribeMacro{\ekdpb*} 6157% \phts\label{ref:ekdpb} \DescribeMacro{\ekdpb}\DescribeMacro{\ekdpb*}
6158% \cs{ekdpb}\oarg{page no}\marg{line no} 6158% \cs{ekdpb}\oarg{page no}\marg{line no}
6159% \cs{ekdpb*}|{}| \cs{ekdpb*}|\| 6159% \cs{ekdpb*}|{}| \cs{ekdpb*}
6160% \newfeature[v1.2]\\ 6160% \newfeature[v1.2]\\
6161% One way to avoid this inconvenience is to use \cs{ekdpb} instead of 6161% One way to avoid this inconvenience is to use \cs{ekdpb} instead of
6162% the standard \cs{pagebreak} command provided by \LaTeX\ to insert 6162% the standard \cs{pagebreak} command provided by \LaTeX\ to insert
@@ -6269,7 +6269,7 @@ subtype="arabtex">'inna 'abI kAna mina
6269 6269
6270\makeatletter 6270\makeatletter
6271\newcommand{\ekddot}{% 6271\newcommand{\ekddot}{%
6272 \ltx@ifnextchar{.}{\xspace}{.\xspace}} 6272 \ltx@ifnextchar@nospace{.}{\xspace}{.\xspace}}
6273\makeatother 6273\makeatother
6274 6274
6275\DeclareApparatus{default}[ehook=.] 6275\DeclareApparatus{default}[ehook=.]
@@ -6282,9 +6282,9 @@ subtype="arabtex">'inna 'abI kAna mina
6282% \begin{remarks} 6282% \begin{remarks}
6283% \item Line~2: The \pkg{xspace} package is needed for \cs{xspace} is 6283% \item Line~2: The \pkg{xspace} package is needed for \cs{xspace} is
6284% used by the \cs{ekddot} command that is defined at l.~6. 6284% used by the \cs{ekddot} command that is defined at l.~6.
6285% \item Line~7: \cs{ltx@ifnextchar} is part of the \pkg{ltxcmds} 6285% \item Line~7: \cs{ltx@ifnextchar@nospace} is part of the
6286% package which is loaded by \pkg{ekdosis}. As this command uses a 6286% \pkg{ltxcmds} package which is loaded by \pkg{ekdosis}. As this
6287% private control sequence, it must be found within 6287% command uses a private control sequence, it must be found within
6288% \cs{makeatletter} \dots\ \cs{makeatother}. 6288% \cs{makeatletter} \dots\ \cs{makeatother}.
6289% \item Line~10: \cs{ekddot} will only work with multiple-layer 6289% \item Line~10: \cs{ekddot} will only work with multiple-layer
6290% apparatus criticus. Therefore, \cs{DeclareAppa{\allowbreak}ratus} 6290% apparatus criticus. Therefore, \cs{DeclareAppa{\allowbreak}ratus}
@@ -8167,6 +8167,7 @@ Sample text with a \textcolor{red}{word} in red.
8167\newif\if@pkg@footins 8167\newif\if@pkg@footins
8168\newif\if@pkg@keyfloat 8168\newif\if@pkg@keyfloat
8169\newif\if@pkg@fitapp 8169\newif\if@pkg@fitapp
8170\newif\if@pkg@breakable
8170\newif\if@pkg@ekddivs 8171\newif\if@pkg@ekddivs
8171\newif\if@parnotesroman 8172\newif\if@parnotesroman
8172\newif\if@pkg@parnotes 8173\newif\if@pkg@parnotes
@@ -8176,10 +8177,12 @@ Sample text with a \textcolor{red}{word} in red.
8176 choice layout = {float = {\@pkg@floattrue}, 8177 choice layout = {float = {\@pkg@floattrue},
8177 footins = {\@pkg@floatfalse\@pkg@footinstrue}, 8178 footins = {\@pkg@floatfalse\@pkg@footinstrue},
8178 keyfloat = {\@pkg@floatfalse\@pkg@keyfloattrue}, 8179 keyfloat = {\@pkg@floatfalse\@pkg@keyfloattrue},
8179 fitapp = {\@pkg@floatfalse\@pkg@fitapptrue}}, 8180 fitapp = {\@pkg@floatfalse\@pkg@fitapptrue},
8181 breakable = {\@pkg@floatfalse\@pkg@fitapptrue\@pkg@breakabletrue}},
8180 initial layout = float, 8182 initial layout = float,
8181 unknown-choice layout = \PackageError{ekdosis}{unknown 8183 unknown-choice layout = \PackageError{ekdosis}{unknown
8182 layout=#1}{`layout' must be either `float' or `footins'.}, 8184 layout=#1}{`layout' must be either `float', `footins', `keyfloat',
8185 `fitapp' or `breakable'.},
8183 choice divs = {ekdosis = {\@pkg@ekddivstrue}, 8186 choice divs = {ekdosis = {\@pkg@ekddivstrue},
8184 latex = {\@pkg@ekddivsfalse 8187 latex = {\@pkg@ekddivsfalse
8185 \AtBeginDocument{\luadirect{ekdosis.setekddivsfalse()}}}}, 8188 \AtBeginDocument{\luadirect{ekdosis.setekddivsfalse()}}}},
@@ -8237,7 +8240,11 @@ Sample text with a \textcolor{red}{word} in red.
8237\fi 8240\fi
8238\if@pkg@fitapp 8241\if@pkg@fitapp
8239 \RequirePackage{tcolorbox} 8242 \RequirePackage{tcolorbox}
8240 \tcbuselibrary{fitting,skins} %,breakable} 8243 \tcbuselibrary{fitting,skins}
8244\fi
8245\if@pkg@breakable
8246 \RequirePackage{tcolorbox}
8247 \tcbuselibrary{fitting,skins,breakable}
8241\fi 8248\fi
8242\RequirePackage{refcount} 8249\RequirePackage{refcount}
8243\RequirePackage{zref-user} 8250\RequirePackage{zref-user}
@@ -8263,7 +8270,7 @@ Sample text with a \textcolor{red}{word} in red.
8263% \end{macrocode} 8270% \end{macrocode}
8264% \paragraph{\textsf{ekdosis} Symbol} 8271% \paragraph{\textsf{ekdosis} Symbol}
8265% \begin{macro}{\eKd} 8272% \begin{macro}{\eKd}
8266% \changes{v1.5}{2022/05/09}{Prints \textsf{ekdosis} indentifying 8273% \changes{v1.5}{2022/05/15}{Prints \textsf{ekdosis} indentifying
8267% symbol} As of v1.5, \pkg{ekdosis} has its own identifying 8274% symbol} As of v1.5, \pkg{ekdosis} has its own identifying
8268% symbol. It is produced by \cs{eKd} and best printed with the Old 8275% symbol. It is produced by \cs{eKd} and best printed with the Old
8269% Standard Greek font. 8276% Standard Greek font.
@@ -8526,7 +8533,7 @@ Sample text with a \textcolor{red}{word} in red.
8526% \begin{macro}{\teidirectE} 8533% \begin{macro}{\teidirectE}
8527% \changes{v1.3}{2021/08/18}{direct insertion of elements in the 8534% \changes{v1.3}{2021/08/18}{direct insertion of elements in the
8528% \texttt{TEI xml} file} 8535% \texttt{TEI xml} file}
8529% \changes{v1.5}{2022/05/09}{direct insertion of empty elements in the 8536% \changes{v1.5}{2022/05/15}{direct insertion of empty elements in the
8530% \texttt{TEI xml} file} 8537% \texttt{TEI xml} file}
8531% \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} 8538% \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code}
8532% does nothing in \LaTeX. It is only used to insert elements in the 8539% does nothing in \LaTeX. It is only used to insert elements in the
@@ -8541,7 +8548,7 @@ Sample text with a \textcolor{red}{word} in red.
8541% \end{macro} 8548% \end{macro}
8542% \end{macro} 8549% \end{macro}
8543% \begin{macro}{\getTEIxmlid} 8550% \begin{macro}{\getTEIxmlid}
8544% \changes{v1.5}{2022/05/09}{returns \texttt{TEI xml:ids} from a 8551% \changes{v1.5}{2022/05/15}{returns \texttt{TEI xml:ids} from a
8545% csv-list of ids} This command returns from a csv-list of unique 8552% csv-list of ids} This command returns from a csv-list of unique
8546% identifiers declared in commands such as \cs{DeclareWitness} and the 8553% identifiers declared in commands such as \cs{DeclareWitness} and the
8547% like a space-separated list of their corresponding |xml:id|s, each 8554% like a space-separated list of their corresponding |xml:id|s, each
@@ -8723,7 +8730,9 @@ Sample text with a \textcolor{red}{word} in red.
8723\NewDocumentCommand{\ekdpb}{s o m}{% 8730\NewDocumentCommand{\ekdpb}{s o m}{%
8724 \IfBooleanTF{#1} 8731 \IfBooleanTF{#1}
8725 {\ifekd@showpb\marginpar{\ekd@hpbmk}\fi 8732 {\ifekd@showpb\marginpar{\ekd@hpbmk}\fi
8726 \pagebreak} 8733 \pagebreak
8734 \@ifnextchar\bgroup{}{#3}%
8735 }
8727 {% 8736 {%
8728 \def\@tmpoarg{#2}% 8737 \def\@tmpoarg{#2}%
8729 \def\@tmpmarg{#3}% 8738 \def\@tmpmarg{#3}%
@@ -9014,7 +9023,7 @@ Sample text with a \textcolor{red}{word} in red.
9014\if@pkg@fitapp 9023\if@pkg@fitapp
9015 \newtcboxfit{\ekd@fitapp}{% 9024 \newtcboxfit{\ekd@fitapp}{%
9016 blankest, 9025 blankest,
9017 % breakable, 9026 \if@pkg@breakable breakable\fi,
9018 fit basedim = \f@size pt, 9027 fit basedim = \f@size pt,
9019 fit fontsize macros, 9028 fit fontsize macros,
9020 fit height from=0pt to \ekd@app@height, 9029 fit height from=0pt to \ekd@app@height,
@@ -9022,6 +9031,15 @@ Sample text with a \textcolor{red}{word} in red.
9022 float=!b} 9031 float=!b}
9023\fi 9032\fi
9024% \end{macrocode} 9033% \end{macrocode}
9034% Then \cs{ekd@breakable} for |layout=breakable|:---
9035% \begin{macrocode}
9036 % \if@pkg@breakable
9037 % \newtcboxfit{\ekd@breakable}{%
9038 % blankest,
9039 % breakable,
9040 % float=!b}
9041 % \fi
9042% \end{macrocode}
9025% Finally two commands are used to actually insert the apparatus 9043% Finally two commands are used to actually insert the apparatus
9026% depending on the value set in the |layout| global option. 9044% depending on the value set in the |layout| global option.
9027% \begin{macrocode} 9045% \begin{macrocode}
@@ -9082,6 +9100,9 @@ Sample text with a \textcolor{red}{word} in red.
9082 \if@pkg@fitapp 9100 \if@pkg@fitapp
9083 \ekd@fitapp{\ekd@insert@apparatus}% 9101 \ekd@fitapp{\ekd@insert@apparatus}%
9084 \fi 9102 \fi
9103 % \if@pkg@breakable
9104 % \ekd@breakable{\ekd@insert@apparatus}%
9105 % \fi
9085} 9106}
9086% \end{macrocode} 9107% \end{macrocode}
9087% Before inserting any new entry, \cs{add@apparatus} calls 9108% Before inserting any new entry, \cs{add@apparatus} calls
@@ -9937,12 +9958,12 @@ Sample text with a \textcolor{red}{word} in red.
9937% defined above. 9958% defined above.
9938% \begin{macrocode} 9959% \begin{macrocode}
9939\NewDocumentCommand{\ekd@note}{O{} m}{% 9960\NewDocumentCommand{\ekd@note}{O{} m}{%
9940 \bgroup% 9961 \bgroup
9941 \ekvset{ekd@note}{#1}% 9962 \ekvset{ekd@note}{#1}%
9942 \edef\note@contents{% 9963 \edef\note@contents{%
9943 \ekvifdefinedNoVal{ekd@note}{pre}{}{% 9964 \ekvifdefinedNoVal{ekd@note}{pre}{}{%
9944 \unexpanded\expandafter{\pre@value}}% 9965 \unexpanded\expandafter{\pre@value}}%
9945 {\unexpanded{#2}}% 9966 \unexpanded{#2}%
9946 \ekvifdefinedNoVal{ekd@note}{post}{}{% 9967 \ekvifdefinedNoVal{ekd@note}{post}{}{%
9947 \unexpanded\expandafter{\post@value}}% 9968 \unexpanded\expandafter{\post@value}}%
9948 }% 9969 }%
@@ -9951,7 +9972,7 @@ Sample text with a \textcolor{red}{word} in red.
9951 \else% 9972 \else%
9952 \append@app{\note@contents}% 9973 \append@app{\note@contents}%
9953 \fi% 9974 \fi%
9954 \egroup% 9975 \egroup
9955} 9976}
9956\NewDocumentCommand{\ekd@note@star}{O{} m}{% 9977\NewDocumentCommand{\ekd@note@star}{O{} m}{%
9957 \bgroup 9978 \bgroup
@@ -10118,7 +10139,7 @@ Sample text with a \textcolor{red}{word} in red.
10118% \end{macro} 10139% \end{macro}
10119% \paragraph{Lacunae} 10140% \paragraph{Lacunae}
10120% \begin{macro}{\ilabel} 10141% \begin{macro}{\ilabel}
10121% \changes{v1.5}{2022/05/09}{recalls and sets the ending label of 10142% \changes{v1.5}{2022/05/15}{recalls and sets the ending label of
10122% lemmas used to mark lacunae in witnesses} When \cs{lem} has been 10143% lemmas used to mark lacunae in witnesses} When \cs{lem} has been
10123% used with the optional argument |ilabel=<label>|, 10144% used with the optional argument |ilabel=<label>|,
10124% \cs{ilabel}\marg{label} must be used to mark the point where the 10145% \cs{ilabel}\marg{label} must be used to mark the point where the
@@ -10298,7 +10319,8 @@ Sample text with a \textcolor{red}{word} in red.
10298 \begin{paracol}[\lcols@num]*{\tcols@num} 10319 \begin{paracol}[\lcols@num]*{\tcols@num}
10299 \fi 10320 \fi
10300 } 10321 }
10301 {\end{paracol} 10322 {\if@pkg@breakable\flushpage\fi
10323 \end{paracol}
10302 \iftei@export\luadirect{ekdosis.export_coldata_totei()}\fi 10324 \iftei@export\luadirect{ekdosis.export_coldata_totei()}\fi
10303 \ifekd@flushapp 10325 \ifekd@flushapp
10304 \luadirect{ekdosis.newalignment("reset")} 10326 \luadirect{ekdosis.newalignment("reset")}
@@ -10433,7 +10455,7 @@ Sample text with a \textcolor{red}{word} in red.
10433% \end{macrocode} 10455% \end{macrocode}
10434% \end{macro} 10456% \end{macro}
10435% \begin{macro}{\ekdEOprint} 10457% \begin{macro}{\ekdEOprint}
10436% \changes{v1.5}{2022/05/09}{Sets headers and footers on 10458% \changes{v1.5}{2022/05/15}{Sets headers and footers on
10437% \enquote{paired} facing pages} 10459% \enquote{paired} facing pages}
10438% To set headers and footers on \enquote{paired} facing pages, 10460% To set headers and footers on \enquote{paired} facing pages,
10439% \cs{ekdEOprint} accepts two mandatory, self-evident arguments, like 10461% \cs{ekdEOprint} accepts two mandatory, self-evident arguments, like
@@ -10473,7 +10495,7 @@ Sample text with a \textcolor{red}{word} in red.
10473% counter to set the value of the page numbers. This counter should be 10495% counter to set the value of the page numbers. This counter should be
10474% incremented every two pages. 10496% incremented every two pages.
10475% \begin{counter}{pairedpage} 10497% \begin{counter}{pairedpage}
10476% \changes{v1.5}{2022/05/09}{A counter incremented every two pages} 10498% \changes{v1.5}{2022/05/15}{A counter incremented every two pages}
10477% |pairedpage| is first set as a global counter:--- 10499% |pairedpage| is first set as a global counter:---
10478% \begin{macrocode} 10500% \begin{macrocode}
10479\newcounter{pairedpage} 10501\newcounter{pairedpage}
@@ -10481,19 +10503,19 @@ Sample text with a \textcolor{red}{word} in red.
10481% \end{macrocode} 10503% \end{macrocode}
10482% \end{counter} 10504% \end{counter}
10483% \begin{macro}{\setpairedpagenum} 10505% \begin{macro}{\setpairedpagenum}
10484% \changes{v1.5}{2022/05/09}{sets the same page number on paired 10506% \changes{v1.5}{2022/05/15}{sets the same page number on paired
10485% pages} \cs{setpairedpagenum}\marg{number} is used just ahead of 10507% pages} \cs{setpairedpagenum}\marg{number} is used just ahead of
10486% the alignment environment to set the number of the first left-hand 10508% the alignment environment to set the number of the first left-hand
10487% paired page. 10509% paired page.
10488% \begin{macro}{\setpairedpage} 10510% \begin{macro}{\setpairedpage}
10489% \changes{v1.5}{2022/05/09}{sets the page number of the first paired 10511% \changes{v1.5}{2022/05/15}{sets the page number of the first paired
10490% page} \cs{setpairedpage} is an argument-less command meant to be 10512% page} \cs{setpairedpage} is an argument-less command meant to be
10491% issued in commands used to set headers or footers before 10513% issued in commands used to set headers or footers before
10492% \cs{thepage}. This command has the counter |pairedpage| 10514% \cs{thepage}. This command has the counter |pairedpage|
10493% incremented on right-hand pages only, and sets |page| $\leftarrow$ 10515% incremented on right-hand pages only, and sets |page| $\leftarrow$
10494% |pairedpage| on every page. 10516% |pairedpage| on every page.
10495% \begin{macro}{\resetpagenumber} 10517% \begin{macro}{\resetpagenumber}
10496% \changes{v1.5}{2022/05/09}{resets normal running page numbers} 10518% \changes{v1.5}{2022/05/15}{resets normal running page numbers}
10497% \cs{resetpagenumber} must be used right out of \enquote{mirrored} 10519% \cs{resetpagenumber} must be used right out of \enquote{mirrored}
10498% paired pages alignment environments. This argument-less command 10520% paired pages alignment environments. This argument-less command
10499% corrects any numbering error on the page following the edition 10521% corrects any numbering error on the page following the edition
@@ -12292,6 +12314,7 @@ local function textotei(str)
12292 str = section_totei(str) 12314 str = section_totei(str)
12293 str = icitetotei(str) 12315 str = icitetotei(str)
12294 str = cmdtotei(str) 12316 str = cmdtotei(str)
12317 str = texpatttotei(str)
12295 str = self_close_tags(str) 12318 str = self_close_tags(str)
12296 str = partotei(str) 12319 str = partotei(str)
12297 if ekddivs 12320 if ekddivs
@@ -12748,49 +12771,50 @@ function ekdosis.mkenv()
12748 if isfound(texts_w_apparatus, aligned_texts[i].text) 12771 if isfound(texts_w_apparatus, aligned_texts[i].text)
12749 then 12772 then
12750 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."}{+b}" 12773 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."}{+b}"
12751 .."{\\begin{nthcolumn}{".. aligned_texts[i].column.."}" 12774 .."{\\begin{nthcolumn}{".. aligned_texts[i].column.."}"
12752 .."\\par" 12775 .."\\csname if@pkg@breakable\\endcsname\\raggedbottom\\fi"
12753 .."\\EkdosisColStart" 12776 .."\\par"
12754 .."\\EkdosisOn#1" 12777 .."\\EkdosisColStart"
12755 .."}{\\EkdosisOff" 12778 .."\\EkdosisOn#1"
12756 .."\\EkdosisColStop" 12779 .."}{\\EkdosisOff"
12757 .."\\end{nthcolumn}" 12780 .."\\EkdosisColStop"
12758 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata(" 12781 .."\\end{nthcolumn}"
12759 .. aligned_texts[i].column 12782 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata("
12760 ..", \\luastringN{\\par#1\\par})}\\fi" 12783 .. aligned_texts[i].column
12761 .."}") 12784 ..", \\luastringN{\\par#1\\par})}\\fi"
12785 .."}")
12762 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."*}{+b}" 12786 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."*}{+b}"
12763 .."{\\begin{nthcolumn*}{".. aligned_texts[i].column.."}[]" 12787 .."{\\begin{nthcolumn*}{".. aligned_texts[i].column.."}[]"
12764 .."\\par" 12788 .."\\par"
12765 .."\\EkdosisColStart" 12789 .."\\EkdosisColStart"
12766 .."\\EkdosisOn#1" 12790 .."\\EkdosisOn#1"
12767 .."}{\\EkdosisOff" 12791 .."}{\\EkdosisOff"
12768 .."\\EkdosisColStop" 12792 .."\\EkdosisColStop"
12769 .."\\end{nthcolumn*}" 12793 .."\\end{nthcolumn*}"
12770 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata(" 12794 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata("
12771 .. aligned_texts[i].column 12795 .. aligned_texts[i].column
12772 ..", \\luastringN{\\par#1\\par})}\\fi" 12796 ..", \\luastringN{\\par#1\\par})}\\fi"
12773 .."}") 12797 .."}")
12774 else 12798 else
12775 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."}{+b}" 12799 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."}{+b}"
12776 .."{\\begin{nthcolumn}{".. aligned_texts[i].column.."}" 12800 .."{\\begin{nthcolumn}{".. aligned_texts[i].column.."}"
12777 .."\\par" 12801 .."\\par"
12778 .."#1" 12802 .."#1"
12779 .."}{\\end{nthcolumn}" 12803 .."}{\\end{nthcolumn}"
12780 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata(" 12804 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata("
12781 .. aligned_texts[i].column 12805 .. aligned_texts[i].column
12782 ..", \\luastringN{\\par#1\\par})}\\fi" 12806 ..", \\luastringN{\\par#1\\par})}\\fi"
12783 .."}") 12807 .."}")
12784 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."*}{+b}" 12808 table.insert(environments, "\\NewDocumentEnvironment{".. aligned_texts[i].text.."*}{+b}"
12785 .."{\\begin{nthcolumn*}{"..aligned_texts[i].column.."}[]" 12809 .."{\\begin{nthcolumn*}{"..aligned_texts[i].column.."}[]"
12786 .."\\par" 12810 .."\\par"
12787 .."#1" 12811 .."#1"
12788 .."}{" 12812 .."}{"
12789 .."\\end{nthcolumn*}" 12813 .."\\end{nthcolumn*}"
12790 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata(" 12814 .."\\csname iftei@export\\endcsname\\luadirect{ekdosis.storecoldata("
12791 .. aligned_texts[i].column 12815 .. aligned_texts[i].column
12792 ..", \\luastringN{\\par#1\\par})}\\fi" 12816 ..", \\luastringN{\\par#1\\par})}\\fi"
12793 .."}") 12817 .."}")
12794 end 12818 end
12795 forbid_xmlid = false 12819 forbid_xmlid = false
12796 if aligned_texts[i].attribute ~= "" 12820 if aligned_texts[i].attribute ~= ""