aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ekdosis.dtx66
1 files changed, 56 insertions, 10 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx
index 6b3d97d..f0dc576 100644
--- a/ekdosis.dtx
+++ b/ekdosis.dtx
@@ -1111,7 +1111,8 @@ yesterday.
1111% the edition text and as the first part of a new entry in the 1111% the edition text and as the first part of a new entry in the
1112% apparatus criticus, preceded by the line number where it occurs or a 1112% apparatus criticus, preceded by the line number where it occurs or a
1113% broad space if the entry refers to the same line as the preceding 1113% broad space if the entry refers to the same line as the preceding
1114% entry. The optional argument of \cs{lem} accepts the following 1114% entry. \dummy\label{ref:lem-opts-b}The optional argument of \cs{lem}
1115% accepts the following
1115% comma-separated list of \enquote{name$=$value} arguments:---\\ 1116% comma-separated list of \enquote{name$=$value} arguments:---\\
1116% \DescribeOption{wit} |wit|$=$\meta{csv list of witnesses}\\ 1117% \DescribeOption{wit} |wit|$=$\meta{csv list of witnesses}\\
1117% While a single witness may be recorded as in |wit=A|, 1118% While a single witness may be recorded as in |wit=A|,
@@ -1120,12 +1121,11 @@ yesterday.
1120% |wit={A,B,C}|. \dummy\label{ref:mss-sep-families}It must be noted 1121% |wit={A,B,C}|. \dummy\label{ref:mss-sep-families}It must be noted
1121% that witnesses can be grouped by using spaces as separators, like 1122% that witnesses can be grouped by using spaces as separators, like
1122% so: \verb*|wit={A,B,C, D,E,F}|.\\ 1123% so: \verb*|wit={A,B,C, D,E,F}|.\\
1123% \label{ref:lem-opts-b}
1124% \DescribeOption{alt} |alt|$=$\meta{alternate lemma}\\ 1124% \DescribeOption{alt} |alt|$=$\meta{alternate lemma}\\
1125% While the mandatory argument of \cs{lem}, \meta{lemma text}, is 1125% While the mandatory argument of \cs{lem}, \meta{lemma text}, is
1126% always used to print the edition text in the upper part of the page, 1126% always used to print the edition text in the upper part of the page,
1127% \meta{alternate lemma}, if specified, supersedes what is printed in 1127% \meta{alternate lemma}, if specified, supersedes what is printed in
1128% the related unit of the apparatus criticus. This mechanism is useful 1128% the related entry of the apparatus criticus. This mechanism is useful
1129% in more than one respect. For instance, it can be used to insert 1129% in more than one respect. For instance, it can be used to insert
1130% abbreviated lemmata in the apparatus criticus, or to introduce an 1130% abbreviated lemmata in the apparatus criticus, or to introduce an
1131% alternate way of writing entries with Latin technical terms in the 1131% alternate way of writing entries with Latin technical terms in the
@@ -2114,12 +2114,12 @@ yesterday.
2114% \begin{macrocode} 2114% \begin{macrocode}
2115\RequirePackage{iftex} 2115\RequirePackage{iftex}
2116% \end{macrocode} 2116% \end{macrocode}
2117% \pkg{ekdosis} requires {\LuaLaTeX} of course. Issue an error 2117% Of course, \pkg{ekdosis} requires {\LuaLaTeX}. Issue an error
2118% if the document is processed with another engine. 2118% if the document is processed with another engine.
2119% \begin{macrocode} 2119% \begin{macrocode}
2120\RequireLuaTeX 2120\RequireLuaTeX
2121% \end{macrocode} 2121% \end{macrocode}
2122% Packages that are required by \pkg{ekdosis}: 2122% Set global options:---
2123% \begin{macrocode} 2123% \begin{macrocode}
2124\RequirePackage{xkeyval} 2124\RequirePackage{xkeyval}
2125\newif\if@pkg@float 2125\newif\if@pkg@float
@@ -2173,6 +2173,9 @@ yesterday.
2173 \else\fi\fi\fi} 2173 \else\fi\fi\fi}
2174\ExecuteOptionsX{layout,divs} 2174\ExecuteOptionsX{layout,divs}
2175\ProcessOptionsX\relax 2175\ProcessOptionsX\relax
2176% \end{macrocode}
2177% Packages that are required by \pkg{ekdosis}:---
2178% \begin{macrocode}
2176\RequirePackage{luacode} 2179\RequirePackage{luacode}
2177\RequirePackage{paracol} 2180\RequirePackage{paracol}
2178\RequirePackage{expkv-def} 2181\RequirePackage{expkv-def}
@@ -2187,7 +2190,7 @@ yesterday.
2187 \RequirePackage{parnotes} 2190 \RequirePackage{parnotes}
2188\fi 2191\fi
2189% \end{macrocode} 2192% \end{macrocode}
2190% Here begins the real work: load |ekdosis.lua|: 2193% Here begins the real work: load |ekdosis.lua|:---
2191% \begin{macrocode} 2194% \begin{macrocode}
2192\luadirect{dofile(kpse.find_file("ekdosis.lua"))} 2195\luadirect{dofile(kpse.find_file("ekdosis.lua"))}
2193% \end{macrocode} 2196% \end{macrocode}
@@ -2196,11 +2199,14 @@ yesterday.
2196 \luadirect{ekdosis.closestream()} 2199 \luadirect{ekdosis.closestream()}
2197} 2200}
2198% \end{macrocode} 2201% \end{macrocode}
2199% General settings 2202% General settings:---
2200% \begin{macrocode} 2203% \begin{macrocode}
2201\renewcommand\linenumberfont{\normalfont\footnotesize} 2204\renewcommand\linenumberfont{\normalfont\footnotesize}
2202% \end{macrocode} 2205% \end{macrocode}
2203% Hooks 2206% \begin{macro}{\SetEkdosisHooks} \cs{SetEkdosisHooks} is used to set
2207% hooks meant to be shared by all declared apparatuses, such as the
2208% font size, the format of numerals, \emph{\&c.} This command can be
2209% used in the preamble or at any point of the document.
2204% \begin{macrocode} 2210% \begin{macrocode}
2205\ekvdefinekeys{ekd@hooks}{ 2211\ekvdefinekeys{ekd@hooks}{
2206 store appfontsize = \ekd@appfontsize, 2212 store appfontsize = \ekd@appfontsize,
@@ -2212,7 +2218,8 @@ yesterday.
2212} 2218}
2213\NewDocumentCommand{\SetEkdosisHooks}{m}{\ekvset{ekd@hooks}{#1}} 2219\NewDocumentCommand{\SetEkdosisHooks}{m}{\ekvset{ekd@hooks}{#1}}
2214% \end{macrocode} 2220% \end{macrocode}
2215% Build and process the list of witnesses and hands. 2221% \end{macro}
2222% Build and process the list of witnesses and hands:---
2216% \begin{macrocode} 2223% \begin{macrocode}
2217\ekvdefinekeys{ekd@witness}{ 2224\ekvdefinekeys{ekd@witness}{
2218 store settlement = \settlement@value, 2225 store settlement = \settlement@value,
@@ -2223,6 +2230,14 @@ yesterday.
2223 store msName = \msName@value, 2230 store msName = \msName@value,
2224 store origDate = \origDate@value 2231 store origDate = \origDate@value
2225} 2232}
2233% \end{macrocode}
2234% \begin{macro}{\DeclareWitness} \cs{DeclareWitness} is a
2235% preamble-only command. It takes three mandatory arguments and one
2236% optional argument. It is meant to collect data related to
2237% witnesses to be used in the edition text. Data are stored in |Lua|
2238% tables and are used to encode the |<listWit>| part of the |TEI|
2239% header as well as the Conspectus Siglorum in the edition in print.
2240% \begin{macrocode}
2226\NewDocumentCommand{\DeclareWitness}{m m m O{}}{% 2241\NewDocumentCommand{\DeclareWitness}{m m m O{}}{%
2227 \bgroup 2242 \bgroup
2228 \ekvset{ekd@witness}{#4} 2243 \ekvset{ekd@witness}{#4}
@@ -2240,6 +2255,15 @@ yesterday.
2240 \egroup 2255 \egroup
2241 } 2256 }
2242\@onlypreamble\DeclareWitness 2257\@onlypreamble\DeclareWitness
2258% \end{macrocode}
2259% \end{macro}
2260% \begin{macro}{\DeclareHand} As \cs{DeclareWitness}, \cs{DeclareHand}
2261% is a preamble-only command meant to collect data and store them in
2262% |Lua| tables. It takes three mandatory arguments and one optional
2263% argument. The second argument is used to connect the hand to a
2264% declared witness it is related to. Then the table in which this
2265% witness is recorded can be fed with new data.
2266% \begin{macrocode}
2243\NewDocumentCommand{\DeclareHand}{m m m +O{}}{ 2267\NewDocumentCommand{\DeclareHand}{m m m +O{}}{
2244 \luadirect{ekdosis.newhand(\luastringN{#1}, 2268 \luadirect{ekdosis.newhand(\luastringN{#1},
2245 \luastringN{#2}, 2269 \luastringN{#2},
@@ -2247,17 +2271,39 @@ yesterday.
2247 \luastringN{#4})} 2271 \luastringN{#4})}
2248} 2272}
2249\@onlypreamble\DeclareHand 2273\@onlypreamble\DeclareHand
2274% \end{macrocode}
2275% \end{macro}
2276% \begin{macro}{\DeclareScholar} There is also a table in which are
2277% collected data related to scholars' names to be used in the
2278% apparatus criticus. \cs{DeclareScholar} is a preamble-only command
2279% and takes two mandatory arguments: a unique id and a shorthand to
2280% be used in the apparatus criticus which can be extracted from a
2281% bibliographic database.
2282% \begin{macrocode}
2250\NewDocumentCommand{\DeclareScholar}{m m}{ 2283\NewDocumentCommand{\DeclareScholar}{m m}{
2251 \luadirect{ekdosis.newscholar(\luastringN{#1}, 2284 \luadirect{ekdosis.newscholar(\luastringN{#1},
2252 \luastringN{#2})} 2285 \luastringN{#2})}
2253} 2286}
2254\@onlypreamble\DeclareScholar 2287\@onlypreamble\DeclareScholar
2288% \end{macrocode}
2289% \end{macro}
2290% \begin{macro}{\DeclareShorthand} \cs{DeclareShorthand} is a
2291% preamble-only command that can be used to record manuscript
2292% families or any kind of shorthand to be used to refer to
2293% previously declared ids, for example the shorthand |codd| can be
2294% used to point to all declared witnesses. This command takes three
2295% mandatory arguments: a unique id, its rendition in print and a
2296% csv-list of previously declared ids.
2297% \begin{macrocode}
2255\NewDocumentCommand{\DeclareShorthand}{m m m}{ 2298\NewDocumentCommand{\DeclareShorthand}{m m m}{
2256 \luadirect{ekdosis.newshorthand(\luastringN{#1}, 2299 \luadirect{ekdosis.newshorthand(\luastringN{#1},
2257 \luastringN{#2}, 2300 \luastringN{#2},
2258 \luastringN{#3})} 2301 \luastringN{#3})}
2259} 2302}
2260\@onlypreamble\DeclareShorthand 2303\@onlypreamble\DeclareShorthand
2304% \end{macrocode}
2305% \end{macro}
2306% \begin{macrocode}
2261\NewDocumentCommand{\getsiglum}{m}{% 2307\NewDocumentCommand{\getsiglum}{m}{%
2262 \luadirect{tex.sprint(ekdosis.getsiglum(\luastringN{#1}))}% 2308 \luadirect{tex.sprint(ekdosis.getsiglum(\luastringN{#1}))}%
2263} 2309}
@@ -4729,7 +4775,7 @@ end
4729% \iffalse 4775% \iffalse
4730%<*examples> 4776%<*examples>
4731% \fi 4777% \fi
4732% \begin{minted}[firstnumber=last]{latex} 4778% \begin{minted}{latex}
4733\documentclass[12pt]{article} 4779\documentclass[12pt]{article}
4734\usepackage{fontspec} 4780\usepackage{fontspec}
4735\usepackage[english]{babel} 4781\usepackage[english]{babel}