From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/eledform/README.md | 24 ++ macros/latex/contrib/eledform/eledform.dtx | 354 +++++++++++++++++++++++ macros/latex/contrib/eledform/eledform.ins | 55 ++++ macros/latex/contrib/eledform/eledform.pdf | Bin 0 -> 82008 bytes macros/latex/contrib/eledform/example.pdf | Bin 0 -> 47703 bytes macros/latex/contrib/eledform/example.tex | 32 ++ macros/latex/contrib/eledform/include/stemma.tex | 23 ++ macros/latex/contrib/eledform/makefile | 44 +++ 8 files changed, 532 insertions(+) create mode 100644 macros/latex/contrib/eledform/README.md create mode 100644 macros/latex/contrib/eledform/eledform.dtx create mode 100644 macros/latex/contrib/eledform/eledform.ins create mode 100644 macros/latex/contrib/eledform/eledform.pdf create mode 100644 macros/latex/contrib/eledform/example.pdf create mode 100644 macros/latex/contrib/eledform/example.tex create mode 100644 macros/latex/contrib/eledform/include/stemma.tex create mode 100644 macros/latex/contrib/eledform/makefile (limited to 'macros/latex/contrib/eledform') 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} +% +% \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 Binary files /dev/null and b/macros/latex/contrib/eledform/eledform.pdf differ diff --git a/macros/latex/contrib/eledform/example.pdf b/macros/latex/contrib/eledform/example.pdf new file mode 100644 index 0000000000..0dc71c843b Binary files /dev/null and b/macros/latex/contrib/eledform/example.pdf 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 -- cgit v1.2.3