From d211c476a793546259e3fe8b6417f3f36d477a99 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 6 Sep 2013 23:13:16 +0000 Subject: datatool (6sep13) git-svn-id: svn://tug.org/texlive/trunk@31588 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/datatool/databib.bst | 8 ++- Master/texmf-dist/doc/latex/datatool/CHANGES | 13 ++++ Master/texmf-dist/doc/latex/datatool/README | 12 +++- .../doc/latex/datatool/datatool-code.pdf | Bin 893222 -> 893369 bytes .../doc/latex/datatool/datatool-user.pdf | Bin 598839 -> 600386 bytes .../doc/latex/datatool/datatool-user.tex | 28 ++++++-- .../doc/latex/datatool/samples/sample-barchart.pdf | Bin 35087 -> 35087 bytes .../doc/latex/datatool/samples/sample-dict.pdf | Bin 122606 -> 122606 bytes .../doc/latex/datatool/samples/sample-gidx.pdf | Bin 180146 -> 180324 bytes .../doc/latex/datatool/samples/sample-glossary.pdf | Bin 104269 -> 104460 bytes .../doc/latex/datatool/samples/sample-index.pdf | Bin 128798 -> 128798 bytes .../latex/datatool/samples/sample-mail-merge.pdf | Bin 22208 -> 22164 bytes .../doc/latex/datatool/samples/sample-piechart.pdf | Bin 33977 -> 33977 bytes .../datatool/samples/sample-student-scores.pdf | Bin 34628 -> 34628 bytes .../latex/datatool/samples/sample-two-per-row.pdf | Bin 31764 -> 31764 bytes .../texmf-dist/source/latex/datatool/datatool.dtx | 80 +++++++++++++++++---- .../texmf-dist/source/latex/datatool/datatool.ins | 2 +- .../tex/latex/datatool/datatool-base.sty | 2 +- Master/texmf-dist/tex/latex/datatool/datatool.sty | 34 +++++++-- 19 files changed, 148 insertions(+), 31 deletions(-) diff --git a/Master/texmf-dist/bibtex/bst/datatool/databib.bst b/Master/texmf-dist/bibtex/bst/datatool/databib.bst index cb63be2b675..2677c374a69 100644 --- a/Master/texmf-dist/bibtex/bst/datatool/databib.bst +++ b/Master/texmf-dist/bibtex/bst/datatool/databib.bst @@ -737,7 +737,13 @@ FUNCTION {article} new.block crossref missing$ { - "\DTLnewbibitem {Journal}" * + journal missing$ + { + } + { + "\DTLnewbibitem {Journal}" * + } + if$ journal group "journal" output.check format.vol.num.pages output format.date "year" output.check diff --git a/Master/texmf-dist/doc/latex/datatool/CHANGES b/Master/texmf-dist/doc/latex/datatool/CHANGES index ebf870514c8..987f07c8ce7 100644 --- a/Master/texmf-dist/doc/latex/datatool/CHANGES +++ b/Master/texmf-dist/doc/latex/datatool/CHANGES @@ -1,3 +1,16 @@ +v2.18: + + * datatool: + + - added check in \dtlsort for existence of specified keys + + - reverted \DTLpar back to a robust command instead of using \let + + + * databib.bst: + + Fixed error caused when article entry journal field missing + v2.17: * datatool: diff --git a/Master/texmf-dist/doc/latex/datatool/README b/Master/texmf-dist/doc/latex/datatool/README index e13a8ecc48b..c215e9e5819 100644 --- a/Master/texmf-dist/doc/latex/datatool/README +++ b/Master/texmf-dist/doc/latex/datatool/README @@ -1,12 +1,12 @@ -LaTeX Bundle : datatool v2.17 +LaTeX Bundle : datatool v2.18 -Last Modified : 2013-08-29 +Last Modified : 2013-09-06 Author : Nicola Talbot This bundle consists of the packages: datatool.sty, datatool-base.sty, datatool-fp.sty, datatool-pgfmath.sty, -databar.sty, databib.sty, datapie.sty dataplot.sty, +databar.sty, databib.sty, datapie.sty dataplot.sty, datagidx.sty person.sty. datatool.sty: @@ -90,6 +90,12 @@ databib.sty: Provides commands to convert a BibTeX database into a datatool database. +datagidx.sty: + + Provides a way of indexing or creating glossaries/lists of acronyms + that uses TeX to do the sorting and collating instead of using an + external indexing application, such as xindy or makeindex. + person.sty: Provides commands to display a person's name and pronoun in an diff --git a/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf b/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf index 1994ba47f93..aadde68d664 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf and b/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf b/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf index 343f339834d..16f513d7498 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf and b/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/datatool-user.tex b/Master/texmf-dist/doc/latex/datatool/datatool-user.tex index 07da5dd87a8..d641d8a5f3a 100644 --- a/Master/texmf-dist/doc/latex/datatool/datatool-user.tex +++ b/Master/texmf-dist/doc/latex/datatool/datatool-user.tex @@ -91,11 +91,11 @@ \MakeShortVerb{"} \DeleteShortVerb{\|} - \title{User Manual for datatool bundle version~2.17} + \title{User Manual for datatool bundle version~2.18} \author{Nicola L.C. Talbot\\ \url{http://www.dickimaw-books.com/}} - \date{2013-08-29} + \date{2013-09-06} \maketitle \pagenumbering{roman} @@ -110,7 +110,7 @@ The \styfmt{datatool} bundle comes with the following documentation: \item[\url{datatool-code.pdf}] Advanced users wishing to know more about the inner workings of all the packages provided in the \styfmt{datatool} bundle should - read \qt{Documented Code for datatool v2.17} + read \qt{Documented Code for datatool v2.18} \item[INSTALL] Installation instructions. @@ -1328,6 +1328,11 @@ match. \chapter{Fixed Point Arithmetic} \label{sec:fp} +\begin{important} +The \sty{datatool} bundle doesn't support scientific +notation. +\end{important} + The \sty{datatool-base} package uses either the \sty{fp} or the \sty{pgfmath} package to perform fixed point arithmetic, however all numbers must be converted from the locale dependent format into the format required by the @@ -1423,6 +1428,19 @@ back into the locale format using Note that since these commands use \cs{DTLconverttodecimal} the caveat above regarding expansion also applies to all the commands. +\begin{important} +If you don't require currency or locale conversion, you can reduce +the package overheads by using the commands defined in the +\sty{datatool-fp} or \sty{datatool-pgfmath} packages which provide +interface commands to \sty{fp} or \sty{pgfmath}, respectively. +(See sections~\ref*{sec:code:datatool-fp} +and~\ref*{sec:code:datatool-pgfmath} of the documented code, +\texttt{datatool-code.pdf}.) +Alternatively, you can just use the \sty{fp} or \sty{pgfmath} +commands explicitly. (See the \sty{fp} or \sty{pgf} manuals for +further details.) +\end{important} + \begin{definition}[\DescribeMacro{\DTLadd}]% \cs{DTLadd}\marg{cmd}\marg{num1}\marg{num2} @@ -8387,10 +8405,10 @@ The \sty{databar} package options are as follows: \begin{definition}[\DescribeMacro{\DTLbarchart}]% -\cs{DTLbarchart}\oarg{condition}\marg{db name}\marg{settings}\marg{values} +\cs{DTLbarchart}\oarg{condition}\marg{settings}\marg{db name}\marg{values} \end{definition} \begin{definition}[\DescribeMacro{\DTLmultibarchart}]% -\cs{DTLmultibarchart}\oarg{condition}\marg{db name}\marg{settings}\marg{values} +\cs{DTLmultibarchart}\oarg{condition}\marg{settings}\marg{db name}\marg{values} \end{definition} These commands both create a bar chart from the information in the database \meta{db name}, where \meta{condition} is the same diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdf index 62314cbc6bd..dcc87e1095b 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdf index 2741b9732f1..d209c431431 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdf index 9899165d244..6423b8921da 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdf index 2672317ae55..a2ff8cfbfb9 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdf index ebc16da0672..95dc10fa433 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdf index 43a32ddde60..f945e24d367 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdf index 66e135f9b5d..e0562d58ab1 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf index e9691d084a4..d3c91d76512 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf differ diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-two-per-row.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-two-per-row.pdf index c892444e75b..46d94b1b278 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-two-per-row.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-two-per-row.pdf differ diff --git a/Master/texmf-dist/source/latex/datatool/datatool.dtx b/Master/texmf-dist/source/latex/datatool/datatool.dtx index 109413ab6c6..3e6c46f074e 100644 --- a/Master/texmf-dist/source/latex/datatool/datatool.dtx +++ b/Master/texmf-dist/source/latex/datatool/datatool.dtx @@ -19,7 +19,7 @@ % -author "Nicola Talbot" % -codetitle "" % datatool -% Created on 2013/8/29 23:06 +% Created on 2013/9/6 9:51 %\fi %\iffalse %<*package> @@ -66,7 +66,7 @@ datatool.dtx \doxitem{Counter}{counter}{counters} \doxitem{Option}{option}{package options} -\CheckSum{22897} +\CheckSum{22921} \RecordChanges \PageIndex @@ -79,11 +79,11 @@ datatool.dtx %\fi %\MakeShortVerb{"} % -%\title{Documented Code for datatool v2.17} +%\title{Documented Code for datatool v2.18} %\author{Nicola L. C. Talbot\\ %\url{http://www.dickimaw-books.com/}} % -%\date{2013-08-29} +%\date{2013-09-06} %\maketitle % %\pagenumbering{roman} @@ -118,7 +118,7 @@ datatool.dtx % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool-base}[2013/08/29 v2.17 (NLCT)] +\ProvidesPackage{datatool-base}[2013/09/06 v2.18 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -5709,7 +5709,7 @@ datatool.dtx %\section{Package Declaration} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool}[2013/08/29 v2.17 (NLCT)] +\ProvidesPackage{datatool}[2013/09/06 v2.18 (NLCT)] % \end{macrocode} % Load required packages: % \begin{macrocode} @@ -5717,6 +5717,7 @@ datatool.dtx \RequirePackage{ifthen} \RequirePackage{xfor} \RequirePackage{substr} +\RequirePackage{etoolbox} % \end{macrocode} %\changes{2.0}{2009 February 27}{added etex as a required package} % \begin{macrocode} @@ -5737,7 +5738,7 @@ datatool.dtx %\begin{definition} %\cs{DTLsetseparator}\marg{char} %\end{definition} -% The sets \cs{@dtl@separator}, and constructs the relevent macros +% The sets \cs{@dtl@separator}, and constructs the relevant macros % that require this character to be hardcoded into their definition. % \begin{macrocode} \newcommand*{\DTLsetseparator}[1]{% @@ -5923,11 +5924,14 @@ datatool.dtx %\begin{macro}{\DTLpar} % Many of the commands used by this package are short commands. % This means that you can't use \cs{par} -% in the data. To get around this, provide a synonym for \cs{@@par} -% that can be used instead +% in the data. This command needs to be robust so it doesn't get +% expanded when written to a file. We also can't just use a synonym +% for \cs{@@par} because it may be used in a context where \cs{par} +% has a different meaning to \cs{@@par}. %\changes{2.14}{2013-06-28}{changed to \cs{let}} +%\changes{2.18}{2013-09-06}{changed back to a robust command} % \begin{macrocode} -\let\DTLpar\@@par +\DeclareRobustCommand{\DTLpar}{\par} % \end{macrocode} %\end{macro} % @@ -11241,19 +11245,59 @@ datatool.dtx % \begin{macrocode} \edef\@dtl@replacementkeys{#1}% % \end{macrocode} -% Store sort order in \cs{@dtl@sortorder}. +% Store sort order in \cs{@dtl@sortorder}, but check specified keys exist. +%\changes{2.18}{2013-09-06}{added check for existence of keys listed in sort +%criteria} +% \begin{macrocode} + \def\@dtl@sortorder{}% + \@for\@dtl@level:=#2\do + {% +% \end{macrocode} +% Get key (stored in \cs{@dtl@key}). +% \begin{macrocode} + \expandafter\@dtl@getsortdirection\@dtl@level=\relax +% \end{macrocode} +% Check key exists. +% \begin{macrocode} + \DTLifhaskey{#3}{\@dtl@key}% + {% +% \end{macrocode} +% Key exists, so add to \cs{@dtl@sortorder}. % \begin{macrocode} - \edef\@dtl@sortorder{#2}% + \ifdefempty\@dtl@sortorder + {\let\@dtl@sortorder=\@dtl@level}% + {\eappto\@dtl@sortorder{,\@dtl@level}}% + }% + {% +% \end{macrocode} +% Key doesn't exist. +% \begin{macrocode} + \PackageError{datatool}% + {% + Can't sort on `\@dtl@level'. + No such key `\@dtl@key' in database `#3'% + }{}% + }% + }% +% \end{macrocode} +% Now check if we have any keys left to sort on. +% \begin{macrocode} + \ifdefempty\@dtl@sortorder + {% + \PackageWarning{datatool}{No keys provided to sort database `#3'}% + }% + {% % \end{macrocode} % Set \cs{@dtl@comparecs} to the required string comparison % function. (Using case insensitive comparison macro % \cs{dtlicompare}.) % \begin{macrocode} - \let\@dtl@comparecs=#4% + \let\@dtl@comparecs=#4% % \end{macrocode} % Sort the database. % \begin{macrocode} - \dtl@sortdata{#3}% + \dtl@sortdata{#3}% + }% }% {% \PackageError{datatool}{Database `#3' doesn't exist}{}% @@ -27141,7 +27185,13 @@ FUNCTION {article} new.block crossref missing$ { - "\DTLnewbibitem {Journal}" * + journal missing$ + { + } + { + "\DTLnewbibitem {Journal}" * + } + if$ journal group "journal" output.check format.vol.num.pages output format.date "year" output.check diff --git a/Master/texmf-dist/source/latex/datatool/datatool.ins b/Master/texmf-dist/source/latex/datatool/datatool.ins index df96e9f5aeb..78fa2dca79b 100644 --- a/Master/texmf-dist/source/latex/datatool/datatool.ins +++ b/Master/texmf-dist/source/latex/datatool/datatool.ins @@ -1,4 +1,4 @@ -% datatool.ins generated using makedtx version 0.94b 2013/8/29 23:06 +% datatool.ins generated using makedtx version 0.94b 2013/9/6 9:51 \input docstrip \preamble diff --git a/Master/texmf-dist/tex/latex/datatool/datatool-base.sty b/Master/texmf-dist/tex/latex/datatool/datatool-base.sty index 65be692efb1..8d7474b95ec 100644 --- a/Master/texmf-dist/tex/latex/datatool/datatool-base.sty +++ b/Master/texmf-dist/tex/latex/datatool/datatool-base.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool-base}[2013/08/29 v2.17 (NLCT)] +\ProvidesPackage{datatool-base}[2013/09/06 v2.18 (NLCT)] \RequirePackage{etoolbox} \RequirePackage{amsmath} \RequirePackage{xkeyval} diff --git a/Master/texmf-dist/tex/latex/datatool/datatool.sty b/Master/texmf-dist/tex/latex/datatool/datatool.sty index 7b65fd06807..9281a51c9cf 100644 --- a/Master/texmf-dist/tex/latex/datatool/datatool.sty +++ b/Master/texmf-dist/tex/latex/datatool/datatool.sty @@ -39,11 +39,12 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool}[2013/08/29 v2.17 (NLCT)] +\ProvidesPackage{datatool}[2013/09/06 v2.18 (NLCT)] \RequirePackage{xkeyval} \RequirePackage{ifthen} \RequirePackage{xfor} \RequirePackage{substr} +\RequirePackage{etoolbox} \RequirePackage{etex} \newcommand*{\@dtl@separator}{,} \newcommand*{\DTLsetseparator}[1]{% @@ -116,7 +117,7 @@ \ProcessOptionsX \@dtl@construct@lopoffs \RequirePackage{datatool-base} -\let\DTLpar\@@par +\DeclareRobustCommand{\DTLpar}{\par} \newcommand*{\DTLnewdb}[1]{% \DTLifdbexists{#1}% {% @@ -2459,9 +2460,32 @@ \typeout{Sorting `#3' - this may take a while.}% \fi \edef\@dtl@replacementkeys{#1}% - \edef\@dtl@sortorder{#2}% - \let\@dtl@comparecs=#4% - \dtl@sortdata{#3}% + \def\@dtl@sortorder{}% + \@for\@dtl@level:=#2\do + {% + \expandafter\@dtl@getsortdirection\@dtl@level=\relax + \DTLifhaskey{#3}{\@dtl@key}% + {% + \ifdefempty\@dtl@sortorder + {\let\@dtl@sortorder=\@dtl@level}% + {\eappto\@dtl@sortorder{,\@dtl@level}}% + }% + {% + \PackageError{datatool}% + {% + Can't sort on `\@dtl@level'. + No such key `\@dtl@key' in database `#3'% + }{}% + }% + }% + \ifdefempty\@dtl@sortorder + {% + \PackageWarning{datatool}{No keys provided to sort database `#3'}% + }% + {% + \let\@dtl@comparecs=#4% + \dtl@sortdata{#3}% + }% }% {% \PackageError{datatool}{Database `#3' doesn't exist}{}% -- cgit v1.2.3