diff options
-rw-r--r-- | ekdosis.dtx | 150 |
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 ~= "" |