From bff3c06c3e2f8a20ef31b35d451ce91848be1053 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Mon, 16 Aug 2021 17:01:40 +0200 Subject: new global options: keyfloat and fitfloat. adapted makefile --- Makefile | 13 ++- ekdosis.dtx | 340 +++++++++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 279 insertions(+), 74 deletions(-) diff --git a/Makefile b/Makefile index ee9d46d..032cf9b 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,18 @@ local: uninst auctex mkdir -p $(UTREE)/{tex,source,doc}/lualatex/$(NAME) cp $(NAME).sty $(UTREE)/tex/lualatex/$(NAME) cp $(NAME).lua $(UTREE)/tex/lualatex/$(NAME) - if [ -e "$(NAME).pdf" ]; then cp $(NAME).pdf $(UTREE)/doc/lualatex/$(NAME); fi + if [ -e "$(NAME).pdf" ]; then cp $(NAME).pdf $(UTREE)/doc/lualatex/$(NAME) &&\ + cp -r $(SAMPLES)/ $(UTREE)/doc/lualatex/$(NAME); fi + +install: all + sudo mkdir -p $(LOCAL)/{tex,source,doc}/latex/$(NAME) + sudo cp $(NAME).dtx $(LOCAL)/source/latex/$(NAME) + sudo cp $(NAME).sty $(LOCAL)/tex/latex/$(NAME) + sudo cp $(NAME).pdf $(LOCAL)/doc/latex/$(NAME) + cp -r $(SAMPLES)/ $(LOCAL)/doc/latex/$(NAME) + +uninstall: + rm -rf $(LOCAL)/{tex,source,doc}/latex/$(NAME) zip: all ln -sf . $(NAME) diff --git a/ekdosis.dtx b/ekdosis.dtx index 716870c..7cfb10e 100644 --- a/ekdosis.dtx +++ b/ekdosis.dtx @@ -61,7 +61,7 @@ along with this program. If not, see %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{ekdosis} %<*package> - [2021/06/28 v1.3-dev Typesetting TEI xml-compliant critical editions] + [2021/08/16 v1.3-dev Typesetting TEI xml-compliant critical editions] % %<*driver> \begin{filecontents}[noheader,overwrite]{bibdata.xml} @@ -166,7 +166,7 @@ along with this program. If not, see Works of W. Shakespeare - H.N. + H. N. Hudson @@ -180,7 +180,7 @@ along with this program. If not, see Shakespeare's Complete Sonnets - C.M. + C. M. Walsh @@ -246,7 +246,7 @@ along with this program. If not, see author = {{Homer}}, title = {The Odyssey}, date = 1919, - editor = {Murray, A.T\adddot}, + editor = {Murray, A. T.}, volumes = 2, publisher = {Harvard University Press -- William Heinemann}, location = {Cambridge, MA. -- London} @@ -266,7 +266,7 @@ along with this program. If not, see } @Book{ReynoldsWilson1991, - author = {Reynolds, L. D. and Wilson, N. G}, + author = {Reynolds, L. D. and Wilson, N. G.}, title = {Scribes and Scholars}, year = {1991}, subtitle = {A Guide to the Translation of Greek and Latin @@ -311,6 +311,15 @@ along with this program. If not, see url = {http://www.teibyexample.org} } +@Software{babel, + title = {The Babel package}, + titleaddon = {Multilingual support for Plain TeX or LaTeX}, + author = {Bezos López, Javier and Braams, Johannes L.}, + url = {http://www.ctan.org/pkg/babel}, + date = {2020-07-13}, + version = {3.47} +} + @Software{extdash, title = {The Extdash package}, titleaddon = {A range of dash commands for compound words}, @@ -329,6 +338,16 @@ along with this program. If not, see version = {1.0} } +@Software{keyfloat, + title = {The Keyfloat package}, + subtitle = {Provides a key/value interface for generating + floats}, + author = {Dunn, Brian}, + url = {https://ctan.org/pkg/keyfloat}, + date = {2021-06-29}, + version = {2.06}, +} + @Software{lineno, title = {The Lineno package}, titleaddon = {Line numbers on paragraphs}, @@ -365,13 +384,14 @@ along with this program. If not, see version = {1.49} } -@Software{babel, - title = {The Babel package}, - titleaddon = {Multilingual support for Plain TeX or LaTeX}, - author = {Bezos López, Javier and Braams, Johannes L.}, - url = {http://www.ctan.org/pkg/babel}, - date = {2020-07-13}, - version = {3.47} +@Software{tcolorbox, + title = {The Tcolorbox package}, + subtitle = {Coloured boxes, for LaTeX examples and theorems, + etc}, + author = {Sturm, Thomas F.}, + url = {https://ctan.org/pkg/tcolorbox}, + date = {2021-06-14}, + version = {4.51}, } @Software{titleps, @@ -549,6 +569,7 @@ along with this program. If not, see \newfontfamily{\junicode}{Junicode}[ Ligatures=TeX, RawFeature={+hist}] +\newfontfamily\missaali{Missaali Regular} \babeltags{ancientgreek = greek} \def\sg#1{\textancientgreek{#1}} \usepackage[Old Standard]{mathfont} @@ -578,6 +599,8 @@ along with this program. If not, see \usepackage{manfnt} \usepackage{lettrine} \newcommand\danger{\lettrine[loversize=-.5]{\textdbend}{\hskip6pt}} +\newcommand\mansee{\lettrine[loversize=-.4, + lraise=.55]{\mantriangleright}{\hskip6pt}} \usepackage{metalogox} \usepackage{hologo} \usepackage{xcolor} @@ -607,7 +630,11 @@ along with this program. If not, see \bibinput{ekdosis} \usepackage[nospace,american]{varioref} \newcommand\phts{\phantomsection} +\usepackage{nameref} +\newcommand\vnref[1]{\vref{#1}, \enquote{\nameref{#1}}} \usepackage[style=oxnotes-inote,dashed]{biblatex} +\DefineBibliographyStrings{english}{ + seenote={cf\adddotspace n\adddotspace}} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -616,6 +643,27 @@ along with this program. If not, see } } } +% include seenote in parentheses +\renewbibmacro*{footcite:note}{% + \ifnameundef{labelname} + {\printfield{label}} + {\printnames{labelname}}% + \ifsingletitle + {} + {\setunit*{\printdelim{nametitledelim}}% + \printfield[title]{labeltitle}}% + \setunit*{\addspace}% + \printtext{% + \mkbibparens{% + \bibstring{seenote}\addnbspace + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% + \iftoggle{cbx:pageref} + {\ifsamepage{\the\value{instcount}} + {\csuse{cbx@f@\thefield{entrykey}}} + {} + {\addcomma\space\bibstring{page}\addnbspace + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} + {}}}} \ifbool{nocolordoc} { \usepackage{academicons} @@ -929,8 +977,9 @@ along with this program. If not, see % \end{keyfigure} % \end{comment} % -% The reader will find here, by way of introduction, a summarized -% version of the first part of an article published in the +% \lettrine{\color{cinnamon}\missaali +T+}{he reader} will find here, +% by way of introduction, a summarized version of the first part of an +% article published in the % \mkbibemph{\citefield{Alessi2020}{journaltitle}} as a contribution % to a Digital Humanities workshop held at Stanford University % (\printdate{2019-04-15}).\footcite{Alessi2020} @@ -1137,17 +1186,66 @@ along with this program. If not, see % follows. % % \danger The reader is invited to refer to the relevant sections of -% this documentation for more information on how to use them. +% this documentation for more information on how to use these options. % % \DescribeOption{layout}\phts\label{ref:layout-opt} -% |layout|$=$\verb+float|footins+\hfill\tcboxverb{Default: float}\\ -% By default, layers of critical notes are inserted as a floating -% environment to be printed at the bottom of pages. |layout=footins| -% can be set to insert critical notes in the default footnote block -% which can be considered to be a special kind of float that is -% printed at the bottom of pages. In this case, the apparatus criticus -% will be inserted between regular numbered footnotes, but will carry -% no footnote mark of its own. +% |layout|$=$\verb+float|footins|keyfloat|fitapp+ +% \hfill\tcboxverb{Default: float} +% \begin{enumerate} +% \item |layout=float| By default, layers of critical notes are +% inserted as floating environments to be printed at the bottom of +% pages. +% \item |layout=footins| This can be set to insert critical notes in +% the default footnote block which can be considered to be a special +% kind of float that is printed at the bottom of pages. In this +% case, the apparatus criticus will be inserted between regular +% numbered footnotes, but will carry no footnote mark of its own. +% \item \label{ref:keyfloat-opt}\newfeature[v1.3] |layout=keyfloat| +% does approximately the +% same as the default option |layout=float| but uses the +% \pkg{keyfloat} package\footcite{keyfloat} to generate the floating +% environments to be used as containers for critical footnotes. This +% way, the keys and values provided by this +% package\footcite[See][sect. 2.3, \ppno~13--16]{keyfloat} may be +% used to achieve such effects as append additional, informative +% text below the apparatus, draw a line around the apparatus block +% or change its width.\footnote{See below, \vpageref{ref:keyparopts} +% for more information.} +% \item \label{ref:fitapp-opt}\newfeature[v1.3] |layout=fitapp| As +% described below in \vnref{sec:oscillating-problem}, \pkg{ekdosis} +% may oscillate indefinitely between different sets of page +% decisions when one or more apparatus entries attached to the last +% lines of the edition text on a given page do not fit in the +% apparatus block. The reader will find in this section of the +% documentation a detailed account of several ways to circumvent +% this issue. Alternatively, or rather conjointly with those ways, +% |layout=fitapp| can be used to instruct \pkg{ekdosis} to scale +% down the characters of the apparatus block so that the contentious +% entries can fit. This mechanism uses the \enquote{fitting} library +% provided by the \pkg{tcolorbox} package.\footcite[sect.~22, +% \ppno~\pnfmt{438--449}]{tcolorbox} When this option is set, the +% apparatus criticus grows normally until a predefined height is +% reached. This height is set to |0.5\textheight| by +% default.\footnote{Of course, this height can be modified. See +% below \vpageref{ref:appheight} for details.} From this point on, +% the apparatus block ceases to grow; rather, the size of the +% characters is reduced to allow for additional entries. As a +% consequence of this rationale, the total number of entries on a +% given page must not be too high. It is therefore advisable to use +% |layout=fitapp| conjointly with |maxentries| as described below +% \vpageref{ref:maxentries} and in \vref{sec:oscillating-problem}. % +% \danger If used appropriately, this mechanism gives excellent +% typographical results, notably with complex edition texts of which +% the entries in the associated apparatus can be quite abundant in +% number. It may even put an end to the +% \enquote{\hyperref[sec:oscillating-problem]{oscillating problem}} +% in most of the cases. However, as suitable it may be for high +% quality typeset texts and final, camera-ready copies, its benefit +% comes at the expense of slowing down the compilation process. Yet +% looser algorithms can be selected when speed must prevail over +% quality for intermediate or draft copies.\footnote{See below +% \vpageref{ref:fitalgorithm} for more information.} +% \end{enumerate} % % \DescribeOption{divs}\phts\label{ref:divs-opt} % |divs|$=$\verb+ekdosis|latex+\hfill\tcboxverb{Default: ekdosis}\\ @@ -3214,18 +3312,56 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+ % \DescribeOption{initialrule} |initialrule|$=$\meta{command} % \phts\label{ref:initialrule}\hfill\bgroup\footnotesize % \tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt} (initially not set)}% -% \egroup -% \newfeature[v1.2] |initialrule| draws a separating rule between the -% edition text and all subsequent layers of critical notes. Of course, -% this option only makes sense when multiple-layer apparatus criticus -% are set. Therefore, it has no effect on single-layer apparatus +% \egroup \newfeature[v1.2] |initialrule| draws a separating rule +% between the edition text and all subsequent layers of critical +% notes. Of course, this option only makes sense when multiple-layer +% apparatus criticus are set. Therefore, it has no effect on +% single-layer apparatus % criticus.\\ % \DescribeOption{noinitialrule}\hfill\tcboxverb{Default: not set}\\ % This is a no-value option. It removes any previously set % |initialrule|. -% +% % An example of the way these hooks may be used is provided below in % \vref{lst:shak-sonnet1}. +% +% \noindent\textbf{Option Specific to the |layout=keyfloat| Global +% Setting}\footnote{See above \vref{ref:keyfloat-opt}.}\\ +% \DescribeOption{keyparopts}% +% \phts\label{ref:keyparopts}|keyparopts|$=$\meta{csv options} +% \hfill\tcboxverb{Default: empty}\\ +% \newfeature[v1.3] The comma-separated options that can be used are +% those described in the documentation of the \pkg{keyfloat} +% package.\footcite[sect.~2.3, \ppno~\pnfmt{13--15}]{keyfloat} As an +% example, |keyparopts={ft, tr={made with ekdosis},| % +% \allowbreak|lw=1.2}| will draw a tight frame around the apparatus +% block, have the words \enquote{made with \pkg{ekdosis}} printed +% below this block on the +% right and set its width to |1.2\linewidth|.\\ +% \textbf{Options Specific to the |layout=fitapp| Global +% Setting}\footnote{See above \vref{ref:fitapp-opt}.}\\ +% \DescribeOption{appheight}% +% \phts\label{ref:appheight}|appheight|$=$\meta{dimension} +% \hfill\tcboxverb{Default: 0.5\textheight}\\ +% \newfeature[v1.3] This option is used to change the maximum height +% up to which the apparatus block is allowed to grow before the size +% of the characters is reduced to allow for more entries. The value +% must be a dimension, namely a number followed by a length unit, such +% as |0.65\textheight|, |18cm| or |6in|.\\ +% \DescribeOption{fitalgorithm}% +% \phts\label{ref:fitalgorithm} +% \unskip|fitalgorithm|$=$\verb+fontsize|hybrid|areasize|squeeze+ +% \hfill\tcboxverb{Default: fontsize}\\ +% \newfeature[v1.3] The four algorithms that can be used to have the +% entries inserted in the apparatus criticus fit to the selected +% height are presented here from the tightest to the loosest, that is, +% the slowest to the fastest.\footnote{See \cite[446--449]{tcolorbox} +% for details and illustrative examples.} While it is advisable to +% limit the use of |fontsize| to high quality typesetting for +% camera-ready copies, |areasize| offers a satisfactory settlement +% when speed must be given an advantage for intermediate or draft +% copies. |squeeze| should be avoided as it gives results that are +% offensive to the sight and unacceptable to any reader. % % \subsection{Single-Layer Apparatus Criticus} % \label{sec:single-layer-app} @@ -3319,14 +3455,13 @@ texts=latin[xml:lang="la"]+\textcolor{red}{;}+ % \hfill\tcboxverb{Default: empty}\\ % The characters to be appended at the end of the apparatus % block.\footnote{See also n.~\vref{fn:rm-dots}.}\\ -% \DescribeOption{rule} |rule|$=$\meta{command}\verb+|+|none| +% \DescribeOption{rule} |rule|$=$\meta{command} % \hfill\tcboxverb{Default: \rule{0.4\columnwidth}{0.4pt}}\\ % As described above, |rule| is used to draw the separating line -% between the edition text and the apparatus criticus. |rule=none| can -% also be used to remove the line.\\ +% between the edition text and the apparatus criticus.\\ % \DescribeOption{norule}\hfill\tcboxverb{Default: not set}\\ -% |norule| does not accept any value and has the same effect as -% |rule=none|.\phts\label{ref:apparatus-settings-e}\\ +% |norule| does not accept any value and is used to remove the +% line.\phts\label{ref:apparatus-settings-e}\\ % \DescribeOption{lang} |lang|$=$\meta{languagename} % \newfeature[v1.2]\phts\label{ref:app-lang-opt} % \hfill\tcboxverb{Default: not set}\\ @@ -5313,7 +5448,7 @@ subtype="arabtex">'inna 'abI kAna mina % on odd pages the title of the edited text, then the current % division, then the page number, like so:--- % -% \needspace{4\baselineskip} +% \needspace{5\baselineskip} % \begin{xltabular}{1.0\linewidth}{|XcX|} % \multicolumn{3}{l}{Even pages:}\\ % \hline @@ -5339,9 +5474,9 @@ subtype="arabtex">'inna 'abI kAna mina % % \fi % -% The following example illustrates how the corresponding headers and -% footers could be prepared in a straightforward way with the help of -% the \pkg{titleps} package:\footcite{titleps}--- +% The following example finally illustrates how the corresponding +% headers and footers can be prepared in a straightforward way with +% the help of the \pkg{titleps} package:\footcite{titleps}--- % % \iffalse %<*example> @@ -5533,6 +5668,17 @@ subtype="arabtex">'inna 'abI kAna mina % many of them and \pkg{ekdosis} still oscillates between different % sets of page decisions. % +% \paragraph{The \texttt{fitapp} Global Option} +% \newfeature[v1.3] The rationale of this option is discussed above +% (see \vref{ref:fitapp-opt}). As this mechanism has the characters of +% the apparatus block scaled down to allow for more entries once a +% predefined height has been reached, \pkg{ekdosis} should settle down +% in most of the contentious cases.\footnote{That is, cases that arise +% \emph{after} the predefined height has been reached.} However, it is +% advisable to use |fitapp| conjointly with |maxentries| to prevent +% the number of allowed entries from being too high, which would +% result in the characters being too small or even illegible. +% % \subsection{Variae Quaestiones} % \label{sec:variae-quaestiones} % This section is about issues that are not strictly speaking part of @@ -6581,7 +6727,7 @@ Sample text with a \textcolor{red}{word} in red. % \fi \begin{minted}[linenos=false]{bibtex} @Book{ReynoldsWilson1991, - author = {Reynolds, L. D. and Wilson, N. G}, + author = {Reynolds, L. D. and Wilson, N. G.}, title = {Scribes and Scholars}, year = {1991}, subtitle = {A Guide to the Translation of Greek and Latin @@ -7405,6 +7551,8 @@ Sample text with a \textcolor{red}{word} in red. \RequirePackage{expkv-def} \newif\if@pkg@float \newif\if@pkg@footins +\newif\if@pkg@keyfloat +\newif\if@pkg@fitfloat \newif\if@pkg@ekddivs \newif\if@parnotesroman \newif\if@pkg@parnotes @@ -7412,7 +7560,9 @@ Sample text with a \textcolor{red}{word} in red. \newif\if@pkg@poetry@verse \ekvdefinekeys{ekdosis}{ choice layout = {float = {\@pkg@floattrue}, - footins = {\@pkg@floatfalse\@pkg@footinstrue}}, + footins = {\@pkg@floatfalse\@pkg@footinstrue}, + keyfloat = {\@pkg@floatfalse\@pkg@keyfloattrue}, + fitfloat = {\@pkg@floatfalse\@pkg@fitfloattrue}}, initial layout = float, unknown-choice layout = \PackageError{ekdosis}{unknown layout=#1}{`layout' must be either `float' or `footins'.}, @@ -7462,6 +7612,18 @@ Sample text with a \textcolor{red}{word} in red. \RequirePackage{lineno} \if@pkg@float \RequirePackage{trivfloat} + \trivfloat{ekdapparatus} +\fi +\if@pkg@keyfloat + \RequirePackage{keyfloat} + \def\ekd@keyparopts#1{% + \def\ekd@insert@keyparapp{% + \keyparbox[!b]{#1}{\ekd@insert@apparatus}}} + \ekd@keyparopts{} +\fi +\if@pkg@fitfloat + \RequirePackage{tcolorbox} + \tcbuselibrary{fitting,skins} \fi \RequirePackage{refcount} \RequirePackage{zref-user} @@ -7487,7 +7649,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \paragraph{Setup} % \begin{macro}{\ekdsetup} -% \changes{v1.3}{2021/06/28}{new command for global options} +% \changes{v1.3}{2021/08/16}{new command for global options} % \cs{ekdsetup} is used to specify options that affect the general % behavior of \pkg{ekdosis}. It is a preamble-only command. % \begin{macrocode} @@ -7510,6 +7672,8 @@ Sample text with a \textcolor{red}{word} in red. % \texttt{lemmastyle}} % \changes{v1.2}{2021/04/02}{general hooks: new option % \texttt{readingstyle}} +% \changes{v1.3}{2021/08/16}{general hooks: new options +% \texttt{keyparopts} and \texttt{appheight}} % \begin{macrocode} \ekvdefinekeys{ekd@hooks}{ store appfontsize = \ekd@appfontsize, @@ -7517,6 +7681,17 @@ Sample text with a \textcolor{red}{word} in red. store postrefnum = \ekd@postrefnum, store lemmastyle = \ekd@lemmastyle, store readingstyle = \ekd@readingstyle, + code keyparopts = \if@pkg@keyfloat\ekd@keyparopts{#1}\fi, + dimen appheight = \ekd@app@height, + initial appheight = .5\textheight, + choice fitalgorithm = {fontsize = \def\ekd@fit@algorithm{fontsize}, + hybrid = \def\ekd@fit@algorithm{hybrid}, + areasize = \def\ekd@fit@algorithm{areasize}, + squeeze = \def\ekd@fit@algorithm{squeeze}}, + initial fitalgorithm = fontsize, + unknown-choice fitalgorithm = \PackageError{ekdosis}{unknown + fitalgorithm=#1}{`fitalgorithm' must be either `fontsize', + `hybrid', `areasize' or `squeeze'.}, code initialrule = \def\ekd@initial@rule{#1\NLS}, default initialrule = \rule{0.4\columnwidth}{0.4pt}, noval noinitialrule = \undef\ekd@initial@rule, @@ -7718,7 +7893,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\teidirect} -% \changes{v1.3}{2021/06/28}{direct insertion of elements in the +% \changes{v1.3}{2021/08/16}{direct insertion of elements in the % \texttt{TEI xml} file} % \cs{teidirect}\oarg{xml attributes}\marg{xml element}\marg{code} % does nothing in \LaTeX. Its only use is to insert elements in the @@ -8085,7 +8260,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\SetApparatusNoteLanguage} -% \changes{v1.3}{2021/06/28}{defines an alternate language to be +% \changes{v1.3}{2021/08/16}{defines an alternate language to be % applied in note apparatus entries} % \cs{SetApparatusNoteLang}\marg{languagename} can be used when % it is needed to apply in entries introduced by the \cs{note} command @@ -8168,10 +8343,36 @@ Sample text with a \textcolor{red}{word} in red. % commands need to know whether they are called from inside the % apparatus criticus, a conditional is first defined. % \begin{macrocode} -\if@pkg@float - \trivfloat{ekdapparatus} -\fi \newif\ifekd@inside@app +\if@pkg@fitfloat + \newtcboxfit{\ekdfitapp}{% + blankest, + fit basedim = \f@size pt, + fit fontsize macros, + fit height from=0pt to \ekd@app@height, + fit algorithm = \ekd@fit@algorithm, + float=!b} +\fi +\long\def\ekd@insert@apparatus{% + \unless\ifekd@mapps + \ifrtl@app\pardir TRT\leavevmode\textdir TRT\else + \pardir TLT\leavevmode\textdir TLT\fi + \fi + \if@pkg@parnotes + \if@parnotesroman + \renewcommand*{\theparnotemark}{\roman{parnotemark}}\fi + \parnoteclear\fi + \ekd@inside@apptrue + \ekd@appfontsize + \ifekd@mapps + \ifdefined\ekd@initial@rule + \ekd@initial@rule + \fi + \fi + \apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi + \ekd@inside@appfalse + \if@pkg@parnotes\parnotes\parnotereset\fi +}% \def\add@@apparatus{% \if@pkg@parnotes\parnotes\else\fi \if@pkg@footins @@ -8200,26 +8401,15 @@ Sample text with a \textcolor{red}{word} in red. \fi \if@pkg@float \begin{ekdapparatus}[!b]% - \unless\ifekd@mapps - \ifrtl@app\pardir TRT\leavevmode\textdir TRT\else - \pardir TLT\leavevmode\textdir TLT\fi - \fi - \if@pkg@parnotes - \if@parnotesroman - \renewcommand*{\theparnotemark}{\roman{parnotemark}}\else\fi - \parnoteclear\else\fi - \ekd@inside@apptrue - \ekd@appfontsize - \ifekd@mapps - \ifdefined\ekd@initial@rule - \ekd@initial@rule - \fi - \fi - \apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi - \ekd@inside@appfalse - \if@pkg@parnotes\parnotes\parnotereset\else\fi + \ekd@insert@apparatus \end{ekdapparatus}% \fi + \if@pkg@keyfloat + \ekd@insert@keyparapp + \fi + \if@pkg@fitfloat + \ekdfitapp{\ekd@insert@apparatus}% + \fi } % \end{macrocode} % Before inserting any new entry, \cs{add@apparatus} calls @@ -8373,14 +8563,14 @@ Sample text with a \textcolor{red}{word} in red. \begingroup \ekvset{appnote}{#1}% \ifekd@isinapp\ekd@appinapptrue\fi - \ekd@isinapptrue% + \ekd@isinapptrue \stepcounter{ekd@lab}% \zlabel{ekd:\theekd@lab}% \luadirect{ekdosis.storeabspg( \luastring{\zref@extract{ekd:\theekd@lab}{abspage}})}% - \ifekd@state\add@apparatus\fi% + \ifekd@state\add@apparatus\fi \luadirect{tex.sprint(ekdosis.removesp(\luastringN{#2}))}% - \ekd@isinappfalse% + \ekd@isinappfalse \ekd@appinappfalse \endgroup} % \end{macrocode} @@ -9332,7 +9522,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\endmark} -% \changes{v1.3}{2021/06/28}{prints the last-emitted mark of the +% \changes{v1.3}{2021/08/16}{prints the last-emitted mark of the % preceding page} % By default, \cs{ekdmark} described below prints the first mark % that is emitted on a given page and ignores the mark corresponding @@ -9354,7 +9544,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\edkmark} -% \changes{v1.3}{2021/06/28}{prints marks in headers or footers} +% \changes{v1.3}{2021/08/16}{prints marks in headers or footers} % \cs{ekdmark} is an argument-less command called in commands used to % make headers and footers where the marks stored by means of the % |mark| optional argument of \cs{ekddiv} are to be printed. @@ -9365,7 +9555,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\ekdprintmark} -% \changes{v1.3}{2021/06/28}{prints or removes the marks in headers +% \changes{v1.3}{2021/08/16}{prints or removes the marks in headers % and footers} \cs{ekdprintmark}\marg{selector}\marg{signpost} The % signposts printed in headers and footers must be % passed as second argument of \cs{ekdprintmark} so that \pkg{ekdosis} @@ -9403,7 +9593,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\ekdnofhmarks} -% \changes{v1.3}{2021/06/28}{removes headers and footers on specific +% \changes{v1.3}{2021/08/16}{removes headers and footers on specific % pages} Once the signposts are marked with \cs{ekdprintmark}, % \cs{ekdnohfmarks} has the same effect as the \LaTeX\ standard % command \cs{thispagestyle}|{empty}|. @@ -9414,7 +9604,7 @@ Sample text with a \textcolor{red}{word} in red. % \end{macrocode} % \end{macro} % \begin{macro}{\ekdresethfmarks} -% \changes{v1.3}{2021/06/28}{marks headers and footers as printable} +% \changes{v1.3}{2021/08/16}{marks headers and footers as printable} % \cs{ekdresethfmarks} can be used in rare cases when it is needed to % reset headers and footers to their original, viz.\ printable state. % \begin{macrocode} @@ -10063,6 +10253,10 @@ local cmdtotags = { {a="marginpar", b="note", c=" place=\"margin\""}, {a="footnote", b="note", c=" place=\"bottom\""}, {a="enquote", b="quote", c=""}, + {a="prname *", b="span", + c=" xml:lang=\"ar-Latn\" type=\"transliterated\""}, + {a="prname", b="span", + c=" xml:lang=\"ar-Latn\" type=\"transliterated\" subtype=\"arabtex\""}, {a="txtrans", b="s", c=" xml:lang=\"ar-Latn\" type=\"transliterated\""}, {a="textbf", b="hi", c=" rend=\"bold\""}, {a="textit", b="hi", c=" rend=\"italic\""}, @@ -10352,7 +10546,7 @@ end local function relocate_notes(str) str = gsub(str, inlem, function(arg) local notes = {} - for i in string.gmatch(arg, "%.-%<%/note%>") + for i in string.gmatch(arg, "%.-%<%/note%>") do table.insert(notes, i) end -- cgit v1.2.3