summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/eledform
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/eledform
Initial commit
Diffstat (limited to 'macros/latex/contrib/eledform')
-rw-r--r--macros/latex/contrib/eledform/README.md24
-rw-r--r--macros/latex/contrib/eledform/eledform.dtx354
-rw-r--r--macros/latex/contrib/eledform/eledform.ins55
-rw-r--r--macros/latex/contrib/eledform/eledform.pdfbin0 -> 82008 bytes
-rw-r--r--macros/latex/contrib/eledform/example.pdfbin0 -> 47703 bytes
-rw-r--r--macros/latex/contrib/eledform/example.tex32
-rw-r--r--macros/latex/contrib/eledform/include/stemma.tex23
-rw-r--r--macros/latex/contrib/eledform/makefile44
8 files changed, 532 insertions, 0 deletions
diff --git a/macros/latex/contrib/eledform/README.md b/macros/latex/contrib/eledform/README.md
new file mode 100644
index 0000000000..47913a6b97
--- /dev/null
+++ b/macros/latex/contrib/eledform/README.md
@@ -0,0 +1,24 @@
+© Maïeul Rouquette 2012
+
+Licence LPLL 1.3.c
+
+http://www.latex-project.org/lppl/lppl-1-3c.html
+
+This package provides formal commands to describe textual variants.
+It uses eledmac.
+
+The distributions contains :
+- eledform.dtx
+- eledform.ins
+- eledform.PDF
+- include/*
+- example.tex
+- example.pdf
+
+and the present README.md file
+
+Public repository : https://github.com/maieul/eledform.
+
+Support for new features and debug : https://github.com/maieul/eledform/issues
+
+This package is unmaintened. \ No newline at end of file
diff --git a/macros/latex/contrib/eledform/eledform.dtx b/macros/latex/contrib/eledform/eledform.dtx
new file mode 100644
index 0000000000..31114fc74d
--- /dev/null
+++ b/macros/latex/contrib/eledform/eledform.dtx
@@ -0,0 +1,354 @@
+%\iffalse meta-comment
+%
+% Copyright (C) 2012 by Maïeul Rouquette
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2003/06/01 or later.
+% This work has the LPPL maintenance status "unmaintained".
+%
+% \fi
+
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{polyglossia,csquotes}
+\setmainlanguage{english}
+\usepackage[noreledmac]{eledmac}
+\usepackage{eledform,tikz,tikz-qtree}
+\usepackage{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\DocInput{eledform.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{106}
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \changes{v1.0}{2012/10/01}{First public release.}
+% \changes{v1.1}{2012/10/08}{News options to change the order of the elements.}
+% \changes{v1.1a}{2015/13/08}{Package unmaintened.}
+% \GetFileInfo{eledform.sty}
+%\DoNotIndex{\csgdef,\if,\fi,\else,\listgadd}
+%
+%\title{The eledform extension for eledmac}
+% \author{Maïeul Rouquette \\ maieul at maieul dot net}
+% \date{\fileversion\space\filedate}
+% \maketitle
+% \textbf{This package is unmaintened.
+% Maïeul Rouquette has no more time to maintain it.
+% }
+% \begin{abstract}
+% The \emph{eledmac} package provides tools to make critical editions of texts.
+% But it doesn't provide any formalism to note the textual variants: each user has to make his own formalism.
+% This package tries to provide a formalism
+% which distinguishes between the \emph{formal} notation of textual variants and their typographical notation\footnote{The original idea of this package is described at \url{http://geekographie.maieul.net/Formaliser-les-variantes}. You can suggest new features or report bugs at \url{https://github.com/maieul/eledform/issues}.}.
+% \end{abstract}
+% \tableofcontents
+% \section{Use}
+% \subsection{One Example}
+% \subsubsection{Without formalism}
+% Suppose this case :
+% \begin{enumerate}
+% \item One text, with fives manuscripts: P, A, B, C, D.
+% P is the manuscript which is used as reference.
+% Variants in A, B, C, D are shown in the apparatus.
+% \item The pseudo-word \enquote{lorem} has these variants:
+% \begin{description}
+% \item[A and B]the word is omitted.
+% \item[C]the word is replaced by \enquote{loram}.
+% \item[D]the word is replaced by \enquote{lorim}.
+% \end{description}
+% \end{enumerate}
+% Without formalism, you could write:
+% \begin{verbatim}
+% \edtext{lorem}{\Afootnote{AB \emph{omit}; C loram; D lorim}}
+% \end{verbatim}
+% Which produces this critical note:
+% \begin{quote}
+% lorem] AB omit; C loram; D lorim
+% \end{quote}
+% There are some limits for this method:
+% \begin{itemize}
+% \item If we want to change display, we must changes all notes.
+% \item We can't produce statistics.
+% \item Difficulty to export in other format than \LaTeX.
+% \item No method to check if we're making mistakes regarding to the manuscripts.
+% \end{itemize}
+% \subsubsection{With formalism}
+% To describe the same situation, we propose this formalism :
+% \begin{verbatim}
+%\var{lorem}{A,B}{
+%{{C}{loram}},
+%{{D}{lorim}}
+%}
+% \end{verbatim}
+% With \emph{eledform}, this will produce the same result as the non-formalised form,
+% but without the described inconveniences.
+% You can see an example in the file \href{example.tex}{example.tex}, which produces \href{example.pdf}{example.pdf}.
+% \subsection{References}
+% \subsubsection{Declare the manuscripts}
+% \DescribeMacro{\manuscripts}
+% You have to use \cs{Manuscripts}\marg{list}
+% to provide the list of manuscripts used in the apparatus.
+% \LaTeX\ prints a warning message in the log file if you're referring to a
+% manuscript that is not declared before.
+% It also prints an error in the resulting file.
+% The list of manuscripts is a comma separated list:
+% \begin{verbatim}
+% \manuscripts{A,B,C,D}
+% \end{verbatim}
+% \subsubsection{Declare variants}
+% \DescribeMacro{\var}
+% The main macro is \cs{var}\oarg{short}\marg{lemma}\marg{del}\marg{variants}\oarg{other}.
+% This macro takes five arguments, two are optional.
+% \begin{description}
+% \item[\meta{short} (optional)]an abbreviated version of the lemma for the notes.
+% \item[\meta{lemma}]the lemma which has variants.
+% \item[\meta{del}]a comma separated list of manuscripts where the lemma is ommited.
+% \item[\meta{variants}]a comma separated list of variants. Each variant has the form \verb+{+\marg{manuscripts}\marg{variant}\verb+}+, where:
+% \begin{description}
+% \item[\meta{manuscripts}]a comma separated list of manuscripts where the variant is.
+% \item[\meta{variant}]the variant itself.
+% \end{description}
+% \item[\meta{other}(optional)]other code linked to the lemma, for example a call to an critical footnote.
+% \end{description}
+% \subsubsection{Customize}
+% \DescribeMacro{\manposition}
+% By default (since v1.1), the manuscripts are printed after the variant.
+% With \cs{manposition}\marg{position}, where position is any text except \verb+last+, you can change it.
+%
+% \DescribeMacro{\omitposition}
+% By default, the omission are printed at the begining of the variants.
+% With \cs{omitposition}\marg{position}, where position is any text except \verb+first+, you can change it.
+%
+% \DescribeMacro{\varseries}
+% By default, the notes for textual variants are printed in the A series of footnotes.
+% With \cs{varseries}\marg{letter}, you can change it.
+%
+% \DescribeMacro{\omittext}
+% When a manuscript omits a lemma, \emph{eledform} prints \verb|\emph{omit}|.
+% You can change it with \cs{omittext}\marg{text}.
+%
+% \DescribeMacro{\manvarseparator}
+% By default, a non breakable space is printed between the manuscript letter and the variant.
+% You can change it with \cs{manvarseparator}\marg{separator}.
+%
+% \DescribeMacro{\varseparator}
+% By default, a breakable space is printed between each variant of a lemma.
+% You can change it with \cs{varseparator}\marg{separator}.
+%\StopEventually{\PrintChanges}
+% \section{Implementation}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eledform}[2015/08/13 v1.1a formalism for eledmac]
+\RequirePackage{eledmac}
+% \end{macrocode}
+% \subsection{Define manuscripts}
+% \begin{macro}{\manuscripts@}
+% The \cs{manuscripts@} macro is an etoolbox list.
+% \begin{macrocode}
+\def\manuscripts@{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\manuscripts}
+% The \cs{manuscripts} macro only fills the \cs{manuscripts} macro.
+% \begin{macrocode}
+\newcommand{\manuscript}[1]{%
+ \renewcommand{\do}[1]{\listgadd{\manuscripts@}{##1}}%
+ \docsvlist{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \subsection{Print the critical notes}
+% \begin{macro}{\var}
+% The \cs{var} macro is the only public macro, which calls all private macros.
+% \begin{macrocode}
+\newcommandx*{\var}[5][1,5,usedefault]{%
+% \end{macrocode}
+% First, call the \cs{edtext} macro.
+% \begin{macrocode}
+ \edtext{#2}{%
+% \end{macrocode}
+% If the \cs{var} macro is called with the optional first argument,
+% we put it into the \cs{lemma} macro.
+% \begin{macrocode}
+ \ifstrempty{#1}{}{\lemma{#1}}%
+% \end{macrocode}
+% The \cs{varnote@} macro is an Xfootnote macro defined by user, with the \cs{varnote} macro (cf.~\pageref{varnote}).
+% \begin{macrocode}
+ \varnote@{%
+% \end{macrocode}
+% In the case where the manuscripts with omission must be printed in first position.
+% \begin{macrocode}
+ \ifdefstring{\omitposition@}{first}{
+% \end{macrocode}
+% If the third argument is not empty, we call the \cs{del@} macro, which print the manuscript where the lemma is omitted
+%  \begin{macrocode}
+ \ifstrempty{#3}{}%
+ {\del@{#3}%
+% \end{macrocode}
+% If the third and fourth argument are both not empty, we print the separator between variants.
+% \begin{macrocode}
+ \ifstrempty{#4}%
+ {}%
+ {\varseparator@}%
+ }%
+% \end{macrocode}
+% And so, we print all the variants which are not an omission.
+% \begin{macrocode}
+ \var@{#4}%
+% \end{macrocode}
+% The same thing, but if the manuscripts with omission must be printed in last position.
+% \begin{macrocode}
+ }%
+ {%
+ \ifstrempty{#4}%
+ {}%
+ {\var@{#4}%
+ \ifstrempty{#3}%
+ {}%
+ {\varseparator@}%
+ }%
+ \ifstrempty{#3}{}{\del@{#3}}%
+ }%
+ }%
+% \end{macrocode}
+% Eventually, we add the critical notes which are not for textual criticism.
+% \begin{macrocode}
+ #5%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\print@manuscript}
+% The \cs{print@manuscripts} command only prints the manuscripts where a variant exists.
+% \begin{macrocode}
+\newcommand{\print@manuscript}[1]{%
+ \ifinlist{#1}{\manuscripts@}%
+ {#1}%
+ {\eledmac@warning{Manuscript #1 not declared, p.\the\page@num ; l.\the\line@num}\underline{Manuscript #1 not declared!}}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\del@}
+% The \cs{del@} macro prints the manuscripts where the lemma is omitted,
+% and after that, the text to indicate this omission.
+% \begin{macrocode}
+\newcommand{\del@}[1]{%
+ \renewcommand{\do}[1]{%
+ \print@manuscript{##1}%
+ }%
+ \ifdefstring{\manposition@}{last}%
+ {\omittext@\manvarseparator@\docsvlist{#1}}%
+ {\docsvlist{#1}\manvarseparator@\omittext@}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\var@}
+% The \cs{var@} macro loops on the non omission variants.
+% Except for the first variant, it prints the variant separator.
+% \begin{macrocode}
+\newcommand{\var@}[1]{%
+ \newif\iffirst%
+ \firsttrue%
+ \renewcommand{\do}[1]{\iffirst\firstfalse\else\varseparator@\fi{\var@@##1}}%
+ \docsvlist{#1}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\var@@}
+% The \cs{var@@} macro prints manuscripts for a singular variant
+% and this variant after that.
+% \begin{macrocode}
+\newcommand{\var@@}[2]{%
+ \renewcommand{\do}[1]{%
+ \print@manuscript{##1}%
+ }%
+ \ifdefstring{\manposition@}{last}%
+ {#2\manvarseparator@\docsvlist{#1}}%
+ {\docsvlist{#1}\manvarseparator@#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \subsection{Customization}
+% \subsubsection{The footnote series}
+% \begin{macro}{\varnote@}\label{varnote}
+% The \cs{varnote@} macro is only a reference to a critical footnote macro of eledmac.
+% The default is \cs{Afootnote}.
+% \begin{macrocode}
+\let\varnote@\Afootnote
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\varseries}
+% The \cs{varseries} macro redefines this reference.
+% \begin{macrocode}
+\newcommand{\varseries}[1]{\letcs{\varnote@}{#1footnote}}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{Display options}
+% \begin{macro}{\new@eledform@custom}
+% The \cs{new@eledform@custom} macro has two actions :
+% \begin{enumerate}
+% \item Define the default value of an option (\cs{option@}).
+% \item Create the command which modifies this option (\cs{option}).
+% \end{enumerate}
+% \begin{macrocode}
+\newcommand{\new@eledform@custom}[2]{%
+ \csgdef{#1@}{#2}%
+ \expandafter\newcommand\csname#1\endcsname[1]{\csgdef{#1@}{##1}}%
+}
+% \end{macrocode}
+% \end{macro}
+% And so, we can call \cs{new@eledform@custom} to define options for user.
+% \begin{macro}{\omittext}
+% \begin{macro}{\manvarseparator}
+% \begin{macro}{\varseparator}
+% \begin{macro}{\manposition}
+% \begin{macro}{\omitposition}
+% \begin{macrocode}
+\new@eledform@custom{omitposition}{first}
+\new@eledform@custom{manposition}{last}
+\new@eledform@custom{omittext}{\emph{omit}}
+\new@eledform@custom{manvarseparator}{~}
+\new@eledform@custom{varseparator}{\space}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \subsection{Stemma of the code}
+% The next figure is a stemma of the code.
+%
+% \hspace{-3cm}\noindent\input{include/stemma}
+% \newpage
+% \addcontentsline{toc}{section}{Changes}
+% \PrintChanges
+% \addcontentsline{toc}{section}{Index}
+% \PrintIndex
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/eledform/eledform.ins b/macros/latex/contrib/eledform/eledform.ins
new file mode 100644
index 0000000000..fdf702a8af
--- /dev/null
+++ b/macros/latex/contrib/eledform/eledform.ins
@@ -0,0 +1,55 @@
+%% Copyright (C) 2012 by Maïeul Rouquette
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this work when run through
+%% LaTeX.
+%%
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\input docstrip.tex
+\keepsilent
+
+\preamble
+Copyright (C) 2012 by Maïeul Rouquette
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in:
+
+http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of
+LaTeX version 2003/06/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+\endpreamble
+
+\generate{\file{eledform.sty}{\from{eledform.dtx}{package}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file(s) into a directory searched by LaTeX. See the FAQ on}
+\Msg{* CTAN at /help/uk-tex-faq for more on this.}
+\Msg{*}
+\Msg{* \space\space eledform.sty}
+\Msg{*}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/eledform/eledform.pdf b/macros/latex/contrib/eledform/eledform.pdf
new file mode 100644
index 0000000000..fbe28208e4
--- /dev/null
+++ b/macros/latex/contrib/eledform/eledform.pdf
Binary files differ
diff --git a/macros/latex/contrib/eledform/example.pdf b/macros/latex/contrib/eledform/example.pdf
new file mode 100644
index 0000000000..0dc71c843b
--- /dev/null
+++ b/macros/latex/contrib/eledform/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/eledform/example.tex b/macros/latex/contrib/eledform/example.tex
new file mode 100644
index 0000000000..c4454a0d8d
--- /dev/null
+++ b/macros/latex/contrib/eledform/example.tex
@@ -0,0 +1,32 @@
+\documentclass{article}
+\usepackage[noreledmac]{eledmac}
+\usepackage{eledform}
+\firstlinenum{1}
+\linenumincrement{1}
+\varseparator{\thinspace;\space} % Separator between variants
+\manvarseparator{$\rightarrow$} % Separator between manuscrit and variant
+\omittext{\emph{del}} % Txt to print when a lemma is ommited
+\manuscript{A,B,C,D} % Define the existing manuscripts
+\omitposition{last}
+\begin{document}x
+\varseries{B} % Define the series where textual variants will be printed
+\beginnumbering
+\pstart
+\edtext{}{\Afootnote{s}} % Example to test \varseries
+\var{lorem}{A,B}{ % Basic example
+{{C}{loram}},
+{{D}{lorim}}%
+}
+\var{ipsum}{}{{C}{ipsem}} % Only variants
+\var{dolor}{C}{} % Only deletion
+\var[sit\ldots elit]{sit amet consectetur adipiscing elit}{B,C}{} % Syntaxe with shortened lemma
+\var{sed}{}{ % Example with two manuscripts with the same form
+ {{C,D}{sid}}
+ }
+\var{do}{}{ % Example with a wrong manuscript
+ {{C,E}{da}}
+ }
+\var{eiusmod}{A}{}[\Afootnote{dem. pro. ?}]
+\pend
+\endnumbering
+\end{document}
diff --git a/macros/latex/contrib/eledform/include/stemma.tex b/macros/latex/contrib/eledform/include/stemma.tex
new file mode 100644
index 0000000000..620d1e4a39
--- /dev/null
+++ b/macros/latex/contrib/eledform/include/stemma.tex
@@ -0,0 +1,23 @@
+\begin{tikzpicture}
+\footnotesize
+\tikzset{edge from parent/.style={draw,edge from parent path={(\tikzparentnode) -- (\tikzchildnode)}}}
+\Tree [.\textbackslash var
+ [.\textbackslash edtext
+ [.\textbackslash varnote@
+ [.\textbackslash del@
+ [.\textbackslash print@manuscript ]
+ [.\textbackslash manvarseparator@ ]
+ [.\textbackslash omittext@ ]
+ ]
+ [.\textbackslash varseparator@ ]
+ [.\textbackslash var@
+ [.\textbackslash var@@
+ [.\textbackslash print@manuscript ]
+ [.\textbackslash manvarseparator@ ]
+ [. variant ]
+ ]
+ ]
+ ]
+ ]
+ ]
+\end{tikzpicture} \ No newline at end of file
diff --git a/macros/latex/contrib/eledform/makefile b/macros/latex/contrib/eledform/makefile
new file mode 100644
index 0000000000..379b65bf9e
--- /dev/null
+++ b/macros/latex/contrib/eledform/makefile
@@ -0,0 +1,44 @@
+PACKAGE = *.dtx \
+ eledform.pdf \
+ example.pdf \
+ *.ins \
+ *.tex \
+ include/*\
+ makefile\
+ README.md
+
+
+
+.PHONY: all dist clean cleanall
+
+
+all:eledform.sty eledform.pdf dist clean
+
+
+example.pdf:example.tex eledform.sty
+ pdflatex example.tex
+ pdflatex example.tex
+ pdflatex example.tex
+
+%.sty: %.ins %.dtx
+ @rm -f $*.sty
+ @pdflatex $*.ins
+
+%.pdf: %.dtx %.sty
+ @xelatex $*.dtx
+ @xelatex $*.dtx
+ makeindex -s gglo.ist -o $*.gls $*.glo
+ makeindex -s gind.ist -o $*.ind $*.idx
+ @xelatex $*.dtx
+
+
+dist: $(PACKAGE)
+ @$(RM) ../eledform.zip
+ zip ../eldeform.zip $(PACKAGE)
+
+
+clean:
+ @$(RM) *.aux *.log *.out *.toc *glo *idx *bib *bbl *blg *xml *gls *ilg *gz *ind
+
+cleanall:clean
+ @$(RM) bibleref-french-francais.pdf bibleref-french.pdf test.pdf *sty \ No newline at end of file