diff options
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/datatool/datatool.dtx | 204 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/datatool/datatool.ins | 2 |
2 files changed, 178 insertions, 28 deletions
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 |