From 8ea05b291a97fc98c330f2c40922932a0c460398 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 7 Dec 2018 22:50:44 +0000 Subject: datatool (7dec18) git-svn-id: svn://tug.org/texlive/trunk@49344 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/datatool/CHANGES | 56 ++++++++----- Master/texmf-dist/doc/latex/datatool/README | 4 +- .../doc/latex/datatool/datatool-code.pdf | Bin 1184311 -> 1188072 bytes .../doc/latex/datatool/datatool-user.pdf | Bin 639231 -> 641116 bytes .../doc/latex/datatool/datatool-user.tex | 87 ++++++++++++++++++--- .../doc/latex/datatool/samples/sample-autokeys.pdf | Bin 24923 -> 24911 bytes .../doc/latex/datatool/samples/sample-barchart.pdf | Bin 35066 -> 35054 bytes .../latex/datatool/samples/sample-datatooltk.pdf | Bin 22860 -> 22848 bytes .../doc/latex/datatool/samples/sample-dict.pdf | Bin 122428 -> 122418 bytes .../latex/datatool/samples/sample-europecv-bib.pdf | Bin 89557 -> 89544 bytes .../doc/latex/datatool/samples/sample-gidx.pdf | Bin 179796 -> 179887 bytes .../doc/latex/datatool/samples/sample-glossary.pdf | Bin 104427 -> 104516 bytes .../doc/latex/datatool/samples/sample-index.pdf | Bin 128788 -> 128777 bytes .../latex/datatool/samples/sample-mail-merge.pdf | Bin 21869 -> 21655 bytes .../doc/latex/datatool/samples/sample-piechart.pdf | Bin 33957 -> 33945 bytes .../doc/latex/datatool/samples/sample-sort.pdf | Bin 89724 -> 89703 bytes .../datatool/samples/sample-student-scores.pdf | Bin 34614 -> 34602 bytes .../latex/datatool/samples/sample-two-per-row.pdf | Bin 31751 -> 31739 bytes 18 files changed, 116 insertions(+), 31 deletions(-) (limited to 'Master/texmf-dist/doc/latex/datatool') diff --git a/Master/texmf-dist/doc/latex/datatool/CHANGES b/Master/texmf-dist/doc/latex/datatool/CHANGES index 17613fc75c0..219c569cb24 100644 --- a/Master/texmf-dist/doc/latex/datatool/CHANGES +++ b/Master/texmf-dist/doc/latex/datatool/CHANGES @@ -1,17 +1,33 @@ -v2.30 +v2.31 (2018-12-07): + + * datatool-base.sty: + + - added conditional \ifDTLlistskipempty + + - new commands \DTLlistelement and \DTLfetchlistelement + + - made \DTLnumitemsinlist robust and now checks + \ifDTLlistskipempty + + - \DTLformatlist now checks \ifDTLlistskipempty + + - bug fix: \$ entry without value triggers + extra \else in \@dtl@checknumericalstart + +v2.30 (2018-04-16): * datatool.sty - bug fix: spurious spaces in \@dtl@lopoff (used by \DTLloaddb and DTLloadrawdb) -v2.29 +v2.29 (2017-11-12): * datatool.sty: - bug fix https://tex.stackexchange.com/questions/400921 -v2.28: +v2.28 (2017-11-10): * datatool.sty: @@ -38,7 +54,7 @@ v2.28: - \printterms uses \twocolumn if balance=false and columns=2 -v2.27: +v2.27 (2016-07-28): * datatool-base: @@ -55,7 +71,7 @@ v2.27: - new command \edtlinsertinto -v2.26: +v2.26 (2016-07-20): * datatool-base: @@ -71,7 +87,7 @@ v2.26: - \FP... code replaced by \dtl... code -v2.25: +v2.25 (2016-01-18): * datatool-base: @@ -83,7 +99,7 @@ v2.25: - Added section "Advanced Iteration". -v2.24: +v2.24 (2016-01-12): * datatool-base: @@ -96,7 +112,7 @@ v2.24: \dtlsetdefaultUTFviiilccharcode for use with the comparison handlers. -v2.23: +v2.23 (2015-07-11): * datatool: @@ -120,7 +136,7 @@ v2.23: - Bug fix: replaced \@thisperson with #1 in \ifmale and \iffemale -v2.22: +v2.22 (2014-06-10): * datatool-base: @@ -138,7 +154,7 @@ v2.22: -v2.21: +v2.21 (2014-03-08): * datatool: @@ -160,7 +176,7 @@ v2.21: - Fixed bug in \datagidx@parse@location -v2.20: +v2.20 (2014-02-03): * datatool: @@ -172,7 +188,7 @@ v2.20: - Fixed bug in \DTLforeach* (\@dtl@dbname undefined) -v2.19: +v2.19 (2014-01-17): * datatool: @@ -187,7 +203,7 @@ v2.19: - defines \@idxitem if not already defined -v2.18: +v2.18 (2013-09-06): * datatool: @@ -200,7 +216,7 @@ v2.18: Fixed error caused when article entry journal field missing -v2.17: +v2.17 (2013-08-29): * datatool: @@ -212,7 +228,7 @@ v2.17: - fixed packaging of databib.bst -v2.16: +v2.16 (2013-08-16): * datatool: @@ -225,7 +241,7 @@ v2.16: argument is a command that expands to empty. -v2.15: +v2.15 (2013-07-10): * datagidx: @@ -254,7 +270,7 @@ v2.15: - fixed scoping issue with \DTLaddtoplotlegend -v2.14: +v2.14 (2013-06-28): * datatool: @@ -284,7 +300,7 @@ v2.14: * Fixed minor typos in user manual -v2.13: +v2.13 (2013-01-15): * Added new package `datagidx' @@ -337,7 +353,7 @@ v2.13: - added \dtlwordindexcompare -v2.12: +v2.12 (2012-11-30): * datatool.sty: @@ -350,7 +366,7 @@ v2.12: - fixed bug in conditionals. -v2.11: +v2.11 (2012-09-25): * datatool.sty: diff --git a/Master/texmf-dist/doc/latex/datatool/README b/Master/texmf-dist/doc/latex/datatool/README index 6ab220d637c..7e784650d6c 100644 --- a/Master/texmf-dist/doc/latex/datatool/README +++ b/Master/texmf-dist/doc/latex/datatool/README @@ -1,6 +1,6 @@ -LaTeX Bundle : datatool v2.30 +LaTeX Bundle : datatool v2.31 -Last Modified : 2018-04-16 +Last Modified : 2018-12-07 Author : Nicola Talbot diff --git a/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf b/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf index b983b74ef2b..08f7743eb0a 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 c0c2615b5f2..8001340d5e9 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 aeefbfea21a..08f01e258ff 100644 --- a/Master/texmf-dist/doc/latex/datatool/datatool-user.tex +++ b/Master/texmf-dist/doc/latex/datatool/datatool-user.tex @@ -103,11 +103,11 @@ \MakeShortVerb{"} - \title{User Manual for datatool bundle version~2.30} + \title{User Manual for datatool bundle version~2.31} \author{Nicola L.C. Talbot\\ \url{http://www.dickimaw-books.com/}} - \date{2018-04-16} + \date{2018-12-07} \maketitle \pagenumbering{roman} @@ -122,7 +122,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.30} + read \qt{Documented Code for datatool v2.31} \item[INSTALL] Installation instructions. @@ -148,7 +148,7 @@ your calculations or data manipulation and save the results in a file that can be input into your document.} For large amounts of data that need to be sorted or filtered or joined, consider storing your data in an~SQL database and use -\app{datatooltk}\footnote{\url{http://www.dickimaw-books.com/apps/datatooltk/}} to import the data, +\app{datatooltk}\footnote{\url{http://www.dickimaw-books.com/software/datatooltk/}} to import the data, using SQL syntax to filter, sort and otherwise manipulate the values. \end{important} @@ -2069,7 +2069,7 @@ by \styfmt{datatool-base}). In addition to those commands, \styfmt{datatool-base} provides some commands that deal with comma-separated lists. Note that this just refers to a control sequence that stores -a list of elements separated by commands, for example: +a list of elements separated by commas, for example: \begin{verbatim} \newcommand{\mylist}{elephant,ant,zebra,duck} \end{verbatim} @@ -2083,16 +2083,40 @@ Formats the comma-separated list. The unstarred version scopes the internal operation. The starred form doesn't. The \meta{list} may either be an explicit comma-separated list or a control sequence whose replacement -text is a comma-separated list. For example: +text is a comma-separated list. If the list contains empty +elements then \cs{DTLformatlist} will either include or +skip the empty element according to the conditional: +\begin{definition}[\DescribeMacro{\ifDTLlistskipempty}] +\cs{ifDTLlistskipempty} +\end{definition} +For example: \begin{verbatim} -\newcommand{\mylist}{elephant,ant,zebra,duck}% +\newcommand{\mylist}{elephant,,ant,zebra,duck}% +\DTLlistskipemptytrue +\DTLformatlist{\mylist}\par +\DTLlistskipemptyfalse \DTLformatlist{\mylist} \end{verbatim} which produces: \begin{display} -\newcommand{\mylist}{elephant,ant,zebra,duck}% +\newcommand{\mylist}{elephant,,ant,zebra,duck}% +\DTLlistskipemptytrue +\DTLformatlist{\mylist}\par +\DTLlistskipemptyfalse \DTLformatlist{\mylist} \end{display} +The default setting is +\begin{verbatim} +\DTLlistskipemptytrue +\end{verbatim} +Note that this may cause a difference when upgrading to v2.31 +as in previous versions \cs{DTLformatlist} didn't skip empty +elements. To restore the original behaviour use: +\begin{verbatim} +\DTLlistskipemptyfalse +\end{verbatim} +before \cs{DTLformatlist}. + The list formatting command inserts \begin{definition}[\DescribeMacro\DTLlistformatsep] \cs{DTLlistformatsep} @@ -2166,8 +2190,53 @@ expansion on \meta{element}.) \begin{definition}[\DescribeMacro{\DTLnumitemsinlist}] \cs{DTLnumitemsinlist}\marg{list}\marg{cmd} \end{definition} -Counts the number of non-empty elements in \meta{list} and stores +Counts the number of elements in \meta{list} and stores the result in \meta{cmd}, which must be a control sequence. +As from v2.31, this obeys the conditional \cs{ifDTLlistskipempty} +to determine if empty elements should be skipped. For example: +\begin{verbatim} +\newcommand{\mylist}{foo,,bar,baz,wibble} +Number of non-empty elements: +\DTLnumitemsinlist{\mylist}{\listnum}\listnum.\par +\DTLlistskipemptyfalse +Number of elements (including empty): +\DTLnumitemsinlist{\mylist}{\listnum}\listnum. +\end{verbatim} +This produces: +\begin{display} +\newcommand{\mylist}{foo,,bar,baz,wibble} +Number of non-empty elements: \DTLnumitemsinlist{\mylist}{\listnum}\listnum.\par +\DTLlistskipemptyfalse +Number of elements (including empty): \DTLnumitemsinlist{\mylist}{\listnum}\listnum. +\end{display} + +\begin{definition}[\DescribeMacro{\DTLlistelement}] +\cs{DTLlistelement}\marg{list}\marg{index} +\end{definition} +Does the \meta{index}th element of the list (starting at 1 for +the first element) or generates a warning if the index is out +of range. This obeys the conditional \cs{ifDTLlistskipempty} +to determine if empty elements should be skipped. +For example: +\begin{verbatim} +\newcommand{\mylist}{foo,,bar,baz,wibble} +3rd item in list (skip empty): \DTLlistelement{\mylist}{3}.\par +\ifDTLlistskipempty +3rd item in list (include empty): \DTLlistelement{\mylist}{3}. +\end{verbatim} +This produces: +\begin{display} +\newcommand{\mylist}{foo,,bar,baz,wibble} +3rd item in list (skip empty): \DTLlistelement{\mylist}{3}.\par +\ifDTLlistskipempty +3rd item in list (include empty): \DTLlistelement{\mylist}{3}. +\end{display} + +\begin{definition}[\DescribeMacro{\DTLfetchlistelement}] +\cs{DTLfetchlistelement}\marg{list}\marg{index}\marg{cs} +\end{definition} +Like \cs{DTLlistelement} but it stores the \meta{index}th +element in the command given by \meta{cs}. \begin{definition}[\DescribeMacro\dtlsortlist] \cs{dtlsortlist}\marg{list cs}\marg{criteria cs} diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf index 669196e6ad4..5bde2cc5eb3 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf differ 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 9ddc840d062..9cdf92def92 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-datatooltk.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.pdf index f8bd379e3d1..9c63274acfd 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.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 4fc9f9a5443..cd16bc3eac1 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-europecv-bib.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdf index 6030f223fad..38abdb70441 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.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 858eaf34a46..66217482114 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 44be4994a97..59129431dd0 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 f6e1660ee35..16a363c58ba 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 40bc857d604..3e9fa499211 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 ae31c92eb77..0bce7fb05c1 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-sort.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.pdf index e3e31bb5152..18eb0c79b4d 100644 Binary files a/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.pdf and b/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.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 a5b45bb8c29..9b85095fb12 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 4a7cce8b685..f22fea8cc6c 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 -- cgit v1.2.3