summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/changes/changes.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/changes/changes.dtx')
-rw-r--r--Master/texmf-dist/source/latex/changes/changes.dtx179
1 files changed, 104 insertions, 75 deletions
diff --git a/Master/texmf-dist/source/latex/changes/changes.dtx b/Master/texmf-dist/source/latex/changes/changes.dtx
index 5a302b36ff4..a2637ca7f16 100644
--- a/Master/texmf-dist/source/latex/changes/changes.dtx
+++ b/Master/texmf-dist/source/latex/changes/changes.dtx
@@ -1,8 +1,8 @@
-% \CheckSum{1086}
+% \CheckSum{1115}
%
% \iffalse meta-comment
%
-% Copyright (C) 2007-2015
+% Copyright (C) 2007-2018
% Ekkart Kleinod (ekleinod@edgesoft.de)
% --------------------------------------------------------------------------
%
@@ -53,6 +53,7 @@
% \changes{v2.0.2}{2013/08/13}{again no changes in behavior or code; fixed CTAN upload - pdf files were corrupt; improved documentation}
% \changes{v2.0.3}{2014/10/15}{bugfix when using with amsart}
% \changes{v2.0.4}{2015/04/27}{unknown language does not lead to error: fallback English}
+% \changes{v2.1.0}{2018/10/10}{fixed problems with final option and additional spaces/blanks, warning for wrong list style}
% \GetFileInfo{changes.dtx}
% \RecordChanges
%
@@ -76,6 +77,7 @@
%
% \selectlanguage{english}
%
+% \cleardoublepage
% \section{The documented sourcecode}
%
% The sourcecode is documented in English only.
@@ -92,8 +94,8 @@
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{changes}
-[2015/04/27 v2.0.4 changes package]
-\typeout{*** changes package 2015/04/27 v2.0.4 ***}
+[2018/10/10 v2.1.0 changes package]
+\typeout{*** changes package 2018/10/10 v2.1.0 ***}
% \end{macrocode}
%
% Package \chpackage{xkeyval} provides options with key-value-pairs.
@@ -579,7 +581,7 @@
% Store id, name and color using named variables.
% Define counter and color per author.
% \begin{macrocode}
-\newcommand*\definechangesauthor[2][]{%
+\newcommand*\definechangesauthor[2][]{
% \end{macrocode}
%
% Call \emph{setkeys} in order to evaluate the key-value-options and fill the value storage.
@@ -909,9 +911,14 @@
% Call \emph{setkeys} in order to evaluate the key-value-options and fill the value storage.
% \begin{macrocode}
\setkeys{Changes@added}{#1}%
+ \let\Changes@esphack\relax%
\Changes@output%
{\Changes@Markup@Added{#2}}%
- {#2}%
+ {%
+ \ifthenelse{\equal{\@empty}{#2}}%
+ {\@bsphack \let\Changes@esphack\@esphack}%
+ {#2}%
+ }%
{\Changes@added@id}%
{\Changes@added@remark}%
{#2}%
@@ -920,6 +927,7 @@
{\Changes@added@decid}%
{\Changes@added@decremark}%
\stepcounter{Changes@AddCount\Changes@added@id}%
+ \Changes@esphack%
}
% \end{macrocode}
% \end{macro}
@@ -927,8 +935,9 @@
% \begin{macro}{\deleted}
% The command formats text as deleted text.
%
-% The definition of the empty text for unchanged text is taken from a tip from \texttt{de.comp.text.tex}.
-% It solves the problem of additional space caused by an empty command.
+% The definition of the empty text for unchanged text is provided by Frank Mittelbach, slightly modified by me.
+% It solves the problem of additional space caused by an empty command (e.g. when using the \choption{final} option).
+% Before that, there was a slightly erroneous version from \texttt{de.comp.text.tex} (issue \#2).
%
% Mandatory argument: deleted text.
% Optional argument (key-value): author's id, remark, decision, decision author's id, decision remark
@@ -938,9 +947,10 @@
% Call \emph{setkeys} in order to evaluate the key-value-options and fill the value storage.
% \begin{macrocode}
\setkeys{Changes@deleted}{#1}%
+ \let\Changes@esphack\relax%
\Changes@output%
{\Changes@Markup@Deleted{#2}}%
- {\@bsphack \expandafter \@esphack}%
+ {\@bsphack \let\Changes@esphack\@esphack}%
{\Changes@deleted@id}%
{\Changes@deleted@remark}%
{#2}%
@@ -949,6 +959,7 @@
{\Changes@deleted@decid}%
{\Changes@deleted@decremark}%
\stepcounter{Changes@DeleteCount\Changes@deleted@id}%
+ \Changes@esphack%
}
% \end{macrocode}
% \end{macro}
@@ -964,10 +975,15 @@
% Call \emph{setkeys} in order to evaluate the key-value-options and fill the value storage.
% \begin{macrocode}
\setkeys{Changes@replaced}{#1}%
- \Changes@output
- {{\Changes@Markup@Added{#2}}{\Changes@Markup@Deleted{#3}}}
- {#2}
- {\Changes@replaced@id}
+ \let\Changes@esphack\relax%
+ \Changes@output%
+ {{\Changes@Markup@Added{#2}}{\Changes@Markup@Deleted{#3}}}%
+ {%
+ \ifthenelse{\equal{\@empty}{#2}}%
+ {\@bsphack \let\Changes@esphack\@esphack}%
+ {#2}%
+ }%
+ {\Changes@replaced@id}%
{\Changes@replaced@remark}%
{#2}%
{\changesreplacename}%
@@ -975,6 +991,7 @@
{\Changes@replaced@decid}%
{\Changes@replaced@decremark}%
\stepcounter{Changes@ReplaceCount\Changes@replaced@id}%
+ \Changes@esphack%
}
% \end{macrocode}
% \end{macro}
@@ -1026,72 +1043,84 @@
% \begin{macrocode}
\newcommand{\listofchanges}[1][style=list]{%
\setkeys{Changes@loc}{#1}%
- \ifthenelse{\equal{\@empty}{\Changes@loc@style}}
- {\def\Changes@loc@style{list}}
- {
- \ifthenelse{
- \equal{\Changes@loc@style}{list}\or
- \equal{\Changes@loc@style}{summary}
- }
- {}
- {\def\Changes@loc@style{list}}
- }
+% \end{macrocode}
+% All work is done only in draft mode.
+% \begin{macrocode}
+ \ifthenelse{\boolean{Changes@optiondraft}}%
+ {%
+% \end{macrocode}
+% Check if style is known, otherwise use \choption{list} by default.
+% \begin{macrocode}
+ \ifthenelse{\equal{\@empty}{\Changes@loc@style}}%
+ {\def\Changes@loc@style{list}}%
+ {%
+ \ifthenelse{%
+ \equal{\Changes@loc@style}{list}\or%
+ \equal{\Changes@loc@style}{summary}%
+ }%
+ {}%
+ {%
+ \PackageWarning{changes}{Wrong style for list of changes: '\Changes@loc@style', using 'list' instead.}%
+ \def\Changes@loc@style{list}%
+ }%
+ }%
% \end{macrocode}
% Print list.
% \begin{macrocode}
- \ifthenelse{\equal{\Changes@loc@style}{list}}
- {
- \section*{\listofchangesname}
- \IfFileExists{\jobname.loc}
- {}{
- \emph{\changesnoloc}
- \PackageWarning{changes}{LaTeX rerun needed for list of changes}
- }
- \@starttoc{loc}{}
- }
+ \ifthenelse{\equal{\Changes@loc@style}{list}}%
+ {%
+ \section*{\listofchangesname}%
+ \IfFileExists{\jobname.loc}%
+ {}{%
+ \emph{\changesnoloc}%
+ \PackageWarning{changes}{LaTeX rerun needed for list of changes}%
+ }%
+ \@starttoc{loc}{}%
+ }%
% \end{macrocode}
% Print summary, but only in draft mode.
% \begin{macrocode}
- {
- \ifthenelse{\boolean{Changes@optiondraft}}
- {
- \section*{\summaryofchangesname}
- \IfFileExists{\jobname.\Changes@extension}
- {
- \setboolean{Changes@MoreLines}{true}
- \newread\Changes@InFile
- \openin\Changes@InFile = \jobname.\Changes@extension
- \whiledo{\boolean{Changes@MoreLines}}{
- \read\Changes@InFile to \Changes@Line
- \ifeof\Changes@InFile
- \setboolean{Changes@MoreLines}{false}
- \else
- \expandafter\changes@chopline\Changes@Line\\
+ {%
+ \section*{\summaryofchangesname}%
+ \IfFileExists{\jobname.\Changes@extension}%
+ {%
+ \setboolean{Changes@MoreLines}{true}%
+ \newread\Changes@InFile%
+ \openin\Changes@InFile = \jobname.\Changes@extension%
+ \whiledo{\boolean{Changes@MoreLines}}{%
+ \read\Changes@InFile to \Changes@Line%
+ \ifeof\Changes@InFile%
+ \setboolean{Changes@MoreLines}{false}%
+ \else%
+ \expandafter\changes@chopline\Changes@Line\\%
\textbf{%
- \ifthenelse{\boolean{Changes@colored}}
- {\color{\Changes@InColor}}
- {}
- \ifthenelse{\equal{\Changes@InID}{\@empty}}
- {\changesauthorname: \changesanonymousname}
+ \ifthenelse{\boolean{Changes@colored}}%
+ {\color{\Changes@InColor}}%
+ {}%
+ \ifthenelse{\equal{\Changes@InID}{\@empty}}%
+ {\changesauthorname: \changesanonymousname}%
{%
- \changesauthorname: \Changes@InID
- \ifthenelse{\equal{\Changes@InName}{\@empty}}
- {}
- { (\Changes@InName)}
- }
- }\\
- \parbox{\Changes@Len@summ}{\changesaddname~\dotfill~\Changes@InAdded}\\
- \parbox{\Changes@Len@summ}{\changesdeletename~\dotfill~\Changes@InDeleted}\\
- \parbox{\Changes@Len@summ}{\changesreplacename~\dotfill~\Changes@InReplaced}\\[1ex]
- \fi
- }
- \closein\Changes@InFile
+ \changesauthorname: \Changes@InID%
+ \ifthenelse{\equal{\Changes@InName}{\@empty}}%
+ {}%
+ { (\Changes@InName)}%
+ }%
+ }\\%
+ \parbox{\Changes@Len@summ}{\changesaddname~\dotfill~\Changes@InAdded}\\%
+ \parbox{\Changes@Len@summ}{\changesdeletename~\dotfill~\Changes@InDeleted}\\%
+ \parbox{\Changes@Len@summ}{\changesreplacename~\dotfill~\Changes@InReplaced}\\[1ex]%
+ \fi%
+ }%
+ \closein\Changes@InFile%
}{%
- \emph{\changesnosoc}
- \PackageWarning{changes}{LaTeX rerun needed for summary of changes}
- }
- }{}
- }
+ \emph{\changesnosoc}%
+ \PackageWarning{changes}{LaTeX rerun needed for summary of changes}%
+ }%
+ }%
+% \end{macrocode}
+% In final mode print nothing.
+% \begin{macrocode}
+ }{}%
}
% \end{macrocode}
% \end{macro}
@@ -1118,16 +1147,16 @@
% Output data for list of changes.
% \begin{macrocode}
\setcounter{Changes@Author}{0}
- \whiledo{\value{Changes@Author} < \value{Changes@AuthorCount}}{
- \stepcounter{Changes@Author}
- \def\Changes@ID{\@nameuse{Changes@AuthorID\theChanges@Author}}
+ \whiledo{\value{Changes@Author} < \value{Changes@AuthorCount}}{%
+ \stepcounter{Changes@Author}%
+ \def\Changes@ID{\@nameuse{Changes@AuthorID\theChanges@Author}}%
\immediate\write\Changes@OutFile{\Changes@ID;%
\@nameuse{Changes@AuthorColor\Changes@ID};%
\@nameuse{Changes@AuthorName\Changes@ID};%
\the\value{Changes@AddCount\Changes@ID};%
\the\value{Changes@DeleteCount\Changes@ID};%
- \the\value{Changes@ReplaceCount\Changes@ID}}
- }
+ \the\value{Changes@ReplaceCount\Changes@ID}}%
+ }%
% \end{macrocode}
% Close output file.
% \begin{macrocode}