diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/datatool/datatool.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/datatool/datatool.dtx | 438 |
1 files changed, 366 insertions, 72 deletions
diff --git a/Master/texmf-dist/source/latex/datatool/datatool.dtx b/Master/texmf-dist/source/latex/datatool/datatool.dtx index d84c46f7ee0..d1de576df24 100644 --- a/Master/texmf-dist/source/latex/datatool/datatool.dtx +++ b/Master/texmf-dist/source/latex/datatool/datatool.dtx @@ -1,9 +1,11 @@ %\iffalse -% datatool.dtx generated using makedtx version 1.1 (c) Nicola Talbot +% datatool.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -macrocode "databib\.bst" -% -comment "databib\.bst" % -setambles "databib\.bst=>\nopreamble\nopostamble" +% -comment "databib\.bst" +% -codetitle "" +% -macrocode "databib\.bst" +% -author "Nicola Talbot" % -src "datatool-base.sty\Z=>datatool-base.sty" % -src "datatool-fp.sty\Z=>datatool-fp.sty" % -src "datatool-pgfmath.sty\Z=>datatool-pgfmath.sty" @@ -16,10 +18,8 @@ % -src "person.sty\Z=>person.sty" % -src "databib.bst\Z=>databib.bst" % -doc "datatool-manual.tex" -% -author "Nicola Talbot" -% -codetitle "" % datatool -% Created on 2016/7/28 15:09 +% Created on 2017/11/10 16:07 %\fi %\iffalse %<*package> @@ -42,7 +42,7 @@ %\fi % \iffalse % Doc-Source file to use with LaTeX2e -% Copyright (C) 2016 Nicola Talbot, all rights reserved. +% Copyright (C) 2017 Nicola Talbot, all rights reserved. % \fi % \iffalse %<*driver> @@ -68,7 +68,7 @@ datatool.dtx \doxitem{Counter}{counter}{counters} \doxitem{Option}{option}{package options} -\CheckSum{23739} +\CheckSum{23978} \RecordChanges \PageIndex @@ -81,11 +81,11 @@ datatool.dtx %\fi %\MakeShortVerb{"} % -%\title{Documented Code for datatool v2.27} +%\title{Documented Code for datatool v2.28} %\author{Nicola L. C. Talbot\\ %\url{http://www.dickimaw-books.com/}} % -%\date{2016-07-28} +%\date{2017-11-10} %\maketitle % %\pagenumbering{roman} @@ -121,7 +121,7 @@ datatool.dtx % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool-base}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{datatool-base}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -767,34 +767,135 @@ datatool.dtx % \end{macrocode} %\end{macro} % +%This next command is based on the list iteration exercise +%given at +%\url{http://www.dickimaw-books.com/latex/admin/html/foreachtips.shtml#oxfordcomma} +%It's designed to format a comma-separated list using +%\cs{DTLlistformatsep} +%between each item except for the last. The separator for the +%last pair is \cs{DTLlistformatlastsep} if the list only contains two +%items or \cs{DTLlistformatoxford}\cs{DTLlistformatlastsep} if the list contains three or +%more items. Each item is formatted according to +%\cs{DTLlistformatitem}. +%\begin{macro}{\DTLlistformatsep} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\DTLlistformatsep}{, } +% \end{macrocode} +%\end{macro} +%\begin{macro}{\DTLlistformatoxford} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\DTLlistformatoxford}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\DTLandname} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\ifdef\andname +{\newcommand*{\DTLandname}{\andname}} +{\newcommand*{\DTLandname}{\&}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\DTLlistformatlastsep} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\DTLlistformatlastsep}{ \DTLandname\space} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\DTLlistformatitem} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\DTLlistformatitem}[1]{#1} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@dtl@formatlist@handler} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\@dtl@formatlist@handler}[1]{% + \@dtl@formatlist@itemsep + \@dtl@formatlist@lastitem + \renewcommand{\@dtl@formatlist@lastitem}{% + \renewcommand{\@dtl@formatlist@itemsep}{% + \DTLlistformatsep + \renewcommand*{\@dtl@formatlist@prelastitemsep}{% + \DTLlistformatoxford}}% + \renewcommand{\@dtl@formatlist@prelastitem}{% + \@dtl@formatlist@prelastitemsep + \DTLlistformatlastsep}% + \DTLlistformatitem{#1}% + }% +}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTLformatlist} +%\changes{2.28}{2017-11-10}{new} +%Formats the comma-separated list supplied in its argument. +%The unstarred version adds grouping. +% \begin{macrocode} +\newrobustcmd*{\DTLformatlist}{% + \@ifstar{\s@dtlformatlist}{\@dtlformatlist}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\s@dtlformatlist} +%\changes{2.28}{2017-11-10}{new} +%Starred version of \cs{DTLformatlist} doesn't add grouping. +% \begin{macrocode} +\newcommand*{\s@dtlformatlist}[1]{% + \def\@dtl@formatlist@itemsep{}% + \def\@dtl@formatlist@lastitem{}% + \def\@dtl@formatlist@prelastitem{}% + \def\@dtl@formatlist@prelastitemsep{}% + \@for\@dtl@formatlist@item:=#1\do{% + \expandafter\@dtl@formatlist@handler\expandafter{\@dtl@formatlist@item}% + }% + \@dtl@formatlist@prelastitem\@dtl@formatlist@lastitem +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@dtlformatlist} +%\changes{2.28}{2017-11-10}{new} +%Unstarred version of \cs{DTLformatlist} adds grouping. +% \begin{macrocode} +\newcommand*{\@dtlformatlist}[1]{{\s@dtlformatlist{#1}}} +% \end{macrocode} +%\end{macro} +% % \subsection{General Token Utilities} -%\begin{macro}{\toks@gput@right@cx} +%\changes{2.28}{2017-11-10}{renamed \cs{toks@g...} to +%\cs{dtl@toks@g...}} +%\begin{macro}{\@dtl@toks@gput@right@cx} %\begin{definition} -%\cs{toks@gput@right@cx}\marg{toks name}\marg{stuff} +%\cs{dtl@toks@gput@right@cx}\marg{toks name}\marg{stuff} %\end{definition} % Globally appends stuff to token register \cs{}\meta{toks name} % \begin{macrocode} -\newcommand{\toks@gput@right@cx}[2]{% - \def\@toks@name{#1}% +\newcommand{\@dtl@toks@gput@right@cx}[2]{% + \def\@dtl@toks@name{#1}% \edef\@dtl@stuff{#2}% - \global\csname\@toks@name\endcsname\expandafter + \global\csname\@dtl@toks@name\endcsname\expandafter \expandafter\expandafter{\expandafter\the - \csname\expandafter\@toks@name\expandafter\endcsname\@dtl@stuff}% + \csname\expandafter\@dtl@toks@name\expandafter\endcsname\@dtl@stuff}% } % \end{macrocode} %\end{macro} -%\begin{macro}{\toks@gconcat@middle@cx} +%\begin{macro}{\@dtl@toks@gconcat@middle@cx} %\begin{definition} -%\cs{toks@gconcat@middle@cx}\marg{toks name}\marg{before toks}\marg{stuff}\marg{after toks} +%\cs{dtl@toks@gconcat@middle@cx}\marg{toks name}\marg{before toks}\marg{stuff}\marg{after toks} %\end{definition} % Globally sets token register \cs{}\meta{toks name} to % the contents of \meta{before toks} concatenated with % \meta{stuff} (expanded) and the contents of \meta{after toks} % \begin{macrocode} -\newcommand{\toks@gconcat@middle@cx}[4]{% - \def\@toks@name{#1}% +\newcommand{\@dtl@toks@gconcat@middle@cx}[4]{% + \def\@dtl@toks@name{#1}% \edef\@dtl@stuff{#3}% - \global\csname\@toks@name\endcsname\expandafter\expandafter + \global\csname\@dtl@toks@name\endcsname\expandafter\expandafter \expandafter\expandafter\expandafter \expandafter\expandafter{\expandafter\expandafter\expandafter \the\expandafter\expandafter\expandafter#2% @@ -5907,7 +6008,7 @@ datatool.dtx % Definitions of fixed-point commands that use the \sty{fp} package. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool-fp}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{datatool-fp}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -6196,7 +6297,7 @@ datatool.dtx % Definitions of fixed-point commands that use the \sty{pgfmath} package. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool-pgfmath}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{datatool-pgfmath}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -6537,7 +6638,7 @@ datatool.dtx %\section{Package Declaration} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datatool}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{datatool}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Load required packages: % \begin{macrocode} @@ -6741,6 +6842,21 @@ datatool.dtx % \end{macrocode} %\end{option} % +%\begin{macro}{\@dtl@set@options} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\@dtl@set@options}{} +% \end{macrocode} +%\end{macro} +%\begin{option}{utf8} +%\changes{2.28}{2017-11-10}{new} +%Pass to \sty{datatool-base} +% \begin{macrocode} +\define@choicekey{datatool.sty}{utf8}{true,false}[true]{% + \renewcommand*{\@dtl@set@options}{\setbool{@dtl@utf8}{#1}}% +} +% \end{macrocode} +%\end{option} % Process package options: % \begin{macrocode} \ProcessOptionsX @@ -6755,6 +6871,10 @@ datatool.dtx % \begin{macrocode} \RequirePackage{datatool-base} % \end{macrocode} +%Set options that depend on \sty{datatool-base}: +% \begin{macrocode} +\@dtl@set@options +% \end{macrocode} % %\begin{macro}{\DTLpar} % Many of the commands used by this package are short commands. @@ -7109,7 +7229,7 @@ datatool.dtx % \end{macrocode} % Append an empty row to the database % \begin{macrocode} - \toks@gput@right@cx{dtldb@#1}{% + \@dtl@toks@gput@right@cx{dtldb@#1}{% \noexpand\db@row@elt@w% \noexpand\db@row@id@w \number\csname dtlrows@#1\endcsname \noexpand\db@row@id@end@% @@ -7660,7 +7780,7 @@ datatool.dtx % \end{macrocode} % Update required % \begin{macrocode} - \toks@gconcat@middle@cx{dtlkeys@#1}% + \@dtl@toks@gconcat@middle@cx{dtlkeys@#1}% {\@dtl@before}% {% \noexpand\db@plist@elt@w% start of key block @@ -7687,7 +7807,7 @@ datatool.dtx \csname dtlcols@#1\endcsname by 1\relax \dtlcolumnnum=\csname dtlcols@#1\endcsname\relax % \end{macrocode} -% Set column index for this key +% Set column index for this key. % \begin{macrocode} \expandafter\xdef\csname dtl@ci@#1@#2\endcsname{% \number\dtlcolumnnum}% @@ -7705,7 +7825,7 @@ datatool.dtx % \end{macrocode} % Append to property list % \begin{macrocode} - \toks@gput@right@cx{dtlkeys@#1}% + \@dtl@toks@gput@right@cx{dtlkeys@#1}% {% \noexpand\db@plist@elt@w \noexpand\db@col@id@w \the\dtlcolumnnum @@ -7799,7 +7919,7 @@ datatool.dtx % Reconstruct property list % \begin{macrocode} \edef\@dtl@colnum{\number#2}\relax - \toks@gconcat@middle@cx{dtlkeys@#1}% + \@dtl@toks@gconcat@middle@cx{dtlkeys@#1}% {\@dtl@before}% {% \noexpand\db@plist@elt@w% start of block @@ -7903,7 +8023,7 @@ datatool.dtx % There are no entries in this row for the given column. % Add this entry. % \begin{macrocode} - \toks@gconcat@middle@cx{dtldb@#1}% + \@dtl@toks@gconcat@middle@cx{dtldb@#1}% {\dtlbeforerow}% {% % \end{macrocode} @@ -8532,7 +8652,7 @@ datatool.dtx % \cs{dtlcurrentrow} and \cs{dtlafterrow} % \begin{macrocode} \newcommand*{\dtlrecombine}{% - \toks@gconcat@middle@cx{dtldb@\dtldbname}% + \@dtl@toks@gconcat@middle@cx{dtldb@\dtldbname}% {\dtlbeforerow}% {% % \end{macrocode} @@ -8582,7 +8702,7 @@ datatool.dtx % \cs{dtlbeforerow} and \cs{dtlafterrow} % \begin{macrocode} \csname dtldb@\dtldbname\endcsname=\dtlbeforerow - \toks@gput@right@cx{dtldb@\dtldbname}{\the\dtlafterrow}% + \@dtl@toks@gput@right@cx{dtldb@\dtldbname}{\the\dtlafterrow}% \dtl@message{Removed row \number\dtlrownum\space in database `\dtldbname'}% } @@ -8805,7 +8925,7 @@ datatool.dtx % \end{macrocode} % Append this entry to the current row. % \begin{macrocode} - \toks@gput@right@cx{dtlcurrentrow}% + \@dtl@toks@gput@right@cx{dtlcurrentrow}% {% % \end{macrocode} % Begin column index specs: @@ -8878,7 +8998,7 @@ datatool.dtx % \end{macrocode} % Append this entry to the current row. % \begin{macrocode} - \toks@gput@right@cx{dtlcurrentrow}% + \@dtl@toks@gput@right@cx{dtlcurrentrow}% {% % \end{macrocode} % Begin column index specs: @@ -9024,9 +9144,24 @@ datatool.dtx % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTLgetrowindex} +%\begin{macro}{\xdtlgetrowindex} %\begin{definition} -%\cs{DTLgetrowindex}\marg{row cs}\marg{database}\marg{column index}% +%\cs{xdtlgetrowindex}\marg{row cs}\marg{database}\marg{column index}% +%\marg{value} +%\end{definition} +% As above but expands the value. +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\xdtlgetrowindex}[4]{% + \protected@edef\dtl@dogetrowindex{\noexpand\@dtlgetrowindex{\noexpand#1}{#2}{\number#3}{#4}}% + \dtl@dogetrowindex +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@dtlgetrowindex} +%\begin{definition} +%\cs{@dtlgetrowindex}\marg{row cs}\marg{database}\marg{column index}% %\marg{value} %\end{definition} % Column index must be fully expanded. @@ -9762,7 +9897,7 @@ datatool.dtx \dtlforeachlevel\endcsname \@dtl@after=\csname @dtl@next\romannumeral \dtlforeachlevel\endcsname - \toks@gconcat@middle@cx{dtldb@#2}% + \@dtl@toks@gconcat@middle@cx{dtldb@#2}% {\@dtl@before}% {% % \end{macrocode} @@ -10099,7 +10234,7 @@ datatool.dtx % \end{macrocode} % Append this entry to the current row. % \begin{macrocode} - \toks@gput@right@cx{@dtl@cur\romannumeral\dtlforeachlevel}% + \@dtl@toks@gput@right@cx{@dtl@cur\romannumeral\dtlforeachlevel}% {% \noexpand\db@col@id@w \number\dtlcolumnnum \noexpand\db@col@id@end@ @@ -10309,7 +10444,7 @@ datatool.dtx \expandafter\@dtl@toks\expandafter{\@dtl@tmp}% new value \expandafter\@dtl@before\expandafter{\dtl@pre}% \expandafter\@dtl@after\expandafter{\dtl@post}% - \toks@gconcat@middle@cx + \@dtl@toks@gconcat@middle@cx {@dtl@cur\romannumeral\dtlforeachlevel}% {\@dtl@before}% {% @@ -13887,22 +14022,38 @@ datatool.dtx %\cs{dtl@trim}\marg{line} %\end{definition} % Trims the trailing space from \meta{line}. +%\changes{2.28}{2017-11-10}{fix bug no 123} % \begin{macrocode} \newcommand{\dtl@trim}[1]{% \def\@dtl@trmstr{}% - \expandafter\@dtl@starttrim#1\@nil + \if#1\par + \else + \expandafter\@dtl@start@trim#1\@dtl@end@trim + \fi \let#1=\@dtl@trmstr } % \end{macrocode} %\end{macro} +%\begin{macro}{\@dtl@start@trim} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\def\@dtl@start@trim#1 \@dtl@end@trim{% + \def\@dtl@trmstr{#1}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\@dtl@starttrim} -% Start trimming +% Start trimming. (No longer used as from v2.28. May be removed in +% later versions.) %\changes{2.10}{2012-07-18}{added check in the event there's no %trailing space} %\changes{2.23}{2015-07-11}{fixed bug in the event that either argument is %in a group} % \begin{macrocode} \long\def\@dtl@starttrim#1#2{% +\def\tmpA{#1}\show\tmpA +\def\tmpB{#2}\show\tmpB \dtl@ifsingle{#2}% {% \def\@dtl@tmpB{#2}% @@ -13933,6 +14084,7 @@ datatool.dtx % \end{macrocode} %\end{macro} %\begin{macro}{\@dtl@trim} +% No longer used as from v2.28. May be removed in later versions. % \begin{macrocode} \long\def\@dtl@trim#1 \@nil{\long\def\@dtl@trmstr{#1}} % \end{macrocode} @@ -13996,10 +14148,11 @@ datatool.dtx \@dtl@doreadraw?1?2>>> \gdef\@dtl@doreadraw?1?2<\relax \read?1 to \tmp -\xdef?2<\tmp>\relax +\protected@xdef?2<\tmp>\relax > \endgroup % \end{macrocode} +%\changes{2.28}{2017-11-10}{changed \cs{xdef} to \cs{protected@xdef}}. %\end{macro} %\begin{macro}{\@dtl@activatebraces} % \cs{@dtl@activatebraces} resets braces for \cs{@dtl@rawread} @@ -14130,7 +14283,7 @@ datatool.dtx % Declare package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datagidx}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{datagidx}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -14887,6 +15040,15 @@ datatool.dtx % \end{macrocode} %\end{option} % +%\begin{option}{utf8} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\define@choicekey{datatool.sty}{utf8}{true,false}[true]{% + \setbool{@dtl@utf8}{#1}% +} +% \end{macrocode} +%\end{option} +% % These options govern the general layout of the glossary/index. %\begin{option}{columns} % The number of columns used by \env{multicols} (or @@ -17347,11 +17509,22 @@ datatool.dtx \define@key{newgloss}{postheading}{% \renewcommand*{\datagidx@postheading}{#1}% } +% \end{macrocode} +%\begin{macro}{\ifdatagidxbalance} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newif\ifdatagidxbalance +\datagidxbalancetrue +% \end{macrocode} +%\end{macro} +% \begin{macrocode} \define@choicekey{newgloss}{balance}[\val\nr]{true,false}[true]{% \ifcase\nr\relax \renewcommand*{\datagidx@multicols}{multicols}% + \datagidxbalancetrue \or \renewcommand*{\datagidx@multicols}{multicols*}% + \datagidxbalancefalse \fi } \define@key{newgloss}{sort}{\renewcommand*{\datagidx@sort}{#1}} @@ -18025,13 +18198,71 @@ datatool.dtx % \end{macrocode} %\end{macro} % +%\begin{macro}{\datagidxextendedtoascii} +% Convert commands like \ics{aa} into the closest ASCII equivalent. +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand{\datagidxextendedtoascii}{% + \def\AE{AE}% + \def\ae{ae}% + \def\OE{OE}% + \def\oe{oe}% + \def\AA{AA}% + \def\aa{aa}% + \def\L{L}% + \def\l{l}% + \def\O{O}% + \def\o{o}% + \def\SS{SS}% + \def\ss{ss}% + \def\th{th}% + \def\TH{TH}% + \def\dh{dh}% + \def\DH{DH}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\datagidxconvertchars} +% Convert commands like \cs{\&}. +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\datagidxconvertchars}{% + \let~\space + \ifdef\andname + {% + \let\&\andname + }% + {% + \def\&{\expandafter\@gobble\string\&}% + }% + \def\_{\string_}% + \def\${\string$}% + \def\#{\expandafter\@gobble\string\#}% + \def\%{\expandafter\@gobble\string\%}% + \def\{{\expandafter\@gobble\string\{}% + \def\}{\expandafter\@gobble\string\}}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\datagidxstripaccents} % Strip accents so they don't interfere with the label and sort. % If you want to write your own comparison handler macro, you'll % need to redefine this if you want accented letters to be sorted -% differently from the unaccented version. +% differently from the unaccented version. This command should +% only be used within a scope. % \begin{macrocode} \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 +% \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}% @@ -18047,12 +18278,7 @@ datatool.dtx %\end{definition} % Defaults to normal behaviour. % \begin{macrocode} -\ifdef\newterm -{% -}% -{% - \newcommand{\newterm}{\datagidx@newterm} -} +\providecommand{\newterm}{\datagidx@newterm} % \end{macrocode} %\end{macro} % @@ -18127,14 +18353,10 @@ datatool.dtx \let\textsl\DTLgidxNoFormat \let\emph\DTLgidxNoFormat \let\textsuperscript\DTLgidxNoFormat - \let~\space - \ifdef\andname - {% - \let\&\andname - }% - {% - \def\&{and}% - }% +% \end{macrocode} +% Convert character commands like \cs{\&}. +% \begin{macrocode} + \datagidxconvertchars % \end{macrocode} % Strip \cs{ensuremath}. % \begin{macrocode} @@ -18156,10 +18378,15 @@ datatool.dtx % Strip accent commands so they don't interfere with the label. % \begin{macrocode} \datagidxstripaccents + \datagidxextendedtoascii % \end{macrocode} % Allow user to hook into this. % \begin{macrocode} \newtermlabelhook +% \end{macrocode} +%There shouldn't really be any fragile commands in \verb|#2| but +%using \cs{protected@xdef} to be on the safe side. +% \begin{macrocode} \protected@xdef\newterm@label{\newterm@label}% % \end{macrocode} % These commands behave differently for the sort key: @@ -18175,6 +18402,10 @@ datatool.dtx \let\DTLgidxRank\datagidx@rank \let\DTLgidxParticle\datagidx@particle \let\DTLgidxNameNum\datagidx@namenum +% \end{macrocode} +%Need to use \cs{protected@xdef} here, which means limited support +%for stripping accents. +% \begin{macrocode} \protected@xdef\newterm@sort{\newterm@sort}% \egroup } @@ -19705,6 +19936,60 @@ datatool.dtx % \end{macrocode} %\end{macro} % +%\begin{macro}{\printtermsstartpar} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand{\printtermsstartpar}{\par} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\printterms@setupmulticol} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\printterms@setupmulticol}{% + \ifdefempty\datagidx@postheading + {% + \edef\datagidx@prestart{% + \noexpand\datagidx@heading{\noexpand\datagidx@title}% + \noexpand\begin{\datagidx@multicols}{\datagidx@columns}% + }% + }% + {% + \edef\datagidx@prestart{% + \noexpand\datagidx@heading{\noexpand\datagidx@title}% + \noexpand\begin{\datagidx@multicols}{\datagidx@columns}% + [\noexpand\datagidx@postheading]% + }% + }% + \edef\datagidx@postend{% + \noexpand\end{\datagidx@multicols}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\printterms@setuptwocol} +%\changes{2.28}{2017-11-10}{new} +% \begin{macrocode} +\newcommand*{\printterms@setuptwocol}{% + \def\datagidx@prestart{% + \twocolumn[\datagidx@heading{\datagidx@title}% + \datagidx@postheading]}% + \if@twocolumn + \def\datagidx@postend{}% + \else + \def\datagidx@postend{\printtermsrestoreonecolumn}% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\printtermsrestoreonecolumn} +% \begin{macrocode} +\newcommand{\printtermsrestoreonecolumn}{\onecolumn} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\printterms} %\begin{definition} %\cs{printterms}[options] @@ -19773,12 +20058,15 @@ datatool.dtx % Do we need to use \env{multicols}? % \begin{macrocode} \ifnum\datagidx@columns>1\relax - \edef\datagidx@prestart{% - \noexpand\begin{\datagidx@multicols}{\datagidx@columns}% - }% - \edef\datagidx@postend{% - \noexpand\end{\datagidx@multicols}% - }% + \ifnum\datagidx@columns=2\relax + \ifdatagidxbalance + \printterms@setupmulticol + \else + \printterms@setuptwocol + \fi + \else + \printterms@setupmulticol + \fi \else \def\datagidx@prestart{}% \def\datagidx@postend{}% @@ -19793,10 +20081,16 @@ datatool.dtx % Now display the glossary/index: % \begin{macrocode} \def\datagidx@labellist{}% - \datagidx@heading{\datagidx@title}% - \datagidx@postheading + \ifnum\datagidx@columns=1\relax + \datagidx@heading{\datagidx@title}% + \datagidx@postheading + \fi \datagidx@do@sort \datagidx@prestart +% \end{macrocode} +%\changes{2.28}{2017-11-10}{added paragraph break at the start}: +% \begin{macrocode} + \printtermsstartpar \datagidxstart \let\DTLgidxName\datagidx@invert \let\DTLgidxPlace\datagidx@invert @@ -20039,7 +20333,7 @@ datatool.dtx %\section{Package Declaration} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{databib}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{databib}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Load required packages: % \begin{macrocode} @@ -22962,7 +23256,7 @@ already exists}{}}}} % Declare package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{databar}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{databar}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Require \sty{xkeyval} package % \begin{macrocode} @@ -24269,7 +24563,7 @@ already exists}{}}}} % Declare package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datapie}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{datapie}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Require \sty{xkeyval} package % \begin{macrocode} @@ -25071,7 +25365,7 @@ already exists}{}}}} % Declare package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{dataplot}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{dataplot}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Required packages % \begin{macrocode} @@ -26693,7 +26987,7 @@ east,southeast,south,southwest,west,northwest}[northeast]{% % Package identification: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{person}[2016/07/28 v2.27 (NLCT)] +\ProvidesPackage{person}[2017/11/10 v2.28 (NLCT)] % \end{macrocode} % Requires the \sty{ifthen} package. % \begin{macrocode} |