diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/enotez/README | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/enotez/enotez_en.pdf | bin | 443011 -> 444833 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/enotez/enotez_en.tex | 575 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/enotez/enotez.sty | 80 |
4 files changed, 353 insertions, 308 deletions
diff --git a/Master/texmf-dist/doc/latex/enotez/README b/Master/texmf-dist/doc/latex/enotez/README index d2ec4b2c748..df14bfeadaa 100644 --- a/Master/texmf-dist/doc/latex/enotez/README +++ b/Master/texmf-dist/doc/latex/enotez/README @@ -1,9 +1,9 @@ -------------------------------------------------------------------------- -the ENOTEZ package v0.7 +the ENOTEZ package v0.7a Endnotes for LaTeX2e -2013/05/01 +2013/08/03 -------------------------------------------------------------------------- Clemens Niederberger Web: https://bitbucket.org/cgnieder/enotez/ @@ -28,4 +28,4 @@ The enotez package consists of the files -------------------------------------------------------------------------- If you have any ideas, questions, suggestions or bugs to report, please feel free to contact me. ---------------------------------------------------------------------------
\ No newline at end of file +-------------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/latex/enotez/enotez_en.pdf b/Master/texmf-dist/doc/latex/enotez/enotez_en.pdf Binary files differindex 89c6e1f0e4c..3f218045ebe 100644 --- a/Master/texmf-dist/doc/latex/enotez/enotez_en.pdf +++ b/Master/texmf-dist/doc/latex/enotez/enotez_en.pdf diff --git a/Master/texmf-dist/doc/latex/enotez/enotez_en.tex b/Master/texmf-dist/doc/latex/enotez/enotez_en.tex index 0e395984921..c39a4ef33eb 100644 --- a/Master/texmf-dist/doc/latex/enotez/enotez_en.tex +++ b/Master/texmf-dist/doc/latex/enotez/enotez_en.tex @@ -1,6 +1,6 @@ % arara: pdflatex -% arara: biber -% arara: pdflatex +% !arara: biber +% !arara: pdflatex % arara: pdflatex % -------------------------------------------------------------------------- % the ENOTEZ package @@ -42,7 +42,7 @@ skipabove = .6\baselineskip plus .5ex minus .5ex , roundcorner = 3pt , } , - gobble = 1 , + gobble = 2 , subtitle = {Endnotes for \LaTeXe} } @@ -52,6 +52,7 @@ appendix, chapter, cmd, + cs, DeclareInstance, DeclareTemplateInterface, DeclareTranslation, @@ -86,16 +87,6 @@ \ChangeEmph{[}[,.02em]{]}[.055em,-.08em] \ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em] -\newcommand*\Default[1]{% - \hfill\llap - {% - \ifblank{#1}% - {(initially~empty)}% - {Default:~\code{#1}}% - }% - \newline -} - \usepackage[backend=biber,style=alphabetic]{biblatex} \addbibresource{\jobname.bib} @@ -133,12 +124,12 @@ version = {NA}, url = {http://mirror.ctan.org/macros/latex/contrib/endnotes} } -@package{pkg:exsheets, - title = {exsheets}, +@package{pkg:translations, + title = {translations}, author = {Clemens Niederberger}, - date = {2013-04-04}, - version = {0.8a}, - url = {http://mirror.ctan.org/macros/latex/contrib/exsheets} + date = {2013-08-01}, + version = {1.1}, + url = {http://mirror.ctan.org/macros/latex/contrib/translations} } @package{pkg:fnpct, title = {fnpct}, @@ -226,59 +217,51 @@ \AtBeginEnvironment{beispiel}{\setfnpct{dont-mess-around}} \usepackage{enumitem} -\usepackage{marginnote,ragged2e} -\makeatletter -\providecommand*\sinceversion[1]{% - \@bsphack - \marginnote{% - \footnotesize\sffamily\RaggedRight - \textcolor{black!75}{Introduced in version~#1}}% - \@esphack} -\providecommand*\changedversion[1]{% - \@bsphack - \marginnote{% - \footnotesize\sffamily\RaggedRight - \textcolor{black!75}{Changed in version~#1}}% - \@esphack} -\makeatother +\newcommand*\cs[1]{\cmd*{#1}} \robustify\code \begin{document} \section{Licence and Requirements}\secidx{Licence} -Permission is granted to copy, distribute and/or modify this software under the -terms of the \LaTeX\ Project Public License, version 1.3 or later -(\url{http://www.latex-project.org/lppl.txt}). The package has the status +Permission is granted to copy, distribute and/or modify this software under +the terms of the \LaTeX\ Project Public License, version 1.3 or later +(\url{http://www.latex-project.org/lppl.txt}). The package has the status ``maintained.'' -\enotez needs and loads the following packages: \paket{expl3}~\cite{pkg:l3kernel}, -\paket{xparse}, \paket{xtemplate} and \paket{l3keys2e}~\cite{pkg:l3packages}, -\paket{xpatch}~\cite{pkg:xpatch} and \paket{scrlfile}~\cite{pkg:scrlfile}. +\enotez needs and loads the following packages: +\paket*{expl3}\footnote{\CTANurl{l3kernel}}~\cite{pkg:l3kernel}, +\paket*{xparse}\footnote{\CTANurl{l3packages}}, \paket*{xtemplate} and +\paket*{l3keys2e}~\cite{pkg:l3packages}, \paket{xpatch}~\cite{pkg:xpatch}, +\paket*{scrlfile}\footnote{\CTANurl{koma-script}}~\cite{pkg:scrlfile} and +\paket{translations}~\cite{pkg:translations}. + \secidx*{Licence} \section{Motivation}\secidx{Motivation} -\enotez is a new implementation of endnotes for \LaTeXe\ since the \paket{endnotes} -package~\cite{pkg:endnotes} has some deficiencies. Nested endnotes, for example, are -not supported, neither is \paket{hyperref}~\cite{pkg:hyperref}. The -\paket{sepfootnotes} package~\cite{pkg:sepfootnotes} also provides means for endnotes -but actually has a different purpose: to separate input and usage both of -footnotes and endnotes. So it might not be the best solution in every -case\footnote{You have to write the actual notes in the preamble or a separate -file and reference them in the text.}. It also does not allow nested endnotes. - -While \enotez worked in tests nicely with the \klasse{memoir}~\cite{cls:memoir} -class please keep in mind that \klasse{memoir} provides its own endnote mechanism. - -\enotez enables nested endnotes properly and has another mechanism of customizing -the list of endnotes which is easily extendable. One of the main features of -\enotez is a split list of endnotes in which the notes are automatically -separated by the sections or chapters they were set in, see section~\ref{sec:split} -for more information. - -As an aside: \enotez is nicely compatible with the \paket{fnpct} package~\cite{pkg:fnpct}. -Version~0.2j or newer of \paket{fnpct} automatically detects \enotez and adapts -the \cmd{endnote} command. +\enotez is a new implementation of endnotes for \LaTeXe\ since the +\paket{endnotes} package~\cite{pkg:endnotes} has some deficiencies. Nested +endnotes, for example, are not supported, neither is +\paket{hyperref}~\cite{pkg:hyperref}. The \paket{sepfootnotes} +package~\cite{pkg:sepfootnotes} also provides means for endnotes but actually +has a different purpose: to separate input and usage both of footnotes and +endnotes. So it might not be the best solution in every case\footnote{You + have to write the actual notes in the preamble or a separate file and + reference them in the text.}. It also does not allow nested endnotes. + +While \enotez worked in tests nicely with the +\klasse{memoir}~\cite{cls:memoir} class please keep in mind that +\klasse{memoir} provides its own endnote mechanism. + +\enotez enables nested endnotes properly and has another mechanism of +customizing the list of endnotes which is easily extendable. One of the main +features of \enotez is a split list of endnotes in which the notes are +automatically separated by the sections or chapters they were set in, see +section~\ref{sec:split} for more information. + +As an aside: \enotez is nicely compatible with the \paket{fnpct} +package~\cite{pkg:fnpct}. Version~0.2j or newer of \paket{fnpct} +automatically detects \enotez and adapts the \cmd{endnote} command. \secidx*{Motivation} \section{Usage}\secidx{Usage} @@ -286,231 +269,244 @@ the \cmd{endnote} command. The usage is simple: use \cmd{endnote} in the text where you want to place the note mark. \begin{beschreibung} - \Befehl{endnote}[<mark>]{<text>}\newline - Add an endnote in the text. + \Befehl{endnote}[<mark>]{<text>}\newline + Add an endnote in the text. \end{beschreibung} \begin{beispiel} - This is some text.\endnote{With an endnote.} + This is some text.\endnote{With an endnote.} \end{beispiel} -There's not really much more to it. It is possible to add a custom mark by -using the optional argument but that shouldn't be needed too often. \cmd{endnote} -works fine inside tables, minipages, floats and captions\footnote{This has been -tested with the standard classes, \klasse{memoir}, and the \klasse{KOMA-Script} -classes, with and without the \paket*{caption} package. If you're using another -package that redefines \cmd*{caption} or are using another class it might not -work. Before you place a note in a caption you should re-think the idea anyway.}. -Endnotes can also be nested. - -Since this functionality seemed making a pair \cmd{endnotemark}/\cmd{endnotetext} -superfluous they are \emph{not} defined by \enotez. +There's not really much more to it. It is possible to add a custom mark by +using the optional argument but that shouldn't be needed too often. +\cmd{endnote} works fine inside tables, minipages, floats and +captions\footnote{This has been tested with the standard classes, + \klasse{memoir}, and the \klasse{KOMA-Script} classes, with and without the + \paket*{caption} package. If you're using another package that redefines + \cmd*{caption} or are using another class it might not work. Before you + place a note in a caption you should re-think the idea anyway.}. Endnotes +can also be nested. + +Since this functionality seemed making a pair +\cmd{endnotemark}/\cmd{endnotetext} superfluous they are \emph{not} defined by +\enotez. \begin{beispiel} - This is some text.\endnote{With another endnote.\endnote{This is a - nested\endnote{And another level deeper\ldots} endnote!}} - % uses package `kantlipsum' to produce dummy text: - Of course you can have several paragraphs\endnote{\kant[1-3]} in an endnote. + This is some text.\endnote{With another endnote.\endnote{This is a + nested\endnote{And another level deeper\ldots} endnote!}} + % uses package `kantlipsum' to produce dummy text: + Of course you can have several paragraphs\endnote{\kant[1-3]} in an endnote. \end{beispiel} The marks of the endnotes in the running text are printed through the command -\cmd{enotezwritemark} which defaults to \cmd{textsuperscript}. Its argument -contains the current mark which is preceded by \cmd{enmarkstyle}. Both of these -commands can be redefined of course to adapt to custom settings. This can also -be done using options, see section~\ref{sec:options}. The mark of the endnote -that has been set last is stored in \cmd{theendnote} and in \cmd{@currentlabel}.% -\sinceversion{0.6} +\cmd{enotezwritemark} which defaults to \cmd{textsuperscript}. Its argument +contains the current mark which is preceded by \cmd{enmarkstyle}. Both of +these commands can be redefined of course to adapt to custom settings. This +can also be done using options, see section~\ref{sec:options}. The mark of +the endnote that has been set last is stored in \cmd{theendnote} and in +\cmd{@currentlabel}.\sinceversion{0.6} This could be used to define a command which writes a mark: \begin{beispiel} - \makeatletter - \def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}} - \def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}} - \makeatother - Text\endnotemark + % we cannot use \newcommand -- the command starts with \end... + \makeatletter + \def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}} + \def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}} + \makeatother + Text\endnotemark \end{beispiel} -Please not that this definition \emph{does not} step the endnote counter but -either refers to the last number (no optional argument) or uses the one provided -in the optional argument. +Please note that this definition \emph{does not} step the endnote counter but +either refers to the last number (no optional argument) or uses the one +provided in the optional argument. \makeatletter -\def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}}% -\def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}}% +\def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}} +\def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}} \makeatother Endnotes can also be labelled and later be referred to: \begin{beispiel} - The next endnote\endnote{This endnote gets a label.}\label{en:test} - has the number~\ref{en:test}. We can use this with the previous definition - of \string\endnotemark\endnotemark[\ref{en:test}]. + The next endnote\endnote{This endnote gets a label.}\label{en:test} has + the number~\ref{en:test}. We can use this with the previous definition + of \cs{endnotemark}\endnotemark[\ref{en:test}]. \end{beispiel} \subsection{Printing the Notes} The notes are printed by using the command \cmd{printendnotes}. \begin{beschreibung} - \Befehl{printendnotes}*[<style>]\newline - Print the list of endnotes. \code{<style>} is one of the instances explained - in section~\ref{ssec:customizing_the_list}. + \Befehl{printendnotes}*[<style>]\newline + Print the list of endnotes. \code{<style>} is one of the instances + explained in section~\ref{ssec:customizing_the_list}. \end{beschreibung} -If used without argument it prints all notes set so far with \cmd{endnote}. The -current list will then be cleared. All endnotes set after it are stored again -for the next usage of \cmd{printendnotes}. The starred version will print -\emph{all} endnotes but shouldn't be used more than once if you have nested -endnotes. - -It may take several compilation runs until all notes are printed correctly. In -a first run they are written to the \code{aux} file. In the second run they are -available to \cmd{printendnotes}. If you have nested endnotes they will be written -to the \code{aux} file the first time they're printed with \cmd{printendnotes} -which means you might have to compile your file once more. If you change any of -the endnotes or add another one you again will need at least two runs, maybe more. -\enotez tries to warn you in these cases by invoking the warning -\achtung{\code{Endnotes may have changed. Rerun to get them right.}} -but may not catch all cases. +If used without argument it prints all notes set so far with +\cmd{endnote}. The current list will then be cleared. All endnotes set after +it are stored again for the next usage of \cmd{printendnotes}. The starred +version will print \emph{all} endnotes but shouldn't be used more than once if +you have nested endnotes. + +It may take several compilation runs until all notes are printed correctly. +In a first run they are written to the \code{aux} file. In the second run +they are available to \cmd{printendnotes}. If you have nested endnotes they +will be written to the \code{aux} file the first time they're printed with +\cmd{printendnotes} which means you might have to compile your file once more. +If you change any of the endnotes or add another one you again will need at +least two runs, maybe more. \enotez tries to warn you in these cases by +invoking the warning \achtung{\code{Endnotes may have changed. Rerun to get + them right.}} but may not catch all cases. \enotez provides two commands that allow to set some kinds of preamble and postamble to a list, either to every list or only to the next one: \begin{beschreibung} - \Befehl{AtEveryEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} between heading and the actual notes every time - \cmd{printendnotes} is used. - \Befehl{AtNextEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} between heading and the actual notes the next time - \cmd{printendnotes} is used. This overwrites a possible preamble set with - \cmd{AtEveryEndnotesList} for this instance of \cmd{printendnotes}. - \Befehl{AfterEveryEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} after the notes list every time \cmd{printendnotes} is - used. - \Befehl{AfterNextEndnotesList}{<text>}\newline\sinceversion{0.5}% - inserts \code{<text>} after the notes list the next time \cmd{printendnotes} - is used. This overwrites a possible postamble set with - \cmd{AfterEveryEndnotesList} for this instance of \cmd{printendnotes}. + \Befehl{AtEveryEndnotesList}{<text>}\newline\sinceversion{0.5}% + inserts \code{<text>} between heading and the actual notes every time + \cmd{printendnotes} is used. + \Befehl{AtNextEndnotesList}{<text>}\newline\sinceversion{0.5}% + inserts \code{<text>} between heading and the actual notes the next time + \cmd{printendnotes} is used. This overwrites a possible preamble set with + \cmd{AtEveryEndnotesList} for this instance of \cmd{printendnotes}. + \Befehl{AfterEveryEndnotesList}{<text>}\newline\sinceversion{0.5}% + inserts \code{<text>} after the notes list every time \cmd{printendnotes} + is used. + \Befehl{AfterNextEndnotesList}{<text>}\newline\sinceversion{0.5}% + inserts \code{<text>} after the notes list the next time + \cmd{printendnotes} is used. This overwrites a possible postamble set + with \cmd{AfterEveryEndnotesList} for this instance of + \cmd{printendnotes}. \end{beschreibung} If something is inserted with one of these commands the inserted \code{<text>} -will be followed by a \cmd{par} and a vertical skip for the preamble. The postambles -follow a \cmd{par} and a vertical skip. The skips can be set using an option, -see section~\ref{sec:options}. +will be followed by a \cmd{par} and a vertical skip for the preamble. The +postambles follow a \cmd{par} and a vertical skip. The skips can be set using +an option, see section~\ref{sec:options}. + \secidx*{Usage} \section{Options}\label{sec:options}\secidx{Options} \subsection{Package Options} -\enotez has a few package options which should be pretty self-explanatory. They -can be set either as package options with \verb=\usepackage[<options>]{enotez}= -or with the setup command. +\enotez has a few package options which should be pretty self-explanatory. +They can be set either as package options with +\verb=\usepackage[<options>]{enotez}= or with the setup command. \begin{beschreibung} - \Befehl{setenotez}{<options>}\newline - Setup command for setting \enotez' options. - \Option{list-name}{<list name>}\Default{Notes} - The name of the notes list. This name is used for the heading of the list. - \Option{reset}{\default{true}|false}\Default{false} - If set to \code{true} the notes numbers will start from 1 again after - \cmd{printendnotes} has been invoked. - \Option{counter-format}{arabic|alph|Alph|roman|Roman}\Default{arabic} - Change the format of the endnote counter. - \Option{mark-format}{<code>}\Default{} - Redefine \cmd{enmarkstyle} to execute \code{<code>}. This command is placed - directly before the endnote mark in the text. - \Option{mark-cs}{<command>}\Default{\cmd{textsuperscript}} - Lets \cmd{enotezwritemark} to be equal to \code{<command>}. This command is - used to typeset the endnote marks in the text and should take one argument. - \Option{backref}{\default{true}|false}\Default{false} - \sinceversion{0.7}If set to \code{true} and \paket{hyperref} has been loaded - backlinks from the notes in the list to the marks in the text are added. - \Option{totoc}{section|chapter|false}\Default{false} - Add an entry to the table of contents. - \Option{list-heading}{<sectioning command including argument>}\newline - You can use this option to manually set the list heading command, \textit{e.g.}, - \key{list-heading}{\cmd{chapter}{\#1}} for a numbered heading. The default - depends upon if the class you're using provides \cmd{chapter} or not. It - either uses \cmd{chapter}* or \cmd{section}*. You can see that you have to - refer to the actual heading with \code{\#1}. - \Option{list-style}{<style>}\Default{plain} - Sets the default list style, see section \ref{ssec:customizing_the_list} for - details. - \Option{list-preamble-skip}{<skip>}\Default{\cmd{medskipamount}}\sinceversion{0.5}% - Sets the vertical skip (a rubber length) that is inserted if a list preamble - is inserted by using either \cmd{AtNextEndnotesList} or \cmd{AtEveryEndnotesList}. - It's default is set equal to \cmd{medskipamount}. - \Option{list-postamble-skip}{<skip>}\Default{\cmd{medskipamount}}\sinceversion{0.5}% - Sets the vertical skip (a rubber length) that is inserted if a list postamble - is inserted by using either \cmd{AfterNextEndnotesList} or \cmd{AfterEveryEndnotesList}. - It's default is set equal to \cmd{medskipamount}. + \Befehl{setenotez}{<options>}\newline + Setup command for setting \enotez' options. + \Option{list-name}{<list name>}\Default{Notes} + The name of the notes list. This name is used for the heading of the + list. + \Option{reset}{\default{true}|false}\Default{false} + If set to \code{true} the notes numbers will start from 1 again after + \cmd{printendnotes} has been invoked. + \Option{counter-format}{arabic|alph|Alph|roman|Roman|symbols}\Default{arabic} + Change the format of the endnote counter. Please be aware that there are + only 26 alphabetic counter symbols (options \code{alph} and \code{Alph} + and \emph{only 9} symbols (option \code{symbols}). + \Option{mark-format}{<code>}\Default{} + Redefine \cmd{enmarkstyle} to execute \code{<code>}. This command is + placed directly before the endnote mark in the text. + \Option{mark-cs}{<command>}\Default{\cmd{textsuperscript}} + Lets \cmd{enotezwritemark} to be equal to \code{<command>}. This command + is used to typeset the endnote marks in the text and should take one + argument. + \Option{backref}{\default{true}|false}\Default{false} + \sinceversion{0.7}If set to \code{true} and \paket{hyperref} has been + loaded backlinks from the notes in the list to the marks in the text are + added. + \Option{totoc}{section|chapter|false}\Default{false} + Add an entry to the table of contents. + \Option{list-heading}{<sectioning command including argument>}\newline + You can use this option to manually set the list heading command, + \textit{e.g.}, \key{list-heading}{\cmd{chapter}{\#1}} for a numbered + heading. The default depends upon if the class you're using provides + \cmd{chapter} or not. It either uses \cmd{chapter}* or \cmd{section}*. + You can see that you have to refer to the actual heading with \code{\#1}. + \Option{list-style}{<style>}\Default{plain} + Sets the default list style, see section \ref{ssec:customizing_the_list} + for details. + \Option{list-preamble-skip}{<skip>}\Default{\cmd{medskipamount}}\sinceversion{0.5}% + Sets the vertical skip (a rubber length) that is inserted if a list + preamble is inserted by using either \cmd{AtNextEndnotesList} or + \cmd{AtEveryEndnotesList}. It's default is set equal to + \cmd{medskipamount}. + \Option{list-postamble-skip}{<skip>}\Default{\cmd{medskipamount}}\sinceversion{0.5}% + Sets the vertical skip (a rubber length) that is inserted if a list + postamble is inserted by using either \cmd{AfterNextEndnotesList} or + \cmd{AfterEveryEndnotesList}. It's default is set equal to + \cmd{medskipamount}. \end{beschreibung} \subsection{Customizing the List}\label{ssec:customizing_the_list} -The list is typeset with \paket{xtemplate}'s possibilities. \enotez declares -the object \code{enotez-list} and two templates for it, the template \code{paragraph} -and the template \code{list}. +The list is typeset with \paket{xtemplate}'s possibilities. \enotez declares +the object \code{enotez-list} and two templates for it, the template +\code{paragraph} and the template \code{list}. \subsubsection{The \code{paragraph} Template} The \code{paragraph} template's interface is defined as follows: \begin{beispiel}[code only] - \DeclareTemplateInterface{enotez-list}{paragraph}{1} - { - % parameter : type = default - heading : function 1 = \section*{#1} , - format : tokenlist = \footnotesize , - number : function 1 = \enmark{#1} , - number-format : tokenlist = \normalfont , - notes-sep : length = .5\baselineskip , - } + \DeclareTemplateInterface{enotez-list}{paragraph}{1} + { + % parameter : type = default + heading : function 1 = \section*{#1} , + format : tokenlist = \footnotesize , + number : function 1 = \enmark{#1} , + number-format : tokenlist = \normalfont , + notes-sep : length = .5\baselineskip , + } \end{beispiel} The parameters functions are these: \begin{description}[style=nextline] - \item[\code{heading}] The command with which the heading is typeset. - \item[\code{format}] The format of the whole list. - \item[\code{number}] The command that is used to typeset the numbers of the - notes. The command \cmd{enmark} is explained soon. - \item[\code{numbers-format}] The format of the numbers. - \item[\code{notes-sep}] Additional space between the notes. + \item[\code{heading}] The command with which the heading is typeset. + \item[\code{format}] The format of the whole list. + \item[\code{number}] The command that is used to typeset the numbers of the + notes. The command \cmd{enmark} is explained soon. + \item[\code{numbers-format}] The format of the numbers. + \item[\code{notes-sep}] Additional space between the notes. \end{description} \enotez uses this template to define the instance \code{plain}: \begin{beispiel}[code only] - \DeclareInstance{enotez-list}{plain}{paragraph}{} + \DeclareInstance{enotez-list}{plain}{paragraph}{} \end{beispiel} This is the default style of the list. You can easily define your own instances, though: \begin{beispiel}[code only] - \DeclareInstance{enotez-list}{custom}{paragraph} - { - heading = \chapter*{#1} , - notes-sep = \baselineskip , - format = \normalfont , - number = \textsuperscript{#1} - } + \DeclareInstance{enotez-list}{custom}{paragraph} + { + heading = \chapter*{#1} , + notes-sep = \baselineskip , + format = \normalfont , + number = \textsuperscript{#1} + } \end{beispiel} This would use a chapter heading for the title, separate the notes with -\verb=\baselineskip= and typeset them with \verb=\normalfont=. The numbers would -be typeset with \verb=\textsuperscript=. You could now use it like this: +\verb=\baselineskip= and typeset them with \verb=\normalfont=. The numbers +would be typeset with \verb=\textsuperscript=. You could now use it like +this: \begin{beispiel}[code only] - \printendnotes[custom] + \printendnotes[custom] \end{beispiel} If you wanted superscripted numbers, you could also redefine \cmd{enmark}. \begin{beschreibung} - \Befehl{enmark}\newline - is defined like this: \verb=\newcommand*\enmark[1]{#1.}= + \Befehl{enmark}\newline + is defined like this: \verb=\newcommand*\enmark[1]{#1.}= \end{beschreibung} \subsubsection{The \code{list} Template} The \code{list} template's interface is defined as follows: \begin{beispiel}[code only] - \DeclareTemplateInterface{enotez-list}{list}{1} - { - % parameter : type = default - heading : function 1 = \section*{#1} , - format : tokenlist = \footnotesize , - number : function 1 = \enmark{#1} , - number-format : tokenlist = \normalfont , - list-type : tokenlist = description , - } + \DeclareTemplateInterface{enotez-list}{list}{1} + { + % parameter : type = default + heading : function 1 = \section*{#1} , + format : tokenlist = \footnotesize , + number : function 1 = \enmark{#1} , + number-format : tokenlist = \normalfont , + list-type : tokenlist = description , + } \end{beispiel} -This template uses a list to typeset the notes. As you can see the default list -is a \code{description} list. +This template uses a list to typeset the notes. As you can see the default +list is a \code{description} list. \enotez defines two instances of this template: \begin{beispiel}[code only] - \DeclareInstance{enotez-list}{description}{list}{} - \DeclareInstance{enotez-list}{itemize}{list}{list-type = itemize} + \DeclareInstance{enotez-list}{description}{list}{} + \DeclareInstance{enotez-list}{itemize}{list}{list-type = itemize} \end{beispiel} They're available through \cmd{printendnotes}[description] and \cmd{printendnotes}[itemize], respectively. @@ -519,59 +515,61 @@ Again you can define your own instances using whatever list you want, possibly one defined with the power of \paket{enumitem}. \section{Collect Notes Section-wise and Print List Stepwise}\label{sec:split} -\emph{This feature is experimental and surely has some limitations. Please let -me know if something doesn't work as expected}. +\emph{This feature is experimental and surely has some limitations. Please + let me know if something doesn't work as expected}. Not to be misunderstood: you can use \cmd{printendnotes} as often as you like, -possibly after each section. That is \emph{not} what is meant here. Let's -suppose you are writing a book and have many endnotes in many chapters. It +possibly after each section. That is \emph{not} what is meant here. Let's +suppose you are writing a book and have many endnotes in many chapters. It would be nice if the list of endnotes at the end of the book could be split -into parts for each chapter. This section describes how you can achieve that with -\enotez. +into parts for each chapter. This section describes how you can achieve that +with \enotez. First of all \enotez will rely on the fact that you use \cmd{printendnotes} -only \emph{once}! If you call it more times nobody knows what will happen\ldots +only \emph{once}! If you call it more times nobody knows what will +happen\ldots You'll need to tell \enotez that you want to split the notes into groups. \begin{beschreibung} - \Option{split}{section|chapter|false}\Default{false} - Enable the automatic splitting. - \Option{split-sectioning}{<csname>}\Default{} - \emph{This option is deprecated and may be dropped in future versions!} - The command that is used to display the titles between the splits. It needs - to be a command that takes one argument and should be entered without the - leading backslash. If the option is not used \enotez will choose - \code{subsection*} for \key*{split}{section} and \code{section*} for - \key*{split}{chapter}. - \Option{split-heading}{<sectioning command including argument>}\newline - \sinceversion{0.3}The command that is used to display the titles between the - splits. It is entered with argument and the actual title is referred to with - \code{\#1}, \textit{e.g.}, \key{split-heading}{\cmd{subsection}*{\#1}}. If - the option is not used \enotez will choose \cmd{subsection}*{\#1} for - \key*{split}{section} and \cmd{section}*{\#1} for \key*{split}{chapter}. - \Option{split-title}{<tokenlist>}\Default{Notes for <name> <ref>} - The title that will be inserted between the splits. \code{<name>} is replaced - by \code{section} for \key*{split}{section} and \code{chapter} for - \key*{split}{chapter}. \code{<ref>} is replaced by the corresponding - \cmd*{thesection} or \cmd*{thechapter}. + \Option{split}{section|chapter|false}\Default{false} + Enable the automatic splitting. + \Option{split-sectioning}{<csname>}\Default{} + \emph{This option is deprecated and may be dropped in future versions!} + The command that is used to display the titles between the splits. It + needs to be a command that takes one argument and should be entered + without the leading backslash. If the option is not used \enotez will + choose \code{subsection*} for \key*{split}{section} and \code{section*} + for \key*{split}{chapter}. + \Option{split-heading}{<sectioning command including argument>}\newline + \sinceversion{0.3}The command that is used to display the titles between + the splits. It is entered with argument and the actual title is referred + to with \code{\#1}, \textit{e.g.}, + \key{split-heading}{\cmd{subsection}*{\#1}}. If the option is not used + \enotez will choose \cmd{subsection}*{\#1} for \key*{split}{section} and + \cmd{section}*{\#1} for \key*{split}{chapter}. + \Option{split-title}{<tokenlist>}\Default{Notes for <name> <ref>} + The title that will be inserted between the splits. \code{<name>} is + replaced by \code{section} for \key*{split}{section} and \code{chapter} + for \key*{split}{chapter}. \code{<ref>} is replaced by the corresponding + \cmd*{thesection} or \cmd*{thechapter}. \end{beschreibung} Set the \key{split} option: \begin{beispiel}[code only] - \setenotez{split=section} + \setenotez{split=section} \end{beispiel} -Well -- that's it, basically. You'll have to be careful, though: -If you're having nested endnotes the nested ones appear first in the ``Notes'' -section (or chapter, respectively). In this case you should have a numbered -section title for the notes, presumably in the appendix. You'll need to create -a new list style: +Well -- that's it, basically. You'll have to be careful, though: if you're +having nested endnotes the nested ones appear first in the ``Notes'' section +(or chapter, respectively). In this case you should have a numbered section +title for the notes, presumably in the appendix. You'll need to create a new +list style: \begin{beispiel}[code only] - % preamble: - \usepackage{enotez} - \DeclareInstance{enotez-list}{section}{paragraph}{heading=\section{#1}} - \setenotez{list-style=section,split=section} - % document: - \appendix - \printendnotes + % preamble: + \usepackage{enotez} + \DeclareInstance{enotez-list}{section}{paragraph}{heading=\section{#1}} + \setenotez{list-style=section,split=section} + % document: + \appendix + \printendnotes \end{beispiel} Please beware that the option \key{reset} also impacts here: the numbing will @@ -580,39 +578,40 @@ be reset for each section or chapter, depending on the choice you made for \sinceversion{0.7}There are two -- or three, actually -- additional commands: \begin{beschreibung} - \Befehl{AtEveryListSplit}{<code>}\newline - Inserts \code{<code>} before each sub-heading in a splitted list. - \Befehl{AfterEveryListSplit}{<code>}\newline - Inserts \code{<code>} after each sub-heading in a splitted list. - \Befehl{EnotezCurrentSplitTitle}\newline - Holds the current sub-heading in a splitted list and may be used in - \cmd{AtEveryListSplit} and \cmd{AfterEveryListSplit}. + \Befehl{AtEveryListSplit}{<code>}\newline + Inserts \code{<code>} before each sub-heading in a splitted list. + \Befehl{AfterEveryListSplit}{<code>}\newline + Inserts \code{<code>} after each sub-heading in a splitted list. + \Befehl{EnotezCurrentSplitTitle}\newline + Holds the current sub-heading in a splitted list and may be used in + \cmd{AtEveryListSplit} and \cmd{AfterEveryListSplit}. \end{beschreibung} +\enotez comes with an example document for a split list which you should find +in the same folder as this documentation. -\enotez comes with an example document for a split list which you should -find in the same folder as this documentation. \secidx*{Options} \section{Language Support}\secidx{Language Support} -\enotez uses the \paket*{translations} package (part of the -\paket{exsheets}~\cite{pkg:exsheets} bundle) to translate language dependent -strings. The advantage of this is that language settings with -\paket{babel}~\cite{pkg:babel} or \paket{polyglossia}~\cite{pkg:polyglossia} -are detected automatically. However, the available translations are somewhat -limited due to my limited language knowledge. If you find missing or wrong -translations you can try to add or correct them by adding the corresponding -versions of the following lines to your preamble: +\enotez uses the \paket{translations} package~\cite{pkg:translations} to +translate language dependent strings. The advantage of this is that language +settings with \paket{babel}~\cite{pkg:babel} or +\paket{polyglossia}~\cite{pkg:polyglossia} are detected automatically. +However, the available translations are somewhat limited due to my limited +language knowledge. If you find missing or wrong translations you can try to +add or correct them by adding the corresponding versions of the following +lines to your preamble: \begin{beispiel}[code only] - \DeclareTranslation{English}{enotez-title}{Notes} - % ``<name> <ref>'' is a placeholder for e.g. ``section 1'': - \DeclareTranslation{English}{enotez-splitted-title}{Notes for <name> <ref>} - \DeclareTranslation{English}{enotez-section}{section} - \DeclareTranslation{English}{enotez-chapter}{chapter} + \DeclareTranslation{English}{enotez-title}{Notes} + % ``<name> <ref>'' is a placeholder for e.g. ``section 1'': + \DeclareTranslation{English}{enotez-splitted-title}{Notes for <name> <ref>} + \DeclareTranslation{English}{enotez-section}{section} + \DeclareTranslation{English}{enotez-chapter}{chapter} \end{beispiel} If you like you can also drop me an email at \href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu} and I'll add the correct translations to \enotez. + \secidx*{Language Support} \section{hyperref Support}\secidx{\paket*{hyperref} Support}[hyperref Support] @@ -620,23 +619,25 @@ If \paket{hyperref} is loaded and you are using the option \key{totoc} (see p~\pageref{key:totoc}) the list title is linked via a \verb=\phantomsection=. If \paket{hyperref} is used with \code{hyperfootnotes} set to \code{true} the -endnote marks are linked to the respective entries in the list\changedversion{0.7}. -If you also set \enotez' option \key{backref} (see p~\pageref{key:backref}) the -notes in the list are themselves linked to the marks in the text. +endnote marks are linked to the respective entries in the +list\changedversion{0.7}. If you also set \enotez' option \key{backref} (see +p~\pageref{key:backref}) the notes in the list are themselves linked to the +marks in the text. + \secidx*{\paket*{hyperref} Support}[hyperref Support] \AtNextEndnotesList{This is an example of a preamble to the list set with \cmd{AtNextEndnotesList}.} -\AfterEveryEndnotesList{\noindent This is an example of a postamble to the list -set with \cmd{AfterEveryEndnotesList}. Note that it would have started with a -paragraph indent which was prevented here by using \cmd{noindent}.} +\AfterEveryEndnotesList{\noindent This is an example of a postamble to the + list set with \cmd{AfterEveryEndnotesList}. Note that it would have started + with a paragraph indent which was prevented here by using \cmd{noindent}.} \printendnotes[addsec] \printbibliography \indexprologue{\noindent Section titles are indicated \textbf{bold}, packages -\textsf{sans serif}, commands \code{\textbackslash\textcolor{code}{brown}} - and options \textcolor{key}{\code{yellow}}.\par\bigskip} + \textsf{sans serif}, commands \code{\textbackslash\textcolor{code}{brown}} + and options \textcolor{key}{\code{yellow}}.\par\bigskip} \printindex -\end{document}
\ No newline at end of file +\end{document} diff --git a/Master/texmf-dist/tex/latex/enotez/enotez.sty b/Master/texmf-dist/tex/latex/enotez/enotez.sty index f3bcac7068e..1c510bc4931 100644 --- a/Master/texmf-dist/tex/latex/enotez/enotez.sty +++ b/Master/texmf-dist/tex/latex/enotez/enotez.sty @@ -31,8 +31,8 @@ \RequirePackage{ expl3 , xparse , l3keys2e , xtemplate , etoolbox , xpatch , scrlfile } \ProvidesExplPackage {enotez} - {2013/05/01} - {0.7} + {2013/08/03} + {0.7a} {Endnotes for LaTeX2e} % -------------------------------------------------------------------------- @@ -77,6 +77,12 @@ { \token_to_str:N #1 } { \token_to_str:N #2 } } + +% -------------------------------------------------------------------------- +% variants of kernel functions +\cs_generate_variant:Nn \tl_if_eq:nnTF { Vn , nx } +\cs_generate_variant:Nn \tl_if_eq:nnT { xx } + % -------------------------------------------------------------------------- % variables: \bool_new:N \l__enotez_print_note_bool @@ -142,6 +148,27 @@ \cs_new_eq:NN \enotez_counter_format:n \int_to_arabic:n \cs_generate_variant:Nn \enotez_counter_format:n { V } +\cs_new_eq:NN \__enotez_int_to_arabic:n \int_to_arabic:n +\cs_new_eq:NN \__enotez_int_to_roman:n \int_to_roman:n +\cs_new_eq:NN \__enotez_int_to_Roman:n \int_to_Roman:n +\cs_new_eq:NN \__enotez_int_to_alph:n \int_to_alph:n +\cs_new_eq:NN \__enotez_int_to_Alph:n \int_to_Alph:n +\cs_new:Npn \__enotez_int_to_symbols:n #1 + { + \int_to_symbols:nnn { #1 } { 9 } + { + { 1 } { \mode_if_math:TF { * } { \textasteriskcentered } } + { 2 } { \mode_if_math:TF { \dagger } { \textdagger } } + { 3 } { \mode_if_math:TF { \ddagger } { \textdaggerdbl } } + { 4 } { \mode_if_math:TF { \mathsection } { \textsection } } + { 5 } { \mode_if_math:TF { \mathparagraph } { \textparagraph } } + { 6 } { \mode_if_math:TF { \| } { \textbardbl } } + { 7 } { \mode_if_math:TF { ** } { \textasteriskcentered\textasteriskcentered } } + { 8 } { \mode_if_math:TF { \dagger\dagger } { \textdagger\textdagger } } + { 9 } { \mode_if_math:TF { \ddagger\ddagger } { \textdaggerdbl\textdaggerdbl } } + } + } + \keys_define:nn { enotez } { backref .bool_set:N = \l__enotez_hyperbackref_bool , @@ -150,9 +177,10 @@ reset .bool_set:N = \l__enotez_reset_bool , % TODO: add symbols and other possible formats, use cntformats? counter-format .choice_code:n = - \cs_set_eq:Nc \enotez_counter_format:n { int_to_ \l_keys_choice_tl :n } , + \cs_set_eq:Nc \enotez_counter_format:n + { __enotez_int_to_ \l_keys_choice_tl :n } , counter-format .generate_choices:n = - { arabic , alph , Alph , roman , Roman } , + { arabic , alph , Alph , roman , Roman , symbols } , mark-format .code:n = \cs_set:Npn \enmarkstyle { #1 } , mark-cs .code:n = \cs_set:Npn \enotezwritemark { #1 } , totoc .choice_code:n = @@ -173,7 +201,7 @@ split .generate_choices:n = { section , chapter , false } , split-sectioning .code:n = \enotez_option_deprecated:nn { split-sectioning } { split-heading } - \l__enotez_splitted_list_sectioning_tl , + \cs_set:Npn \enotezsplitlistheading ##1 { #1 } , split-heading .code:n = \cs_set:Npn \enotezsplitlistheading ##1 { #1 } , split-title .tl_set:N = \l__enotez_splitted_title_tl , @@ -181,8 +209,6 @@ list-preamble-skip .skip_set:N = \l__enotez_list_preamble_skip , list-postamble-skip .skip_set:N = \l__enotez_list_postamble_skip } -\cs_generate_variant:Nn \tl_if_eq:nnTF { Vn , nx } -\cs_generate_variant:Nn \tl_if_eq:nnT { xx } % -------------------------------------------------------------------------- % typeset the actual mark: @@ -583,7 +609,7 @@ % determine which note's next: \cs_new_protected:Npn \enotez_get_note:nn #1#2 { - \IfBooleanTF { #1 } + \bool_if:nTF { #1 } { \prop_get:NnN \g__enotez_endnote_mark_prop { #2 } \l__enotez_endnote_mark_tl \prop_get:NnN \g__enotez_endnote_text_prop { #2 } \l__enotez_endnote_text_tl @@ -594,15 +620,23 @@ \bool_if:NTF \l__enotez_split_bool { \bool_set_true:N \l__enotez_print_note_bool - \prop_gpop:NnN \g__enotez_endnote_mark_prop { #2 } \l__enotez_endnote_mark_tl - \prop_gpop:NnN \g__enotez_endnote_text_prop { #2 } \l__enotez_endnote_text_tl + \prop_gpop:NnN \g__enotez_endnote_mark_prop + { #2 } + \l__enotez_endnote_mark_tl + \prop_gpop:NnN \g__enotez_endnote_text_prop + { #2 } + \l__enotez_endnote_text_tl } { \int_compare:nTF { \l__enotez_tmpa_tl = \g__enotez_list_printed_int } { \bool_set_true:N \l__enotez_print_note_bool - \prop_gpop:NnN \g__enotez_endnote_mark_prop { #2 } \l__enotez_endnote_mark_tl - \prop_gpop:NnN \g__enotez_endnote_text_prop { #2 } \l__enotez_endnote_text_tl + \prop_gpop:NnN \g__enotez_endnote_mark_prop + { #2 } + \l__enotez_endnote_mark_tl + \prop_gpop:NnN \g__enotez_endnote_text_prop + { #2 } + \l__enotez_endnote_text_tl \prop_gremove:Nn \g__enotez_endnote_split_prop { #2 } } { \bool_set_false:N \l__enotez_print_note_bool } @@ -671,13 +705,13 @@ % internal printendnotes: \cs_new_protected:Npn \enotez_print_endnotes:nn #1#2 { - \IfNoValueTF { #2 } + \tl_if_blank:nTF { #2 } { \UseInstance { enotez-list } { \l__enotez_list_instance_tl } } { \UseInstance { enotez-list } { #2 } } { #1 } \bool_if:NF \l__enotez_split_bool { - \bool_if:NTF \l__enotez_reset_bool + \bool_if:NT \l__enotez_reset_bool { \int_gzero:N \g__enotez_endnote_mark_int } \int_gincr:N \g__enotez_list_printed_int } @@ -686,9 +720,17 @@ % the user command: \NewDocumentCommand \printendnotes { so } { - \bool_if:NTF \l__enotez_split_bool - { \enotez_print_endnotes:nn { \BooleanFalse } { #2 } } - { \enotez_print_endnotes:nn { #1 } { #2 } } + \IfNoValueTF { #2 } + { + \bool_if:NTF \l__enotez_split_bool + { \enotez_print_endnotes:nn { \BooleanFalse } { } } + { \enotez_print_endnotes:nn { #1 } { } } + } + { + \bool_if:NTF \l__enotez_split_bool + { \enotez_print_endnotes:nn { \BooleanFalse } { #2 } } + { \enotez_print_endnotes:nn { #1 } { #2 } } + } } % -------------------------------------------------------------------------- @@ -916,8 +958,10 @@ - new: \AtEveryListSplit, \AfterEveryListSplit, \EnotezCurrentSplitTitle - new option: `list-heading' +2013/08/03 v0.7a - corrected bug: `reset=true' now works as it should + - added counter-format `symbols' % -------------------------------------------------------------------------- % TODO: - add \endnotemark and \endnotetext -- make the headings obey the `totoc' option?
\ No newline at end of file +- make the headings obey the `totoc' option? |