summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/eledform
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2012-10-08 09:33:26 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2012-10-08 09:33:26 +0000
commitf69c8d8dfd2e817ad0b0362281142de38fa7ce1f (patch)
treef1204c92f55cbbfb9920d28792dafaef59ca4900 /Master/texmf-dist/source/latex/eledform
parentc46b4f889a135737e16f618372d51338c82c6910 (diff)
new latex package: eledform
git-svn-id: svn://tug.org/texlive/trunk@27922 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/eledform')
-rw-r--r--Master/texmf-dist/source/latex/eledform/eledform.dtx313
-rw-r--r--Master/texmf-dist/source/latex/eledform/eledform.ins55
2 files changed, 368 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/eledform/eledform.dtx b/Master/texmf-dist/source/latex/eledform/eledform.dtx
new file mode 100644
index 00000000000..40fbe558304
--- /dev/null
+++ b/Master/texmf-dist/source/latex/eledform/eledform.dtx
@@ -0,0 +1,313 @@
+%\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 "maintained".
+%
+% \fi
+
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{polyglossia,csquotes}
+\setmainlanguage{english}
+\usepackage{eledmac,eledform,tikz,tikz-qtree}
+\usepackage{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\DocInput{eledform.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{82}
+% \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}
+% \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
+% \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 in the critical notes:
+% \begin{quote}
+% lorem] AB omit ; C loram ; D lorim
+% \end{quote}
+% There is some limits with 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 don't make mistake about manuscript.
+% \end{itemize}
+% \subsubsection{With formalism}
+% To describe the same thing, we propose this formalism :
+% \begin{verbatim}
+%\var{lorem}{A,B}{
+%{{C}{loram}},
+%{{D}{lorim}}
+%}
+% \end{verbatim}
+% With \emph{eledform}, this will produce the same thing that the non-formalised form,
+% but without described inconveniences.
+% You could see 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 must use \cs{Manuscripts}\marg{list}
+% to provide to \LaTeX\space the list of manuscripts used in the apparatus.
+% \LaTeX\ prints a warning message in the log file if you describe a variant
+% inside a manuscript which does'nt exist.
+% It also prints an error in the PDF.
+% The list of manuscripts is a comma separated list:
+% \begin{verbatim}
+% \manuscripts{A,B,C,D}
+% \end{verbatim}
+% \subsubsection{Declare variants}
+% \DescribeMacro{\varseries}
+%
+% 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 \marg{manuscripts}\marg{variant}, 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{\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 omit a lemma, \emph{eledform} print \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 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}[2012/10/01 v1.0 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}
+% 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}
+% 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{Unknew man. #1, p.\the\page@num ; l.\the\line@num}\underline{unknew man. #1}}%
+ }
+% \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}%
+ }%
+ \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}%
+ }%
+ \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{macrocode}
+\new@eledform@custom{omittext}{\emph{omit}}
+\new@eledform@custom{manvarseparator}{~}
+\new@eledform@custom{varseparator}{\space}
+% \end{macrocode}
+% \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 \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/eledform/eledform.ins b/Master/texmf-dist/source/latex/eledform/eledform.ins
new file mode 100644
index 00000000000..fdf702a8af4
--- /dev/null
+++ b/Master/texmf-dist/source/latex/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