summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/datatool/datatool.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-28 03:00:42 +0000
committerNorbert Preining <norbert@preining.info>2019-09-28 03:00:42 +0000
commitf41a5d46017f730e9586332f28744912872326f5 (patch)
tree0e7ebb355adbdb56ac9d1e236dd5cde0b71e1520 /macros/latex/contrib/datatool/datatool.dtx
parent5827a950592f8a91468bcd0b5963d1df8d3518d8 (diff)
CTAN sync 201909280300
Diffstat (limited to 'macros/latex/contrib/datatool/datatool.dtx')
-rw-r--r--macros/latex/contrib/datatool/datatool.dtx523
1 files changed, 342 insertions, 181 deletions
diff --git a/macros/latex/contrib/datatool/datatool.dtx b/macros/latex/contrib/datatool/datatool.dtx
index 9115c37a69..14a45e55f0 100644
--- a/macros/latex/contrib/datatool/datatool.dtx
+++ b/macros/latex/contrib/datatool/datatool.dtx
@@ -1,9 +1,12 @@
%\iffalse
% datatool.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -macrocode "databib\.bst"
+% -author "Nicola Talbot"
% -codetitle ""
+% -macrocode "databib\.bst"
% -setambles "databib\.bst=>\nopreamble\nopostamble"
+% -doc "datatool-manual.tex"
+% -comment "databib\.bst"
% -src "datatool-base.sty\Z=>datatool-base.sty"
% -src "datatool-fp.sty\Z=>datatool-fp.sty"
% -src "datatool-pgfmath.sty\Z=>datatool-pgfmath.sty"
@@ -15,11 +18,8 @@
% -src "dataplot.sty\Z=>dataplot.sty"
% -src "person.sty\Z=>person.sty"
% -src "databib.bst\Z=>databib.bst"
-% -doc "datatool-manual.tex"
-% -author "Nicola Talbot"
-% -comment "databib\.bst"
% datatool
-% Created on 2018/12/7 15:44
+% Created on 2019/9/27 19:53
%\fi
%\iffalse
%<*package>
@@ -42,7 +42,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2018 Nicola Talbot, all rights reserved.
+% Copyright (C) 2019 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -68,7 +68,7 @@ datatool.dtx
\doxitem{Counter}{counter}{counters}
\doxitem{Option}{option}{package options}
-\CheckSum{24081}
+\CheckSum{24235}
\RecordChanges
\PageIndex
@@ -81,11 +81,11 @@ datatool.dtx
%\fi
%\MakeShortVerb{"}
%
-%\title{Documented Code for datatool v2.31}
+%\title{Documented Code for datatool v2.32}
%\author{Nicola L. C. Talbot\\
%\url{http://www.dickimaw-books.com/}}
%
-%\date{2018-12-07}
+%\date{2019-09-27}
%\maketitle
%
%\pagenumbering{roman}
@@ -100,8 +100,6 @@ datatool.dtx
%\pagenumbering{arabic}
%
%\StopEventually{%
-% \clearpage\phantomsection
-% \addcontentsline{toc}{chapter}{Index}%
% \PrintIndex
% \clearpage\phantomsection
% \addcontentsline{toc}{chapter}{History}\PrintChanges
@@ -121,7 +119,7 @@ datatool.dtx
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-base}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{datatool-base}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -2626,8 +2624,7 @@ datatool.dtx
\dtl@split@str##2\@nil
}%
}%
- \def\dtl@split@str##1#2\@nil{%
- \def#4{##1}}%
+ \def\dtl@split@str##1#2\@nil{\def#4{##1}}%
\dtl@splitstr#1#2\@nil
}
% \end{macrocode}
@@ -3102,6 +3099,15 @@ datatool.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\ifdtlcompareskipcs}
+%\changes{2.32}{2019-09-27}{new}
+%If true, \cs{dtlcompare} should skip control sequences.
+% \begin{macrocode}
+\newif\ifdtlcompareskipcs
+\dtlcompareskipcsfalse
+% \end{macrocode}
+%\end{macro}
+%
%\label{src:dtlcompare}
%\begin{macro}{\dtlcompare}
%\begin{definition}
@@ -3155,8 +3161,16 @@ datatool.dtx
%\dtlcompare{\mycount}{foo}{\uppercase{f}oo}\number\mycount, since
%the \cs{uppercase} command is ignored.
%
-%\item You can ``trick'' \cs{dtlcompare} using a command which doesn't
-%output any text. Suppose you have defined the following command:
+%\item A control sequence is treated as having the character code
+%value of 0. Pre version 2.32, \cs{dtlcompare} was advertised here
+%as skipping control sequences when actually it was treating a
+%control sequence as character 0. To avoid breaking
+%backward-compatibility where a control sequence is expected to have
+%this behaviour, we now have a switch to determine whether to treat
+%control sequences as 0 or to skip them.
+%
+%So you can now ``trick'' \cs{dtlcompare} using a command which doesn't
+%output any text if switch this conditional on. Suppose you have defined the following command:
%\begin{verbatim}
%\newcommand*{\noopsort}[1]{}
%\end{verbatim}
@@ -3234,100 +3248,159 @@ datatool.dtx
#1=1\relax
}%
{%
- \DTLsubstituteall{\@dtl@argA}{ }{\space }%
- \DTLsubstituteall{\@dtl@argB}{ }{\space }%
+% \end{macrocode}
+% Identify all word breaks.
+%\changes{2.32}{2019-09-27}{now using \cs{dtl@setwordbreaksnohyphens} to
+%deal with spaces}
+% \begin{macrocode}
+ \dtl@setwordbreaksnohyphens{\@dtl@argA}{\@dtl@wordbreak}%
+ \let\@dtl@argA\dtl@string
+ \dtl@setwordbreaksnohyphens{\@dtl@argB}{\@dtl@wordbreak}%
+ \let\@dtl@argB\dtl@string
\expandafter\dtl@getfirst\@dtl@argA\end@dtl@getfirst
\let\dtl@firstA=\dtl@first
\let\dtl@restA=\dtl@rest
\expandafter\dtl@getfirst\@dtl@argB\end@dtl@getfirst
\let\dtl@firstB=\dtl@first
\let\dtl@restB=\dtl@rest
- \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstA}{%
- \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstB}{%
- \expandafter\dtl@setcharcode\expandafter{\dtl@firstA}{\dtl@codeA}%
- \expandafter\dtl@setcharcode\expandafter{\dtl@firstB}{\dtl@codeB}%
- \ifnum\dtl@codeA=-1\relax
- \ifnum\dtl@codeB=-1\relax
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstA}%
+ {%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstB}%
+ {%
+ \expandafter\dtl@setcharcode\expandafter{\dtl@firstA}{\dtl@codeA}%
+ \expandafter\dtl@setcharcode\expandafter{\dtl@firstB}{\dtl@codeB}%
+% \end{macrocode}
+%\changes{2.32}{2019-09-27}{added check to determine if control sequences
+%should be skipped}
+% If control sequences should be skipped, check if either is a
+% control sequence (the character code will be 0).
+% \begin{macrocode}
+ \let\dtl@donextcompare\@firstofone
+ \ifdtlcompareskipcs
+ \ifnum\dtl@codeA=0\relax
+ \ifnum\dtl@codeB=0\relax
+% \end{macrocode}
+%Skip both.
+% \begin{macrocode}
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}{\expandonce\dtl@restA}{\expandonce\dtl@restB}}%
+ \dtl@donext
+ \let\dtl@donextcompare\@gobble
+ \else
+% \end{macrocode}
+%Skip A.
+% \begin{macrocode}
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}{\expandonce\dtl@restA}{\expandonce\@dtl@argB}}%
+ \dtl@donext
+ \let\dtl@donextcompare\@gobble
+ \fi
+ \else
+ \ifnum\dtl@codeB=0\relax
+% \end{macrocode}
+%Skip B.
+% \begin{macrocode}
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}{\expandonce\@dtl@argA}{\expandonce\dtl@restB}}%
+ \dtl@donext
+ \let\dtl@donextcompare\@gobble
+ \fi
+ \fi
+ \fi
+ \dtl@donextcompare
+ {%
+ \ifnum\dtl@codeA=-1\relax
+ \ifnum\dtl@codeB=-1\relax
% \end{macrocode}
%v2.25: added \cs{expandonce} to prevent non-ASCII characters from being
%expanded.
%\changes{2.25}{2016-01-18}{added \cs{expandonce}}
% \begin{macrocode}
- \edef\dtl@donext{%
- \noexpand\dtlcompare
- {\noexpand#1}{\expandonce\dtl@restA}{\expandonce\dtl@restB}}%
- \dtl@donext
- \else
- \edef\dtl@donext{%
- \noexpand\dtlcompare
- {\noexpand#1}%
- {\expandonce\dtl@restA}%
- {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
- \dtl@donext
- \fi
- \else
- \ifnum\dtl@codeB=-1\relax
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}{\expandonce\dtl@restA}{\expandonce\dtl@restB}}%
+ \dtl@donext
+ \else
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}%
+ {\expandonce\dtl@restA}%
+ {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
+ \dtl@donext
+ \fi
+ \else
+ \ifnum\dtl@codeB=-1\relax
% \end{macrocode}
%v2.25: added \cs{expandonce} to prevent non-ASCII characters from being
%expanded.
% \begin{macrocode}
- \edef\dtl@donext{%
- \noexpand\dtlcompare
- {\noexpand#1}%
- {\expandonce\dtl@firstA\expandonce\dtl@restA}%
- {\expandonce\dtl@restB}}%
- \dtl@donext
- \else
- \ifnum\dtl@codeA<\dtl@codeB
- #1=-1\relax
- \else
- \ifnum\dtl@codeA>\dtl@codeB
- #1=1\relax
- \else
- \ifdefempty{\dtl@restA}%
- {%
- \ifdefempty{\dtl@restB}%
- {%
- #1=0\relax
- }%
- {%
- #1=-1\relax
- }%
- }%
- {%
- \ifdefempty{\restB}%
- {%
- #1=1\relax
- }%
- {%
- \protected@edef\dtl@donext{%
- \noexpand\dtlcompare
- {\noexpand#1}{\dtl@restA}{\dtl@restB}}%
- \dtl@donext
- }%
- }%
- \fi
- \fi
- \fi
- \fi
- }{%
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}%
+ {\expandonce\dtl@firstA\expandonce\dtl@restA}%
+ {\expandonce\dtl@restB}}%
+ \dtl@donext
+ \else
+ \ifnum\dtl@codeA<\dtl@codeB
+ #1=-1\relax
+ \else
+ \ifnum\dtl@codeA>\dtl@codeB
+ #1=1\relax
+ \else
+ \ifdefempty{\dtl@restA}%
+ {%
+ \ifdefempty{\dtl@restB}%
+ {%
+ #1=0\relax
+ }%
+ {%
+ #1=-1\relax
+ }%
+ }%
+ {%
+% \end{macrocode}
+%\changes{2.32}{2019-09-27}{corrected misspelt command}
+% \begin{macrocode}
+ \ifdefempty{\dtl@restB}%
+ {%
+ #1=1\relax
+ }%
+ {%
+ \protected@edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}{\dtl@restA}{\dtl@restB}}%
+ \dtl@donext
+ }%
+ }%
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ }%
+ {%
% \end{macrocode}
%v2.25: added \cs{expandonce} to prevent non-ASCII characters from being
%expanded.
% \begin{macrocode}
- \edef\dtl@donext{%
- \noexpand\dtlcompare
- {\noexpand#1}%
- {\expandonce\dtl@firstA\expandonce\dtl@restA}%
- {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
- \dtl@donext
- }}{%
- \edef\dtl@donext{%
- \noexpand\dtlcompare
- {\noexpand#1}%
- {\expandonce\dtl@firstA\expandonce\dtl@restA}%
- {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
- \dtl@donext
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}%
+ {\expandonce\dtl@firstA\expandonce\dtl@restA}%
+ {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
+ \dtl@donext
+ }%
+ }%
+ {%
+ \edef\dtl@donext{%
+ \noexpand\dtlcompare
+ {\noexpand#1}%
+ {\expandonce\dtl@firstA\expandonce\dtl@restA}%
+ {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
+ \dtl@donext
}%
}%
}%
@@ -3414,8 +3487,9 @@ datatool.dtx
%\begin{definition}
%\cs{dtl@setcharcode}\marg{c}\marg{count register}
%\end{definition}
-% Sets \meta{count register} to the character code of \meta{c}, or to
-% -1 if \meta{c} is a control sequence, unless \meta{c} is either
+% Sets \meta{count register} to the character code of \meta{c}, or
+% to $-1$ if \meta{c} is empty, or to
+% 0 if \meta{c} is a control sequence, unless \meta{c} is either
% \cs{space} or |~| in which case it sets \meta{count register}
% to the character code of the space character.
% \begin{macrocode}
@@ -3923,76 +3997,123 @@ datatool.dtx
% \begin{macrocode}
\expandafter\dtl@setlccharcode\expandafter{\dtl@firstA}{\dtl@codeA}%
\expandafter\dtl@setlccharcode\expandafter{\dtl@firstB}{\dtl@codeB}%
- \ifnum\dtl@codeA=-1\relax
- \ifnum\dtl@codeB=-1\relax
+% \end{macrocode}
+%\changes{2.32}{2019-09-27}{added check to determine if control sequences
+%should be skipped}
+% If control sequences should be skipped, check if either is a
+% control sequence (the character code will be 0).
+% \begin{macrocode}
+ \let\dtl@donextcompare\@firstofone
+ \ifdtlcompareskipcs
+ \ifnum\dtl@codeA=0\relax
+ \ifnum\dtl@codeB=0\relax
+% \end{macrocode}
+%Skip both.
+% \begin{macrocode}
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare
+ {\noexpand#1}{\expandonce\dtl@restA}{\expandonce\dtl@restB}}%
+ \dtl@donext
+ \let\dtl@donextcompare\@gobble
+ \else
+% \end{macrocode}
+%Skip A.
+% \begin{macrocode}
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare
+ {\noexpand#1}{\expandonce\dtl@restA}{\expandonce\@dtl@argB}}%
+ \dtl@donext
+ \let\dtl@donextcompare\@gobble
+ \fi
+ \else
+ \ifnum\dtl@codeB=0\relax
+% \end{macrocode}
+%Skip B.
+% \begin{macrocode}
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare
+ {\noexpand#1}{\expandonce\@dtl@argA}{\expandonce\dtl@restB}}%
+ \dtl@donext
+ \let\dtl@donextcompare\@gobble
+ \fi
+ \fi
+ \fi
+ \dtl@donextcompare
+ {%
+ \ifnum\dtl@codeA=-1\relax
+ \ifnum\dtl@codeB=-1\relax
% \end{macrocode}
%v2.25: added \cs{expandonce} to prevent non-ASCII characters from being
%expanded.
%\changes{2.25}{2016-01-18}{added \cs{expandonce}}
% \begin{macrocode}
- \edef\dtl@donext{%
- \noexpand\dtlicompare{\noexpand#1}%
- {\expandonce\dtl@restA}{\expandonce\dtl@restB}}%
- \dtl@donext
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare{\noexpand#1}%
+ {\expandonce\dtl@restA}{\expandonce\dtl@restB}}%
+ \dtl@donext
+ \else
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare
+ {\noexpand#1}%
+ {\expandonce\dtl@restA}%
+ {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
+ \dtl@donext
+ \fi
\else
- \edef\dtl@donext{%
- \noexpand\dtlicompare
- {\noexpand#1}%
- {\expandonce\dtl@restA}%
- {\expandonce\dtl@firstB\expandonce\dtl@restB}}%
- \dtl@donext
- \fi
- \else
- \ifnum\dtl@codeB=-1\relax
+ \ifnum\dtl@codeB=-1\relax
% \end{macrocode}
%v2.25: added \cs{expandonce} to prevent non-ASCII characters from being
%expanded.
% \begin{macrocode}
- \edef\dtl@donext{%
- \noexpand\dtlicompare
- {\noexpand#1}%
- {\expandonce\dtl@firstA\expandonce\dtl@restA}%
- {\expandonce\dtl@restB}}%
- \dtl@donext
- \else
- \ifnum\dtl@codeA<\dtl@codeB
- #1=-1\relax
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare
+ {\noexpand#1}%
+ {\expandonce\dtl@firstA\expandonce\dtl@restA}%
+ {\expandonce\dtl@restB}}%
+ \dtl@donext
\else
- \ifnum\dtl@codeA>\dtl@codeB
- #1=1\relax
+ \ifnum\dtl@codeA<\dtl@codeB
+ #1=-1\relax
\else
- \ifdefempty{\dtl@restA}%
- {%
- \ifdefempty{\dtl@restB}%
- {%
- #1=0\relax
- }%
+ \ifnum\dtl@codeA>\dtl@codeB
+ #1=1\relax
+ \else
+ \ifdefempty{\dtl@restA}%
{%
- #1=-1\relax
- }%
- }%
- {%
- \ifdefempty{\restB}%
- {%
- #1=1\relax
+ \ifdefempty{\dtl@restB}%
+ {%
+ #1=0\relax
+ }%
+ {%
+ #1=-1\relax
+ }%
}%
{%
% \end{macrocode}
+%\changes{2.32}{2019-09-27}{corrected misspelt command}
+% \begin{macrocode}
+ \ifdefempty{\dtl@restB}%
+ {%
+ #1=1\relax
+ }%
+ {%
+% \end{macrocode}
%v2.25: added \cs{expandonce} to prevent non-ASCII characters from being
%expanded.
% \begin{macrocode}
- \edef\dtl@donext{%
- \noexpand\dtlicompare
- {\noexpand#1}%
- {\expandonce\dtl@restA}%
- {\expandonce\dtl@restB}}%
- \dtl@donext
+ \edef\dtl@donext{%
+ \noexpand\dtlicompare
+ {\noexpand#1}%
+ {\expandonce\dtl@restA}%
+ {\expandonce\dtl@restB}}%
+ \dtl@donext
+ }%
}%
- }%
+ \fi
\fi
\fi
\fi
- \fi
+ }%
}%
{%
% \end{macrocode}
@@ -6138,7 +6259,7 @@ datatool.dtx
% Definitions of fixed-point commands that use the \sty{fp} package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-fp}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{datatool-fp}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -6427,7 +6548,7 @@ datatool.dtx
% Definitions of fixed-point commands that use the \sty{pgfmath} package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-pgfmath}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{datatool-pgfmath}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -6768,7 +6889,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{datatool}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -8267,7 +8388,7 @@ datatool.dtx
% \begin{macrocode}
{%
\dtlgetrow{#1}{#2}%
- \@dtl@assign{#3}{#1}%
+ \@dtl@assign{#3}{#1}%
}%
}%
{%
@@ -9878,11 +9999,12 @@ datatool.dtx
\DTLiffirstrow
% \end{macrocode}
% Define current \cs{DTLiffirstrow}
+%\changes{2.32}{2019-09-27}{removed \cs{relax}}
% \begin{macrocode}
\gdef\DTLiffirstrow##1##2{%
\expandafter\ifnum
\csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname
- =1\relax
+ =1 %space intended
##1%
\else
##2%
@@ -9896,11 +10018,12 @@ datatool.dtx
% \end{macrocode}
% Define current \cs{DTLiflastrow}
%\changes{2.12}{2012-11-30}{fixed bug in \cs{DTLiflastrow}}
+%\changes{2.32}{2019-09-27}{removed \cs{relax}}
% \begin{macrocode}
\gdef\DTLiflastrow##1##2{%
\expandafter\ifnum
\csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname
- =\csname dtlrows@#2\endcsname\relax
+ =\csname dtlrows@#2\endcsname
##1%
\else
##2%
@@ -9969,11 +10092,9 @@ datatool.dtx
= \dtlafterrow
% \end{macrocode}
% Assign commands to the required entries
+%\changes{2.32}{2019-09-27}{changed \cs{ifx} test to \cs{ifblank}}
% \begin{macrocode}
- \ifx\relax#3\relax
- \else
- \@dtl@assign{#3}{#2}%
- \fi
+ \ifblank{#3}{}{\@dtl@assign{#3}{#2}}%
% \end{macrocode}
% Do the main body of text if condition is satisfied
% \begin{macrocode}
@@ -10153,11 +10274,12 @@ datatool.dtx
\DTLiffirstrow
% \end{macrocode}
% Define current \cs{DTLiffirstrow}
+%\changes{2.32}{2019-09-27}{removed \cs{relax}}
% \begin{macrocode}
\gdef\DTLiffirstrow##1##2{%
\expandafter\ifnum
\csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname
- =1\relax
+ =1 % space intended
##1%
\else
##2%
@@ -10171,11 +10293,12 @@ datatool.dtx
% \end{macrocode}
% Define current \cs{DTLiflastrow}
%\changes{2.12}{2012-11-30}{fixed bug in \cs{DTLiflastrow}}
+%\changes{2.32}{2019-09-27}{removed \cs{relax}}
% \begin{macrocode}
\gdef\DTLiflastrow##1##2{%
\expandafter\ifnum
\csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname
- =\csname dtlrows@#2\endcsname\relax
+ =\csname dtlrows@#2\endcsname
##1%
\else
##2%
@@ -10225,15 +10348,16 @@ datatool.dtx
= \expandafter{\dtl@thisrow}%
% \end{macrocode}
% Assign commands to the required entries
+%\changes{2.32}{2019-09-27}{changed \cs{ifx} test to \cs{ifblank}}
% \begin{macrocode}
- \ifx\relax#3\relax
- \else
+ \ifblank{#3}{}
+ {%
% \end{macrocode}
% Need to set \cs{dtlcurrentrow} for \cs{@dtl@assign}
% \begin{macrocode}
\dtlcurrentrow=\expandafter{\dtl@thisrow}%
\@dtl@assign{#3}{#2}%
- \fi
+ }%
% \end{macrocode}
% Do the main body of text if condition is satisfied
% \begin{macrocode}
@@ -14363,7 +14487,7 @@ datatool.dtx
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datagidx}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{datagidx}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -18332,22 +18456,48 @@ datatool.dtx
% need to redefine this if you want accented letters to be sorted
% differently from the unaccented version. This command should
% only be used within a scope.
-% \begin{macrocode}
-\newcommand*{\datagidxstripaccents}{%
+%\changes{2.32}{2019-09-27}{added test for kernel version}
+% Need to test kernel version. The new 2019/10/01 version has a
+% different definition of \cs{UTFviii@two@octets} which won't expand
+% UTF-8 characters to \cs{IeC} in the required context. (This is
+% really useful if you want extended characters in labels but not if
+% they need to be stripped.) If you don't want accents stripped then
+% redefine \cs{datagidxstripaccents} to do nothing.
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2019/10/01}
+{%
+ \newcommand*{\datagidxstripaccents}{%
% \end{macrocode}
% These redefinitions will only work with \cs{edef} or \cs{xdef}:
% \begin{macrocode}
- \let\add@accent@\@secondoftwo
- \let\@text@composite@x\@secondoftwo
- \let\@tabacckludge\@secondoftwo
+ \let\add@accent@\@secondoftwo
+ \let\@text@composite@x\@secondoftwo
+ \let\@tabacckludge\@secondoftwo
% \end{macrocode}
% The following are need with \cs{protected@edef} or \cs{protected@xdef}:
% \begin{macrocode}
- \expandafter\def\csname \encodingdefault-cmd\endcsname##1##2##3{##3}%
- \expandafter\def\csname OT1-cmd\endcsname##1##2##3{##3}%
- \expandafter\def\csname T1-cmd\endcsname##1##2##3{##3}%
- \expandafter\def\csname PD1-cmd\endcsname##1##2##3{##3}%
- \def\IeC##1{\@gobbletwo##1}%
+ \expandafter\def\csname \encodingdefault-cmd\endcsname##1##2##3{##3}%
+ \expandafter\def\csname OT1-cmd\endcsname##1##2##3{##3}%
+ \expandafter\def\csname T1-cmd\endcsname##1##2##3{##3}%
+ \expandafter\def\csname PD1-cmd\endcsname##1##2##3{##3}%
+ \def\IeC##1{\@gobbletwo##1}%
+ \let\UTFviii@two@octets\UTFviii@two@octets@combine
+ }%
+}
+{%
+% \end{macrocode}
+% Older kernels:
+% \begin{macrocode}
+ \newcommand*{\datagidxstripaccents}{%
+ \let\add@accent@\@secondoftwo
+ \let\@text@composite@x\@secondoftwo
+ \let\@tabacckludge\@secondoftwo
+ \expandafter\def\csname \encodingdefault-cmd\endcsname##1##2##3{##3}%
+ \expandafter\def\csname OT1-cmd\endcsname##1##2##3{##3}%
+ \expandafter\def\csname T1-cmd\endcsname##1##2##3{##3}%
+ \expandafter\def\csname PD1-cmd\endcsname##1##2##3{##3}%
+ \def\IeC##1{\@gobbletwo##1}%
+ }%
}
% \end{macrocode}
%\end{macro}
@@ -20290,17 +20440,10 @@ datatool.dtx
% Current location was saved in the previous run. Has it changed?
%\changes{2.15}{2013-07-10}{expanded and sanitize locations before
%comparing them}%
+%This may cause a problem on page boundaries so this code block may
+%be removed in future versions.
% \begin{macrocode}
- \protected@edef\@prev@location{%
- \csname datagidx@prev@loc@\Label\endcsname}%
- \@onelevel@sanitize\@prev@location
- \protected@edef\@cur@location{\CurrentLocation}%
- \@onelevel@sanitize\@cur@location
- \ifdefequal{\@prev@location}{\@cur@location}%
- {}%
- {%
- \global\let\@datagidx@dorerun@warn\@data@rerun@warn
- }%
+ \dtlgidx@checklocationchange
}%
{%
% \end{macrocode}
@@ -20338,6 +20481,24 @@ datatool.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\dtlgidx@checklocationchange}
+%\changes{2.32}{??}{new}
+% \begin{macrocode}
+\newcommand*{\dtlgidx@checklocationchange}{%
+ \protected@edef\@prev@location{%
+ \csname datagidx@prev@loc@\Label\endcsname}%
+ \@onelevel@sanitize\@prev@location
+ \protected@edef\@cur@location{\CurrentLocation}%
+ \@onelevel@sanitize\@cur@location
+ \ifdefequal{\@prev@location}{\@cur@location}%
+ {}%
+ {%
+ \global\let\@datagidx@dorerun@warn\@data@rerun@warn
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\datagidx@doifdisplayed}
%\begin{definition}
%\cs{datagidx@doifdisplayed}\marg{body}
@@ -20413,7 +20574,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databib}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{databib}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -23336,7 +23497,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databar}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{databar}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Require \sty{xkeyval} package
% \begin{macrocode}
@@ -24643,7 +24804,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datapie}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{datapie}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Require \sty{xkeyval} package
% \begin{macrocode}
@@ -25445,7 +25606,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{dataplot}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{dataplot}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Required packages
% \begin{macrocode}
@@ -27067,7 +27228,7 @@ east,southeast,south,southwest,west,northwest}[northeast]{%
% Package identification:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{person}[2018/12/07 v2.31 (NLCT)]
+\ProvidesPackage{person}[2019/09/27 v2.32 (NLCT)]
% \end{macrocode}
% Requires the \sty{ifthen} package.
% \begin{macrocode}