aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2022-01-04 13:16:28 +0100
committerRobert Alessi <alessi@robertalessi.net>2022-01-04 13:16:28 +0100
commitdb95b2cda2d37112c89a4e41d0e2d2e65fa34807 (patch)
treed153ed72fb5c67c330120834bf81740ef7fcc90f
parent3894140d19231e00b61eca4af8d803514efaac3e (diff)
downloadekdosis-db95b2cda2d37112c89a4e41d0e2d2e65fa34807.tar.gz
new option 'nodelim' for \lem and \note. remove unwanted spaces around empty lemmas
-rw-r--r--README.md4
-rw-r--r--ekdosis.dtx101
-rw-r--r--ekdosis.el2
-rw-r--r--ekdosis.ins2
4 files changed, 80 insertions, 29 deletions
diff --git a/README.md b/README.md
index ae7e851..9787430 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ License and Disclamer
23===================== 23=====================
24ekdosis – Typesetting TEI xml-Compliant Critical Editions 24ekdosis – Typesetting TEI xml-Compliant Critical Editions
25 25
26Copyright ⓒ 2020--2021 Robert Alessi 26Copyright ⓒ 2020--2022 Robert Alessi
27 27
28Please send error reports and suggestions for improvements to Robert 28Please send error reports and suggestions for improvements to Robert
29Alessi: 29Alessi:
@@ -62,7 +62,7 @@ This release of ekdosis consists of the following source files:
62 62
63License Applicable to the Documentation 63License Applicable to the Documentation
64--------------------------------------- 64---------------------------------------
65Copyright ⓒ 2020--2021 Robert Alessi 65Copyright ⓒ 2020--2022 Robert Alessi
66 66
67The documentation file `ekdosis.pdf` that is generated from the 67The 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 @@
28This file is part of the `ekdosis' package 28This file is part of the `ekdosis' package
29 29
30ekdosis -- Typesetting TEI xml-compliant critical editions 30ekdosis -- Typesetting TEI xml-compliant critical editions
31Copyright (C) 2020--2021 Robert Alessi 31Copyright (C) 2020--2022 Robert Alessi
32 32
33Please send error reports and suggestions for improvements to Robert 33Please send error reports and suggestions for improvements to Robert
34Alessi <alessi@robertalessi.net> 34Alessi <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)
12495end 12542end
12496 12543
12497function ekdosis.mdvappend(str, teitype) 12544function 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{}"
diff --git a/ekdosis.el b/ekdosis.el
index d128b7a..8f6d8ab 100644
--- a/ekdosis.el
+++ b/ekdosis.el
@@ -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
12This file is part of the `ekdosis' package 12This file is part of the `ekdosis' package
13 13
14ekdosis -- Typesetting TEI xml compliant critical editions 14ekdosis -- Typesetting TEI xml compliant critical editions
15Copyright (C) 2020--2021 Robert Alessi 15Copyright (C) 2020--2022 Robert Alessi
16 16
17Please send error reports and suggestions for improvements to Robert 17Please send error reports and suggestions for improvements to Robert
18Alessi <alessi@robertalessi.net> 18Alessi <alessi@robertalessi.net>