diff options
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | ekdosis.dtx | 101 | ||||
-rw-r--r-- | ekdosis.el | 2 | ||||
-rw-r--r-- | ekdosis.ins | 2 |
4 files changed, 80 insertions, 29 deletions
@@ -23,7 +23,7 @@ License and Disclamer | |||
23 | ===================== | 23 | ===================== |
24 | ekdosis – Typesetting TEI xml-Compliant Critical Editions | 24 | ekdosis – Typesetting TEI xml-Compliant Critical Editions |
25 | 25 | ||
26 | Copyright ⓒ 2020--2021 Robert Alessi | 26 | Copyright ⓒ 2020--2022 Robert Alessi |
27 | 27 | ||
28 | Please send error reports and suggestions for improvements to Robert | 28 | Please send error reports and suggestions for improvements to Robert |
29 | Alessi: | 29 | Alessi: |
@@ -62,7 +62,7 @@ This release of ekdosis consists of the following source files: | |||
62 | 62 | ||
63 | License Applicable to the Documentation | 63 | License Applicable to the Documentation |
64 | --------------------------------------- | 64 | --------------------------------------- |
65 | Copyright ⓒ 2020--2021 Robert Alessi | 65 | Copyright ⓒ 2020--2022 Robert Alessi |
66 | 66 | ||
67 | The documentation file `ekdosis.pdf` that is generated from the | 67 | The documentation file `ekdosis.pdf` that is generated from the |
68 | `ekdosis.dtx` source file is licensed under the GNU Free Documentation | 68 | `ekdosis.dtx` source file is licensed under the GNU Free Documentation |
diff --git a/ekdosis.dtx b/ekdosis.dtx index 6c56066..68d968e 100644 --- a/ekdosis.dtx +++ b/ekdosis.dtx | |||
@@ -1,7 +1,7 @@ | |||
1 | % \iffalse meta-comment | 1 | % \iffalse meta-comment |
2 | % | 2 | % |
3 | % ekdosis -- Typesetting TEI xml-compliant critical editions | 3 | % ekdosis -- Typesetting TEI xml-compliant critical editions |
4 | % Copyright (C) 2020--2021 Robert Alessi | 4 | % Copyright (C) 2020--2022 Robert Alessi |
5 | % | 5 | % |
6 | % Please send error reports and suggestions for improvements to Robert | 6 | % Please send error reports and suggestions for improvements to Robert |
7 | % Alessi <alessi@robertalessi.net> | 7 | % Alessi <alessi@robertalessi.net> |
@@ -28,7 +28,7 @@ | |||
28 | This file is part of the `ekdosis' package | 28 | This file is part of the `ekdosis' package |
29 | 29 | ||
30 | ekdosis -- Typesetting TEI xml-compliant critical editions | 30 | ekdosis -- Typesetting TEI xml-compliant critical editions |
31 | Copyright (C) 2020--2021 Robert Alessi | 31 | Copyright (C) 2020--2022 Robert Alessi |
32 | 32 | ||
33 | Please send error reports and suggestions for improvements to Robert | 33 | Please send error reports and suggestions for improvements to Robert |
34 | Alessi <alessi@robertalessi.net> | 34 | Alessi <alessi@robertalessi.net> |
@@ -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/12/14 v1.5-dev Typesetting TEI xml-compliant critical editions] | 64 | [2022/01/04 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} |
@@ -647,6 +647,7 @@ along with this program. If not, see | |||
647 | \bibinput{ekdosis} | 647 | \bibinput{ekdosis} |
648 | \newcommand\vnref[1]{\vref{#1}, \enquote{\nameref{#1}}} | 648 | \newcommand\vnref[1]{\vref{#1}, \enquote{\nameref{#1}}} |
649 | \usepackage[style=oxnotes-inote,dashed]{biblatex} | 649 | \usepackage[style=oxnotes-inote,dashed]{biblatex} |
650 | \usepackage{xurl} | ||
650 | \DefineBibliographyStrings{english}{ | 651 | \DefineBibliographyStrings{english}{ |
651 | seenote={cf\adddotspace n\adddotspace}} | 652 | seenote={cf\adddotspace n\adddotspace}} |
652 | \DeclareSourcemap{ | 653 | \DeclareSourcemap{ |
@@ -749,7 +750,7 @@ along with this program. If not, see | |||
749 | Para ver una copia de esta licencia, siga el vínculo: | 750 | Para ver una copia de esta licencia, siga el vínculo: |
750 | \metapick[#1]{licenseurl}.} | 751 | \metapick[#1]{licenseurl}.} |
751 | \metaset{copyrightowner}{\metapick[#1]{author}} | 752 | \metaset{copyrightowner}{\metapick[#1]{author}} |
752 | \metaset{copyrightdate}{2020--2021} | 753 | \metaset{copyrightdate}{2020--2022} |
753 | \metaset{licensemessage}{Permission is granted to copy, distribute | 754 | \metaset{licensemessage}{Permission is granted to copy, distribute |
754 | and/or modify this document under the terms of the GNU Free | 755 | and/or modify this document under the terms of the GNU Free |
755 | Documentation License, Version 1.3 or any later version published by | 756 | Documentation License, Version 1.3 or any later version published by |
@@ -1923,6 +1924,14 @@ yesterday. | |||
1923 | % introduce an alternate way of writing entries with Latin technical | 1924 | % introduce an alternate way of writing entries with Latin technical |
1924 | % terms in the apparatus criticus as will be demonstrated below in the | 1925 | % terms in the apparatus criticus as will be demonstrated below in the |
1925 | % example provided by \vref{lst:pj2}.\\ | 1926 | % example provided by \vref{lst:pj2}.\\ |
1927 | % \DescribeOption{nodelim} |nodelim|$=$\verb+true|false+\\ | ||
1928 | % \newfeature[v1.5] This named argument does not need a value as it | ||
1929 | % defaults to |true| if used. |nodelim| removes the delimiter that is | ||
1930 | % printed just before the entry in the apparatus criticus. This option | ||
1931 | % is typically used in rare occasions in combination with |nolem| and | ||
1932 | % |nonum| for entries that carry information not to be printed in the | ||
1933 | % apparatus but nevertheless to be retained in the \texttt{TEI xml} | ||
1934 | % output file.\\ | ||
1926 | % \DescribeOption{sep} |sep|$=$\meta{separator}\\ | 1935 | % \DescribeOption{sep} |sep|$=$\meta{separator}\\ |
1927 | % |sep| allows to change the symbol used to separate the lemma text | 1936 | % |sep| allows to change the symbol used to separate the lemma text |
1928 | % from deviant readings, which is by default the closing square | 1937 | % from deviant readings, which is by default the closing square |
@@ -3868,6 +3877,10 @@ Some \app[type=rec2]{ | |||
3868 | % |type| is used to specify the name of the layer where the note is to | 3877 | % |type| is used to specify the name of the layer where the note is to |
3869 | % be printed.\footnote{See \vref{sec:declaring-layers} to learn how to | 3878 | % be printed.\footnote{See \vref{sec:declaring-layers} to learn how to |
3870 | % declare and lay out new layers of notes.}\\ | 3879 | % declare and lay out new layers of notes.}\\ |
3880 | % \DescribeOption{nodelim} |nodelim|$=$\verb+true|false+\\ | ||
3881 | % \newfeature[v1.5] This named argument does not need a value as it | ||
3882 | % defaults to |true| if used. This option removes the delimiter that | ||
3883 | % is printed just before the note in the apparatus criticus.\\ | ||
3871 | % \DescribeOption{sep} |sep|$=$\meta{command \textbar\ chars}\\ | 3884 | % \DescribeOption{sep} |sep|$=$\meta{command \textbar\ chars}\\ |
3872 | % The separator between the lemma text and the contents of the note.\\ | 3885 | % The separator between the lemma text and the contents of the note.\\ |
3873 | % \DescribeOption{nosep} |nosep|$=$\verb+true|false+\\ | 3886 | % \DescribeOption{nosep} |nosep|$=$\verb+true|false+\\ |
@@ -7776,7 +7789,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
7776 | % \end{macrocode} | 7789 | % \end{macrocode} |
7777 | % \paragraph{\textsf{ekdosis} Symbol} | 7790 | % \paragraph{\textsf{ekdosis} Symbol} |
7778 | % \begin{macro}{\eKd} | 7791 | % \begin{macro}{\eKd} |
7779 | % \changes{v1.5}{2021/12/14}{Prints \textsf{ekdosis} indentifying | 7792 | % \changes{v1.5}{2022/01/04}{Prints \textsf{ekdosis} indentifying |
7780 | % symbol} As of v1.5, \pkg{ekdosis} has its own identifying | 7793 | % symbol} As of v1.5, \pkg{ekdosis} has its own identifying |
7781 | % symbol. It is produced by \cs{eKd} and best printed with the Old | 7794 | % symbol. It is produced by \cs{eKd} and best printed with the Old |
7782 | % Standard Greek font. | 7795 | % Standard Greek font. |
@@ -8978,6 +8991,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
8978 | store sep = \ekdl@sep, | 8991 | store sep = \ekdl@sep, |
8979 | noval nonum = \ekdl@nonumtrue, | 8992 | noval nonum = \ekdl@nonumtrue, |
8980 | noval num = \ekdl@forcenumtrue, | 8993 | noval num = \ekdl@forcenumtrue, |
8994 | bool nodelim = \ifekdl@nodelim, | ||
8981 | bool nolem = \ifekdl@nolem, | 8995 | bool nolem = \ifekdl@nolem, |
8982 | bool nosep = \ifekdl@nosep, | 8996 | bool nosep = \ifekdl@nosep, |
8983 | initial sep = \ekdsep | 8997 | initial sep = \ekdsep |
@@ -9042,7 +9056,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9042 | % the optional key-value arguments just defined above. | 9056 | % the optional key-value arguments just defined above. |
9043 | % \begin{macrocode} | 9057 | % \begin{macrocode} |
9044 | \NewDocumentCommand{\lem}{O{} m}{% | 9058 | \NewDocumentCommand{\lem}{O{} m}{% |
9045 | \ekd@isinlemtrue% | 9059 | \ekd@isinlemtrue |
9046 | \luadirect{ekdosis.dolnlab(\luastringN{#2})}% | 9060 | \luadirect{ekdosis.dolnlab(\luastringN{#2})}% |
9047 | \null | 9061 | \null |
9048 | \bgroup% | 9062 | \bgroup% |
@@ -9064,10 +9078,14 @@ Sample text with a \textcolor{red}{word} in red. | |||
9064 | \ifekdl@nolem\edef\lem@app{% | 9078 | \ifekdl@nolem\edef\lem@app{% |
9065 | % \hskip .75em | 9079 | % \hskip .75em |
9066 | \ifekd@mapps | 9080 | \ifekd@mapps |
9067 | \ifbool{subsq@unit@\ekdan@type}% | 9081 | \unless\ifekdl@nodelim |
9068 | {\ekd@munit@delim}{}% | 9082 | \ifbool{subsq@unit@\ekdan@type}% |
9069 | \else% | 9083 | {\ekd@munit@delim}{}% |
9070 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 9084 | \fi |
9085 | \else | ||
9086 | \unless\ifekdl@nodelim | ||
9087 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9088 | \fi | ||
9071 | \fi% | 9089 | \fi% |
9072 | \unless\ifekdl@nonum\current@ref\fi}%\hskip .25em}% | 9090 | \unless\ifekdl@nonum\current@ref\fi}%\hskip .25em}% |
9073 | \else% | 9091 | \else% |
@@ -9075,10 +9093,14 @@ Sample text with a \textcolor{red}{word} in red. | |||
9075 | \edef\lem@app{% | 9093 | \edef\lem@app{% |
9076 | % \hskip .75em | 9094 | % \hskip .75em |
9077 | \ifekd@mapps | 9095 | \ifekd@mapps |
9078 | \ifbool{subsq@unit@\ekdan@type}% | 9096 | \unless\ifekdl@nodelim |
9079 | {\ekd@munit@delim}{}% | 9097 | \ifbool{subsq@unit@\ekdan@type}% |
9080 | \else% | 9098 | {\ekd@munit@delim}{}% |
9081 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 9099 | \fi |
9100 | \else | ||
9101 | \unless\ifekdl@nodelim | ||
9102 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9103 | \fi | ||
9082 | \fi% | 9104 | \fi% |
9083 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em | 9105 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em |
9084 | \ifdefined\ekdlr@alt% | 9106 | \ifdefined\ekdlr@alt% |
@@ -9110,10 +9132,14 @@ Sample text with a \textcolor{red}{word} in red. | |||
9110 | \edef\lem@app{% | 9132 | \edef\lem@app{% |
9111 | % \hskip .75em | 9133 | % \hskip .75em |
9112 | \ifekd@mapps | 9134 | \ifekd@mapps |
9113 | \ifbool{subsq@unit@\ekdan@type}% | 9135 | \unless\ifekdl@nodelim |
9114 | {\ekd@munit@delim}{}% | 9136 | \ifbool{subsq@unit@\ekdan@type}% |
9115 | \else% | 9137 | {\ekd@munit@delim}{}% |
9116 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 9138 | \fi |
9139 | \else | ||
9140 | \unless\ifekdl@nodelim | ||
9141 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9142 | \fi | ||
9117 | \fi% | 9143 | \fi% |
9118 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em | 9144 | \unless\ifekdl@nonum\current@ref\fi%\hskip .25em |
9119 | \ifdefined\ekdlr@alt% | 9145 | \ifdefined\ekdlr@alt% |
@@ -9267,6 +9293,7 @@ Sample text with a \textcolor{red}{word} in red. | |||
9267 | store lem = \ekdn@lem, | 9293 | store lem = \ekdn@lem, |
9268 | code labelb = \def\ekdn@labelb{#1}, | 9294 | code labelb = \def\ekdn@labelb{#1}, |
9269 | code labele = \def\ekdn@labele{#1}, | 9295 | code labele = \def\ekdn@labele{#1}, |
9296 | bool nodelim = \ifekdn@nodelim, | ||
9270 | store sep = \ekdn@sep, | 9297 | store sep = \ekdn@sep, |
9271 | bool nosep = \ifekdn@nosep, | 9298 | bool nosep = \ifekdn@nosep, |
9272 | initial type = default, | 9299 | initial type = default, |
@@ -9313,10 +9340,14 @@ Sample text with a \textcolor{red}{word} in red. | |||
9313 | {\edef\note@contents{% | 9340 | {\edef\note@contents{% |
9314 | % \hskip .75em | 9341 | % \hskip .75em |
9315 | \ifekd@mapps | 9342 | \ifekd@mapps |
9343 | \unless\ifekdn@nodelim | ||
9316 | \ifbool{subsq@unit@\ekdan@type}% | 9344 | \ifbool{subsq@unit@\ekdan@type}% |
9317 | {\ekd@munit@delim}{}% | 9345 | {\ekd@munit@delim}{}% |
9318 | \else% | 9346 | \fi |
9319 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 9347 | \else |
9348 | \unless\ifekdn@nodelim | ||
9349 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9350 | \fi | ||
9320 | \fi% | 9351 | \fi% |
9321 | \unless\ifekdn@nonum\current@ref@arg{\ekdn@labelb}{\ekdn@labele}\fi%\hskip .25em | 9352 | \unless\ifekdn@nonum\current@ref@arg{\ekdn@labelb}{\ekdn@labele}\fi%\hskip .25em |
9322 | \ifdefined\ekdn@lem% | 9353 | \ifdefined\ekdn@lem% |
@@ -9329,10 +9360,14 @@ Sample text with a \textcolor{red}{word} in red. | |||
9329 | {\edef\note@contents{% | 9360 | {\edef\note@contents{% |
9330 | % \hskip .75em | 9361 | % \hskip .75em |
9331 | \ifekd@mapps | 9362 | \ifekd@mapps |
9332 | \ifbool{subsq@unit@\ekdan@type}% | 9363 | \unless\ifekdn@nodelim |
9333 | {\ekd@munit@delim}{}% | 9364 | \ifbool{subsq@unit@\ekdan@type}% |
9334 | \else% | 9365 | {\ekd@munit@delim}{}% |
9335 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 9366 | \fi |
9367 | \else | ||
9368 | \unless\ifekdn@nodelim | ||
9369 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi | ||
9370 | \fi | ||
9336 | \fi% | 9371 | \fi% |
9337 | \unless\ifekdn@nonum\current@ref@arg{\ekdn@labelb}{\ekdn@labele}\fi%\hskip .25em | 9372 | \unless\ifekdn@nonum\current@ref@arg{\ekdn@labelb}{\ekdn@labele}\fi%\hskip .25em |
9338 | \ifdefined\ekdn@lem | 9373 | \ifdefined\ekdn@lem |
@@ -10109,6 +10144,17 @@ Sample text with a \textcolor{red}{word} in red. | |||
10109 | \NewDocumentEnvironment{ekdpar}{}{\par}{\par} | 10144 | \NewDocumentEnvironment{ekdpar}{}{\par}{\par} |
10110 | % \end{macrocode} | 10145 | % \end{macrocode} |
10111 | % \end{environment} | 10146 | % \end{environment} |
10147 | % \begin{macro}{\ekdunspace} | ||
10148 | % Provisionally, this very simple command is used by \pkg{ekdosis} to | ||
10149 | % remove undesirable spaces, notably around empty lemmas in the | ||
10150 | % apparatus. As it is used internally, \cs{ekdunspace} is not | ||
10151 | % documented. | ||
10152 | % \begin{macrocode} | ||
10153 | \newlength{\ekdspace} | ||
10154 | \settowidth{\ekdspace}{ } | ||
10155 | \def\ekdunspace{\hskip-\ekdspace} | ||
10156 | % \end{macrocode} | ||
10157 | % \end{macro} | ||
10112 | % \paragraph{Configuration File} Finally, if a configuration file | 10158 | % \paragraph{Configuration File} Finally, if a configuration file |
10113 | % named |\jobname-ekd.cfg| can be found, this file is read and its | 10159 | % named |\jobname-ekd.cfg| can be found, this file is read and its |
10114 | % contents loaded into the document preamble. This provides a | 10160 | % contents loaded into the document preamble. This provides a |
@@ -10559,6 +10605,7 @@ local texpatttotags = { | |||
10559 | {a="\\teidirect%s+{(.-)}(%b{})", b="<%1>ekd@ob%2ekd@cb</%1>"}, | 10605 | {a="\\teidirect%s+{(.-)}(%b{})", b="<%1>ekd@ob%2ekd@cb</%1>"}, |
10560 | {a="\\altrfont%s+", b=""}, | 10606 | {a="\\altrfont%s+", b=""}, |
10561 | {a="\\endmark%s+", b=""}, | 10607 | {a="\\endmark%s+", b=""}, |
10608 | {a="\\unskip%s+", b=""}, | ||
10562 | {a="\\ekdpb%s+%*?%[(.-)%]{(.-)}", b=""}, | 10609 | {a="\\ekdpb%s+%*?%[(.-)%]{(.-)}", b=""}, |
10563 | {a="\\ekdpb%s+%*?{(.-)}", b=""}, | 10610 | {a="\\ekdpb%s+%*?{(.-)}", b=""}, |
10564 | {a="\\ekdpb%s+%*\\?", b=""}, | 10611 | {a="\\ekdpb%s+%*\\?", b=""}, |
@@ -12495,6 +12542,10 @@ local function remove_from_app(str) | |||
12495 | end | 12542 | end |
12496 | 12543 | ||
12497 | function ekdosis.mdvappend(str, teitype) | 12544 | function ekdosis.mdvappend(str, teitype) |
12545 | if current_lemma == "" | ||
12546 | then | ||
12547 | current_lemma = "\\ekdunspace" | ||
12548 | end | ||
12498 | if teitype == nil | 12549 | if teitype == nil |
12499 | then | 12550 | then |
12500 | return "\\linelabel{" .. current_lnlab .. "-b}\\wordboundary{}" | 12551 | return "\\linelabel{" .. current_lnlab .. "-b}\\wordboundary{}" |
@@ -2,7 +2,7 @@ | |||
2 | ;; This file is part of the `ekdosis' package | 2 | ;; This file is part of the `ekdosis' package |
3 | 3 | ||
4 | ;; ekdosis -- TEI xml compliant critical editions | 4 | ;; ekdosis -- TEI xml compliant critical editions |
5 | ;; Copyright (C) 2020--2021 Robert Alessi | 5 | ;; Copyright (C) 2020--2022 Robert Alessi |
6 | 6 | ||
7 | ;; Please send error reports and suggestions for improvements to Robert | 7 | ;; Please send error reports and suggestions for improvements to Robert |
8 | ;; Alessi <alessi@robertalessi.net> | 8 | ;; Alessi <alessi@robertalessi.net> |
diff --git a/ekdosis.ins b/ekdosis.ins index e0c3c84..de08215 100644 --- a/ekdosis.ins +++ b/ekdosis.ins | |||
@@ -12,7 +12,7 @@ License:| Released under the GNU General Public License v3 or later | |||
12 | This file is part of the `ekdosis' package | 12 | This file is part of the `ekdosis' package |
13 | 13 | ||
14 | ekdosis -- Typesetting TEI xml compliant critical editions | 14 | ekdosis -- Typesetting TEI xml compliant critical editions |
15 | Copyright (C) 2020--2021 Robert Alessi | 15 | Copyright (C) 2020--2022 Robert Alessi |
16 | 16 | ||
17 | Please send error reports and suggestions for improvements to Robert | 17 | Please send error reports and suggestions for improvements to Robert |
18 | Alessi <alessi@robertalessi.net> | 18 | Alessi <alessi@robertalessi.net> |