From 38ec9aef43ec2ac43feceade32200c22d6e1c436 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 9 Mar 2014 21:36:55 +0000 Subject: datatool git-svn-id: svn://tug.org/texlive/trunk@33136 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/datatool/CHANGES | 22 +++ Master/texmf-dist/doc/latex/datatool/README | 4 +- .../doc/latex/datatool/datatool-code.pdf | Bin 913625 -> 918044 bytes .../doc/latex/datatool/datatool-user.pdf | Bin 601441 -> 603313 bytes .../doc/latex/datatool/datatool-user.tex | 47 +++-- .../doc/latex/datatool/samples/sample-barchart.pdf | Bin 35074 -> 35074 bytes .../latex/datatool/samples/sample-datatooltk.pdf | Bin 22860 -> 22860 bytes .../doc/latex/datatool/samples/sample-dict.pdf | Bin 122594 -> 122594 bytes .../latex/datatool/samples/sample-europecv-bib.pdf | Bin 0 -> 89562 bytes .../latex/datatool/samples/sample-europecv-bib.tex | 19 ++ .../doc/latex/datatool/samples/sample-gidx.pdf | Bin 180122 -> 179875 bytes .../doc/latex/datatool/samples/sample-glossary.pdf | Bin 104729 -> 104484 bytes .../doc/latex/datatool/samples/sample-index.pdf | Bin 128783 -> 128783 bytes .../latex/datatool/samples/sample-mail-merge.pdf | Bin 21885 -> 21619 bytes .../doc/latex/datatool/samples/sample-piechart.pdf | Bin 33964 -> 33964 bytes .../doc/latex/datatool/samples/sample-sort.pdf | Bin 61053 -> 61053 bytes .../datatool/samples/sample-student-scores.pdf | Bin 34615 -> 34615 bytes .../latex/datatool/samples/sample-two-per-row.pdf | Bin 31752 -> 31752 bytes .../texmf-dist/source/latex/datatool/datatool.dtx | 204 ++++++++++++++++++--- .../texmf-dist/source/latex/datatool/datatool.ins | 2 +- Master/texmf-dist/tex/latex/datatool/databib.sty | 54 +++++- Master/texmf-dist/tex/latex/datatool/datagidx.sty | 2 +- Master/texmf-dist/tex/latex/datatool/datatool.sty | 27 ++- 23 files changed, 328 insertions(+), 53 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdf create mode 100644 Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.tex diff --git a/Master/texmf-dist/doc/latex/datatool/CHANGES b/Master/texmf-dist/doc/latex/datatool/CHANGES index ef25ed86ad0..ff065adeb16 100644 --- a/Master/texmf-dist/doc/latex/datatool/CHANGES +++ b/Master/texmf-dist/doc/latex/datatool/CHANGES @@ -1,3 +1,25 @@ +v2.21: + + * datatool: + + - Fixed misplaced locations of \dtldisplaystarttab and + \dtldisplayafterhead within \DTLdisplaylongdb + + - Fixed bug in \dtl@gathervalues that ignored #3 + + * databib: + + - Added \gDTLforeachbibentry + + - Fixed bug in \DTLforeachbibentry* + + - fixed typo in documentation + \DTLforeachbib -> \DTLforeachbibentry + + * datagidx: + + - Fixed bug in \datagidx@parse@location + v2.20: * datatool: diff --git a/Master/texmf-dist/doc/latex/datatool/README b/Master/texmf-dist/doc/latex/datatool/README index 283cdcb7a0f..df1c3a5b00b 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.20 +LaTeX Bundle : datatool v2.21 -Last Modified : 2014-02-03 +Last Modified : 2014-03-08 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 9d28367745b..7c25b37d2b8 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 9833f3266f6..65f3f640479 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 db2f306c297..25ab4e4d173 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.20} + \title{User Manual for datatool bundle version~2.21} \author{Nicola L.C. Talbot\\ \url{http://www.dickimaw-books.com/}} - \date{2014-02-03} + \date{2014-03-08} \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.20} + read \qt{Documented Code for datatool v2.21} \item[INSTALL] Installation instructions. @@ -2723,18 +2723,25 @@ Specifies how to separate rows. Defaults to just \end{definition} This is a hook to add something at the beginning of the \env{tabular} environment. This defaults to nothing. +In the case of \cs{DTLdisplaylongdb}, this hook is done before the +header row on each page of the \env{longtable}. \begin{definition}[\DescribeMacro{\dtldisplayendtab}]% \cs{dtldisplayendtab} \end{definition} This is a hook to add something at the end of the \env{tabular} environment. This defaults to nothing. +In the case of \cs{DTLdisplaylongdb}, this hook is only done on the +\emph{last} page of the \env{longtable}. You have to use the +\texttt{foot} option to specify some code to do at the end of each page. \begin{definition}[\DescribeMacro{\dtldisplayafterhead}]% \cs{dtldisplayafterhead} \end{definition} This is a hook to add something after the header row, before the first row of data. This defaults to nothing. +In the case of \cs{DTLdisplaylongdb}, this hook is done after the +header row on each page of the \env{longtable}. \begin{definition}[\DescribeMacro{\dtldisplaystartrow}]% \cs{dtldisplaystartrow} @@ -5596,7 +5603,9 @@ The \sty{datagidx} package is provided as an alternative to the indexing application, such as \app{xindy} or \app{makeindex}, it uses the database mechanism of the \sty{datatool} package. \emph{\sty{datagidx} and \sty{glossaries} -are not compatible.} +are not compatible.} (Note: \sty{glossaries} version 4.04 now has an +option that uses \TeX\ to sort the glossaries instead of using +\app{makeindex} or \app{xindy}.) First a repeat of the caveat at the start of this manual: \begin{important} @@ -9019,7 +9028,7 @@ For example, you may want to sort the bibliography in reverse chronological order. Once you have sorted the bibliography, you can display it using \cs{DTLbibliography}, described in \autoref{sec:thebib}, or you can iterate through the database -using \cs{DTLforeachbib}, described in \autoref{sec:foreachbib}. +using \cs{DTLforeachbibentry}, described in \autoref{sec:foreachbib}. Note that the \sty{databib} package is not automatically loaded by \sty{datatool}, so if @@ -9759,16 +9768,28 @@ not meet your needs. For example, you may be required to list journal papers and conference proceedings in separate sections. In which case, you may find it easier to iterate through the bibliography using: -\begin{definition}[\DescribeMacro{\DTLforeachbib}]% -\cs{DTLforeachbib}\oarg{condition}\marg{db name}\marg{text} +\begin{definition}[\DescribeMacro{\DTLforeachbibentry}]% +\cs{DTLforeachbibentry}\oarg{condition}\marg{db name}\marg{text} \end{definition} -\begin{definition}[\DescribeMacro{\DTLforeachbib*}]% -\cs{DTLforeachbib*}\oarg{condition}\marg{db name}\marg{text} +\begin{definition}[\DescribeMacro{\DTLforeachbibentry*}]% +\cs{DTLforeachbibentry*}\oarg{condition}\marg{db name}\marg{text} \end{definition} This iterates through the \sty{databib} database called \meta{db name} and does \meta{text} if \meta{condition} is met. As with \cs{DTLforeach}, the starred version is read-only. +\cs{DTLforeachbibentry} only makes local assignments, which means that it's unsuitable to display the references +in a~\env{tabular}-like environment (for example, the +\env{europecv} environment provided by the \cls{europecv} class). It's also a~short command, so +\meta{text} can't contain any paragraph breaks. Instead you can use +the analogous commands: +\begin{definition}[\DescribeMacro{\gDTLforeachbibentry}]% +\cs{gDTLforeachbibentry}\oarg{condition}\marg{db name}\marg{text} +\end{definition} +\begin{definition}[\DescribeMacro{\gDTLforeachbibentry*}]% +\cs{gDTLforeachbibentry*}\oarg{condition}\marg{db name}\marg{text} +\end{definition} + For each row of the database, the following commands are set: \begin{itemize} \item \cs{DBIBcitekey} \DescribeMacro{\DBIBcitekey}This is the @@ -9821,7 +9842,11 @@ This formats the bibliography entry for the current row. It checks for the existence of the command \cs{DTLformat}\meta{entry type}, where \meta{entry type} is given by \cs{DBIBentrytype}. These commands are defined -by the bibliography style. +by the bibliography style. There is also a~version for use with +\cs{gDTLforeachbibentry}: +\begin{definition}[\DescribeMacro{\gDTLformatbibentry}]% +\cs{gDTLformatbibentry} +\end{definition} \begin{definition}[\DescribeMacro{\DTLcomputewidestbibentry}]% \cs{DTLcomputewidestbibentry}\marg{conditions}\marg{db @@ -9835,7 +9860,7 @@ argument of the \env{thebibliography} environment. The counter \desctr{DTLbibrow} keeps track of the current bibliography entry. This is reset at the start of each -\cs{DTLforeachbib} and is incremented if \meta{conditions} +\cs{DTLforeachbibentry} and is incremented if \meta{conditions} is met. Within the optional argument \meta{condition}, you may use any of the 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 b150c9f9fef..32105fbb3df 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 0758d182ba8..4a1f512a56b 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 160f341c484..73c3569c736 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 new file mode 100644 index 00000000000..63ad2749252 Binary files /dev/null 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-europecv-bib.tex b/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.tex new file mode 100644 index 00000000000..cecc23010df --- /dev/null +++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.tex @@ -0,0 +1,19 @@ +\documentclass[narrow,helvetica,a4paper]{europecv} + +\usepackage[T1]{fontenc} +\usepackage{graphicx} +\usepackage{databib} + +\begin{document} +\DTLloadbbl{myrefs}{xampl.bib} +\nocite{*} + +\begin{europecv} + \ecvsection{Publications} + + \gDTLforeachbibentry*{myrefs}{% + \ecvitem{}{\gDTLformatbibentry}% +} +\end{europecv} + +\end{document} 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 74bef9cc213..63df880b647 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 1efa20caaa6..d9fc71b212b 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 1fd01ce35b8..47f289c4994 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 18c7c59c940..3f5eb9cde7f 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 92223a3d67d..0d57d1b5653 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 06ddbdc1fe2..9491afb760f 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 0ac59407a3e..536af516690 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 0832275c680..85a9334a3b7 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 9e9ddec7ae3..7ab993f3c21 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 2014/2/3 15:28 +% Created on 2014/3/8 20:11 %\fi %\iffalse %<*package> @@ -66,7 +66,7 @@ datatool.dtx \doxitem{Counter}{counter}{counters} \doxitem{Option}{option}{package options} -\CheckSum{22983} +\CheckSum{23069} \RecordChanges \PageIndex @@ -79,11 +79,11 @@ datatool.dtx %\fi %\MakeShortVerb{"} % -%\title{Documented Code for datatool v2.20} +%\title{Documented Code for datatool v2.21} %\author{Nicola L. C. Talbot\\ %\url{http://www.dickimaw-books.com/}} % -%\date{2014-02-03} +%\date{2014-03-08} %\maketitle % %\pagenumbering{roman} @@ -481,7 +481,7 @@ datatool.dtx % Performs an insertion sort on \meta{list}, where \meta{criteria cmd} % is a macro which takes two arguments \meta{a} and \meta{b}. % \meta{criteria cmd} must set the count register \cs{dtl@sortresult} -% to either -1 (\meta{a} less than \meta{b}), 0 (\meta{a} is +% to either $-1$ (\meta{a} less than \meta{b}), 0 (\meta{a} is % equal to \meta{b}) or 1 (\meta{a} is greater than \meta{b}.) % \begin{macrocode} \newcommand{\dtl@sortlist}[2]{% @@ -5708,7 +5708,7 @@ datatool.dtx %\section{Package Declaration} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool}[2014/02/03 v2.20 (NLCT)] +\ProvidesPackage{datatool}[2014/03/08 v2.21 (NLCT)] % \end{macrocode} % Load required packages: % \begin{macrocode} @@ -7184,7 +7184,7 @@ datatool.dtx %\end{definition} % Applies the assignment list to the first row that has the given % value in the given column. (Value must be expanded.) -%\changes{2.20}{2014-02-14}{new} +%\changes{2.20}{2014-02-03}{new} % \begin{macrocode} \newcommand*{\DTLassignfirstmatch}[4]{% \dtl@assignfirstmatch{#3}{#1}{#2}{#4}% @@ -7198,7 +7198,7 @@ datatool.dtx % Applies the assignment list to the first row that has the given % value in the given column. (Performs \emph{one level} expansion on % \meta{value}.) -%\changes{2.20}{2014-02-14}{new} +%\changes{2.20}{2014-02-03}{new} % \begin{macrocode} \newcommand*{\xDTLassignfirstmatch}[4]{% \protected@edef\@dtl@asg@value{\expandonce{#3}}% @@ -7246,7 +7246,7 @@ datatool.dtx % The current row must be stored in \cs{dtlcurrentrow}. %\changes{2.0}{2009 February 27}{updated to use new database % structure} -%\changes{2.20}{2014-02-14}{Added check for empty argument}% +%\changes{2.20}{2014-02-03}{Added check for empty argument}% % \begin{macrocode} \newcommand*{\@dtl@assign}[2]{% \ifstrempty{#1}{}% @@ -7433,7 +7433,7 @@ datatool.dtx %\begin{definition} %\cs{DTLifnullorempty}\marg{command}\marg{true part}\marg{false part} %\end{definition} -%\changes{2.20}{2014-02-14}{new} +%\changes{2.20}{2014-02-03}{new} % \begin{macrocode} \newcommand*{\DTLifnullorempty}[3]{% \ifdefempty{#1}{#2}{\DTLifnull{#1}{#2}{#3}}% @@ -7534,7 +7534,10 @@ datatool.dtx \newcommand{\dtl@gathervalues}[3][key]{% \dtlforeachkey(\@dtl@key,\@dtl@col,\@dtl@type,\@dtl@head)\in{#2}\do {% - \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{\dtlcurrentrow}% +% \end{macrocode} +%\changes{2.21}{2014-03-08}{fixed bug that ignore row tok argument} +% \begin{macrocode} + \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{#3}% \ifx\@dtl@tmp\dtlnovalue \@dtl@setnull{\@dtl@tmp}{\@dtl@key}% \fi @@ -7544,6 +7547,27 @@ datatool.dtx % \end{macrocode} %\end{macro} % +%\begin{macro}{\dtl@g@gathervalues} +%\begin{definition} +%\cs{dtl@g@gathervalues}\oarg{label}\marg{db name}\marg{row toks} +%\end{definition} +% As above but makes global assignments +%\changes{2.21}{2014-03-08}{new} +% \begin{macrocode} +\newcommand{\dtl@g@gathervalues}[3][key]{% + \dtlforeachkey(\@dtl@key,\@dtl@col,\@dtl@type,\@dtl@head)\in{#2}\do + {% + \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{#3}% + \ifx\@dtl@tmp\dtlnovalue + \@dtl@setnull{\@dtl@tmp}{\@dtl@key}% + \fi + \expandafter\global + \expandafter\let\csname @dtl@#1@\@dtl@key\endcsname\@dtl@tmp + }% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\dtlcurrentrow} % Define token register to store current row. % \begin{macrocode} @@ -10159,10 +10183,6 @@ datatool.dtx \edef\@dtl@dobegintab{\noexpand\begin{longtable}{\@dtl@tabargs}}% \@dtl@dobegintab % \end{macrocode} -% Do start hook. -% \begin{macrocode} - \dtldisplaystarttab -% \end{macrocode} % Is a foot required? % \begin{macrocode} \ifx\@dtl@foot\@nnil @@ -10184,6 +10204,7 @@ datatool.dtx % No caption required, just do header row. % \begin{macrocode} \@dtl@resetdoamp + \dtldisplaystarttab \dtlforeachkey(\@dtl@key,\@dtl@idx,\@dtl@type,\@dtl@head)% \in{#2}\do {% @@ -10208,7 +10229,12 @@ datatool.dtx \else \label{\@dtl@label}% \fi - \\% + \dtldisplaycr +% \end{macrocode} +%\changes{2.21}{2014-03-08}{fixed location of \cs{dtldisplaystarttab}} +% Do start hook. +% \begin{macrocode} + \dtldisplaystarttab % \end{macrocode} % Do header row. % \begin{macrocode} @@ -10223,7 +10249,10 @@ datatool.dtx }% }% \@dtl@resetdoamp - \@dtl@resetdostartrow +% \end{macrocode} +%\changes{2.21}{2014-03-08}{added missing \cs{dtldisplayafterhead}} +% \begin{macrocode} + \dtldisplaycr\dtldisplayafterhead \endfirsthead % \end{macrocode} % Is a continuation caption required? @@ -10233,7 +10262,11 @@ datatool.dtx \else \caption{\@dtl@contcap}% \fi - \\% +% \end{macrocode} +%\changes{2.21}{2014-03-08}{fixed location of \cs{dtldisplaystarttab}} +% Do start hook. +% \begin{macrocode} + \dtldisplaycr\dtldisplaystarttab % \end{macrocode} % Do header row. % \begin{macrocode} @@ -10249,7 +10282,11 @@ datatool.dtx }% \@dtl@resetdoamp \@dtl@resetdostartrow - \endhead\dtldisplayafterhead +% \end{macrocode} +%\changes{2.21}{2014-03-08}{moved misplaced \cs{dtldisplayafterhead}} +% \begin{macrocode} + \dtldisplaycr\dtldisplayafterhead + \endhead \fi % \end{macrocode} % Iterate through each row of the database @@ -12484,7 +12521,7 @@ datatool.dtx % Load a \texttt{.dbtex} file and assign the database name to the % control sequence \meta{cs}. Checks the file name exists and the % control sequence doesn't exist. -%\changes{2.20}{2014-02-14}{new} +%\changes{2.20}{2014-02-03}{new} % \begin{macrocode} \newcommand*{\DTLloaddbtex}[2]{% \IfFileExists{#2}% @@ -16158,8 +16195,10 @@ datatool.dtx % \end{macrocode} % If the format is different, let the non-empty format over-ride % the empty format. +%\changes{2.21}{2014-03-08}{replaced \cs{ifstrequal} with +%\cs{ifdefequal}} % \begin{macrocode} - \ifstrequal{\datagidx@prev@format}{\datagidx@current@format}% + \ifdefequal{\datagidx@prev@format}{\datagidx@current@format}% {% }% {% @@ -19135,7 +19174,7 @@ datatool.dtx %\section{Package Declaration} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{databib}[2013/06/28 v2.14 (NLCT)] +\ProvidesPackage{databib}[2014/03/08 v2.21 (NLCT)] % \end{macrocode} % Load required packages: % \begin{macrocode} @@ -19312,11 +19351,46 @@ datatool.dtx % \end{macrocode} % Initialise % \begin{macrocode} - \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse + \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse +% \end{macrocode} +% Format this entry +% \begin{macrocode} + \csname DTLformat\DBIBentrytype\endcsname + }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\gDTLformatbibentry} +%\begin{definition} +%\cs{gDTLformatbibentry} +%\end{definition} +%\changes{2.21}{2014-03-08}{new} +% Global version. +% \begin{macrocode} +\newcommand*{\gDTLformatbibentry}{% +% \end{macrocode} +% Check format for this type is defined. +% \begin{macrocode} + \@ifundefined{DTLformat\DBIBentrytype}% + {% + \PackageError{databib}{Don't know how to format bibliography + entries of type `\DBIBentrytype'}{}% + }% + {% +% \end{macrocode} +% Print information to terminal and log file if in verbose mode. +% \begin{macrocode} + \dtl@message{[\DBIBcitekey]}% +% \end{macrocode} +% Initialise +% \begin{macrocode} + \global\DTLstartsentencefalse + \global\DTLmidsentencefalse + \global\DTLperiodfalse % \end{macrocode} % Format this entry % \begin{macrocode} - \csname DTLformat\DBIBentrytype\endcsname + \csname DTLformat\DBIBentrytype\endcsname }% } % \end{macrocode} @@ -19370,9 +19444,10 @@ datatool.dtx % Iterates through the database called \meta{db name} and does % \meta{text} if \meta{condition} is met. As with % \cs{DTLforeach}, the starred version is read only. +%\changes{2.21}{2014-03-08}{fixed bug in starred version} % \begin{macrocode} \newcommand*{\DTLforeachbibentry}{% -\@ifstar\@DTLforeachbibentry\@DTLforeachbibentry} +\@ifstar\@sDTLforeachbibentry\@DTLforeachbibentry} % \end{macrocode} %\end{macro} %\begin{macro}{\@DTLforeachbibentry} @@ -19422,6 +19497,81 @@ datatool.dtx % \end{macrocode} %\end{macro} % +%\begin{macro}{\gDTLforeachbibentry} +%\begin{definition} +%\cs{gDTLforeachbibentry}\oarg{condition}\marg{db name}\marg{text} +%\end{definition} +%\begin{definition} +%\cs{gDTLforeachbibentry*}\oarg{condition}\marg{db name}\marg{text} +%\end{definition} +% Global version. +%\changes{2.21}{2014-03-08}{new} +% \begin{macrocode} +\newcommand{\gDTLforeachbibentry}{% +\@ifstar\@sgDTLforeachbibentry\@gDTLforeachbibentry} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@gDTLforeachbibentry} +%\changes{2.21}{2014-03-08}{new} +% Unstarred version +% \begin{macrocode} +\newcommand*{\@gDTLforeachbibentry}[3][\boolean{true}]{% +% \end{macrocode} +% Store database name. +% \begin{macrocode} + \xdef\DBIBname{#2}% +% \end{macrocode} +% Reset row counter. +% \begin{macrocode} + \global\c@DTLbibrow = 0\relax +% \end{macrocode} +% Iterate through the database. +% \begin{macrocode} + \@DTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% + {% + \dtl@g@gathervalues{#2}{\dtlcurrentrow}% + \ifthenelse{#1}% + {% + \refstepcounter{DTLbibrow}% + \global\c@DTLbibrow=\c@DTLbibrow + #3% + }% + {}% + }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@sgDTLforeachbibentry} +%\changes{2.21}{2014-03-08}{new} +% Starred version +% \begin{macrocode} +\newcommand*{\@sgDTLforeachbibentry}[3][\boolean{true}]{% +% \end{macrocode} +% Store database name. +% \begin{macrocode} + \xdef\DBIBname{#2}% +% \end{macrocode} +% Reset row counter. +% \begin{macrocode} + \global\c@DTLbibrow = 0\relax +% \end{macrocode} +% Iterate through the database (read only). +% \begin{macrocode} + \@sDTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% + {% + \dtl@g@gathervalues{#2}{\dtlcurrentrow}% + \ifthenelse{#1}% + {% + \refstepcounter{DTLbibrow}% + \global\c@DTLbibrow=\c@DTLbibrow + #3% + }% + {}% + }% +} +% \end{macrocode} +%\end{macro} +% %\begin{counter}{DTLbibrow} %The counter \ctrfmt{DTLbibrow} keeps track of the current %row in the body of \cs{DTLforeachbibentry}. (You can't rely on @@ -20141,9 +20291,9 @@ datatool.dtx % %\subsection{ifthen conditionals} % The conditionals defined in this section may be used in the -% optional argument of \cs{DTLforeachbib}. They may also be +% optional argument of \cs{DTLforeachbibentry}. They may also be % used in the first argument of \cs{ifthenelse}, but only if the -% command occurs within the body of \cs{DTLforeachbib}. +% command occurs within the body of \cs{DTLforeachbibentry}. % %\begin{macro}{\DTLbibfieldexists} %\begin{definition} diff --git a/Master/texmf-dist/source/latex/datatool/datatool.ins b/Master/texmf-dist/source/latex/datatool/datatool.ins index a4eb3b78d52..9a85ef0cf8c 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 1.1 2014/2/3 15:28 +% datatool.ins generated using makedtx version 1.1 2014/3/8 20:11 \input docstrip \preamble diff --git a/Master/texmf-dist/tex/latex/datatool/databib.sty b/Master/texmf-dist/tex/latex/datatool/databib.sty index 38010aaaf23..8a158804268 100644 --- a/Master/texmf-dist/tex/latex/datatool/databib.sty +++ b/Master/texmf-dist/tex/latex/datatool/databib.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{databib}[2013/06/28 v2.14 (NLCT)] +\ProvidesPackage{databib}[2014/03/08 v2.21 (NLCT)] \RequirePackage{datatool} \newcommand*{\dtlbib@style}{plain} \define@choicekey{databib.sty}{style}{plain,abbrv,alpha}{% @@ -85,8 +85,22 @@ }% {% \dtl@message{[\DBIBcitekey]}% - \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse - \csname DTLformat\DBIBentrytype\endcsname + \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse + \csname DTLformat\DBIBentrytype\endcsname + }% +} +\newcommand*{\gDTLformatbibentry}{% + \@ifundefined{DTLformat\DBIBentrytype}% + {% + \PackageError{databib}{Don't know how to format bibliography + entries of type `\DBIBentrytype'}{}% + }% + {% + \dtl@message{[\DBIBcitekey]}% + \global\DTLstartsentencefalse + \global\DTLmidsentencefalse + \global\DTLperiodfalse + \csname DTLformat\DBIBentrytype\endcsname }% } \newcommand*{\DTLendbibitem}{} @@ -103,7 +117,7 @@ }% } \newcommand*{\DTLforeachbibentry}{% -\@ifstar\@DTLforeachbibentry\@DTLforeachbibentry} +\@ifstar\@sDTLforeachbibentry\@DTLforeachbibentry} \newcommand*{\@DTLforeachbibentry}[3][\boolean{true}]{% \edef\DBIBname{#2}% \setcounter{DTLbibrow}{0}% @@ -122,6 +136,38 @@ \ifthenelse{#1}{\refstepcounter{DTLbibrow}#3}{}% }% } +\newcommand{\gDTLforeachbibentry}{% +\@ifstar\@sgDTLforeachbibentry\@gDTLforeachbibentry} +\newcommand*{\@gDTLforeachbibentry}[3][\boolean{true}]{% + \xdef\DBIBname{#2}% + \global\c@DTLbibrow = 0\relax + \@DTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% + {% + \dtl@g@gathervalues{#2}{\dtlcurrentrow}% + \ifthenelse{#1}% + {% + \refstepcounter{DTLbibrow}% + \global\c@DTLbibrow=\c@DTLbibrow + #3% + }% + {}% + }% +} +\newcommand*{\@sgDTLforeachbibentry}[3][\boolean{true}]{% + \xdef\DBIBname{#2}% + \global\c@DTLbibrow = 0\relax + \@sDTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% + {% + \dtl@g@gathervalues{#2}{\dtlcurrentrow}% + \ifthenelse{#1}% + {% + \refstepcounter{DTLbibrow}% + \global\c@DTLbibrow=\c@DTLbibrow + #3% + }% + {}% + }% +} \newcounter{DTLbibrow} \def\theHDTLbibrow{\theHDTLrow.bib.\arabic{DTLbibrow}}% \newcommand*{\DTLbibfield}[1]{\csname @dtl@key@#1\endcsname} diff --git a/Master/texmf-dist/tex/latex/datatool/datagidx.sty b/Master/texmf-dist/tex/latex/datatool/datagidx.sty index 0f219ea40b2..159eb55f5e8 100644 --- a/Master/texmf-dist/tex/latex/datatool/datagidx.sty +++ b/Master/texmf-dist/tex/latex/datatool/datagidx.sty @@ -1749,7 +1749,7 @@ \datagidx@getlocation#1\relax \ifdefequal{\datagidx@prev@locationstring}{\datagidx@current@locationstring}% {% - \ifstrequal{\datagidx@prev@format}{\datagidx@current@format}% + \ifdefequal{\datagidx@prev@format}{\datagidx@current@format}% {% }% {% diff --git a/Master/texmf-dist/tex/latex/datatool/datatool.sty b/Master/texmf-dist/tex/latex/datatool/datatool.sty index af902a2cf02..645feeed87e 100644 --- a/Master/texmf-dist/tex/latex/datatool/datatool.sty +++ b/Master/texmf-dist/tex/latex/datatool/datatool.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool}[2014/02/03 v2.20 (NLCT)] +\ProvidesPackage{datatool}[2014/03/08 v2.21 (NLCT)] \RequirePackage{xkeyval} \RequirePackage{ifthen} \RequirePackage{xfor} @@ -759,13 +759,24 @@ \newcommand{\dtl@gathervalues}[3][key]{% \dtlforeachkey(\@dtl@key,\@dtl@col,\@dtl@type,\@dtl@head)\in{#2}\do {% - \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{\dtlcurrentrow}% + \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{#3}% \ifx\@dtl@tmp\dtlnovalue \@dtl@setnull{\@dtl@tmp}{\@dtl@key}% \fi \expandafter\let\csname @dtl@#1@\@dtl@key\endcsname\@dtl@tmp }% } +\newcommand{\dtl@g@gathervalues}[3][key]{% + \dtlforeachkey(\@dtl@key,\@dtl@col,\@dtl@type,\@dtl@head)\in{#2}\do + {% + \dtlgetentryfromrow{\@dtl@tmp}{\@dtl@col}{#3}% + \ifx\@dtl@tmp\dtlnovalue + \@dtl@setnull{\@dtl@tmp}{\@dtl@key}% + \fi + \expandafter\global + \expandafter\let\csname @dtl@#1@\@dtl@key\endcsname\@dtl@tmp + }% +} \newtoks\dtlcurrentrow \newtoks\dtlbeforerow \newtoks\dtlafterrow @@ -1920,7 +1931,6 @@ }% \edef\@dtl@dobegintab{\noexpand\begin{longtable}{\@dtl@tabargs}}% \@dtl@dobegintab - \dtldisplaystarttab \ifx\@dtl@foot\@nnil \else \@dtl@foot\endfoot @@ -1931,6 +1941,7 @@ \fi \ifx\@dtl@cap\@nnil \@dtl@resetdoamp + \dtldisplaystarttab \dtlforeachkey(\@dtl@key,\@dtl@idx,\@dtl@type,\@dtl@head)% \in{#2}\do {% @@ -1949,7 +1960,8 @@ \else \label{\@dtl@label}% \fi - \\% + \dtldisplaycr + \dtldisplaystarttab \@dtl@resetdoamp \dtlforeachkey(\@dtl@key,\@dtl@idx,\@dtl@type,\@dtl@head)% \in{#2}\do @@ -1961,14 +1973,14 @@ }% }% \@dtl@resetdoamp - \@dtl@resetdostartrow + \dtldisplaycr\dtldisplayafterhead \endfirsthead \ifx\@dtl@contcap\@nnil \caption{\@dtl@cap}% \else \caption{\@dtl@contcap}% \fi - \\% + \dtldisplaycr\dtldisplaystarttab \@dtl@resetdoamp \dtlforeachkey(\@dtl@key,\@dtl@idx,\@dtl@type,\@dtl@head)% \in{#2}\do @@ -1981,7 +1993,8 @@ }% \@dtl@resetdoamp \@dtl@resetdostartrow - \endhead\dtldisplayafterhead + \dtldisplaycr\dtldisplayafterhead + \endhead \fi \@sDTLforeach{#2}{}{% \@dtl@dostartrow -- cgit v1.2.3