diff options
author | Karl Berry <karl@freefriends.org> | 2013-07-11 23:29:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-07-11 23:29:36 +0000 |
commit | ced128389da6e12bc2da23bc40adfa2ee6eb7eec (patch) | |
tree | 52e007224ffd57a34c60740546dc7a1677c1e7e4 /Master/texmf-dist/tex/latex/datatool/datagidx.sty | |
parent | b863f2bfeab599875bf798ab734b9404f972625f (diff) |
datatool (10jul13)
git-svn-id: svn://tug.org/texlive/trunk@31174 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/datatool/datagidx.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/datatool/datagidx.sty | 73 |
1 files changed, 60 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/latex/datatool/datagidx.sty b/Master/texmf-dist/tex/latex/datatool/datagidx.sty index b9cd631badb..53c6e35e0dd 100644 --- a/Master/texmf-dist/tex/latex/datatool/datagidx.sty +++ b/Master/texmf-dist/tex/latex/datatool/datagidx.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datagidx}[2013/06/28 v2.14 (NLCT)] +\ProvidesPackage{datagidx}[2013/07/10 v2.15 (NLCT)] \RequirePackage{datatool} \RequirePackage{etoolbox} \RequirePackage{xkeyval} @@ -47,6 +47,7 @@ \RequirePackage{xfor} \RequirePackage{multicol} \RequirePackage{textcase} +\RequirePackage{afterpage} \newcommand*{\datagidx@columns}{2} \newcommand*{\DTLgidxSetColumns}[1]{% \DTLifint{#1}% @@ -312,10 +313,12 @@ \global\let\@datagidx@dorerun@warn@sort\@data@rerun@warn@sort }% } +\newif\if@datagidx@warn +\@datagidx@warntrue \newcommand*\@datagidx@dorerun@warn{} -\AtEndDocument{\@datagidx@dorerun@warn} +\AtEndDocument{\if@datagidx@warn\@datagidx@dorerun@warn\fi} \newcommand*\@datagidx@dorerun@warn@sort{} -\AtEndDocument{\@datagidx@dorerun@warn@sort} +\AtEndDocument{\if@datagidx@warn\@datagidx@dorerun@warn@sort\fi} \newcommand*\@data@rerun@warn@sort{% \PackageWarningNoLine{datagidx}{Rerun required to sort the index/glossary databases}% @@ -395,6 +398,14 @@ \datagidx@do@highopt@optimize \fi } +\define@choicekey{datagidx.sty}{nowarn}[\val\nr]{true,false}[true]% +{% + \ifcase\nr\relax + \@datagidx@warnfalse + \or + \@datagidx@warntrue + \fi +} \define@key{datagidx.sty}{columns}% {% \DTLgidxSetColumns{#1}% @@ -1737,15 +1748,15 @@ \datagidx@getlocation#1\relax \ifdefequal{\datagidx@prev@locationstring}{\datagidx@current@locationstring}% {% - \ifstrequal{\datagidx@prev@format}{\datagidx@current@format} + \ifstrequal{\datagidx@prev@format}{\datagidx@current@format}% {% }% {% - \ifdefempty{\datagidx@current@format} + \ifdefempty{\datagidx@current@format}% {% }% {% - \ifdefempty{\datagidx@prev@format} + \ifdefempty{\datagidx@prev@format}% {% \let\datagidx@prev@format\datagidx@current@format }% @@ -1765,11 +1776,11 @@ } \newcommand*{\@datagidx@parse@location}{% \@dtl@sequentialtrue - \ifdefequal{\datagidx@prev@format}{\datagidx@current@format} + \ifdefequal{\datagidx@prev@format}{\datagidx@current@format}% {% - \ifdefequal{\datagidx@prev@locationformat}{\datagidx@current@locationformat} + \ifdefequal{\datagidx@prev@locationformat}{\datagidx@current@locationformat}% {% - \ifdefequal{\datagidx@prev@prefix}{\datagidx@current@prefix} + \ifdefequal{\datagidx@prev@prefix}{\datagidx@current@prefix}% {% }% {% @@ -1870,7 +1881,7 @@ }% {% \DTLgidxLocationF - { + {% \datagidxlink{\datagidx@location@target}% {% \datagidx@formatlocation @@ -1930,6 +1941,20 @@ \datagidx@newgidx[#1]{#2}{#3}% }% } +\newcommand*{\loadgidx}[3][]{% + \input{#2}% + \bgroup + \setkeys{newgloss}{sort={},#1}% + \expandafter\datagidx@newgidx@update\expandafter + {\dtllastloadeddb}{#3}% + \egroup + \edef\datagidx@defaultdatabase{\dtllastloadeddb}% + \dtlforcolumn{\Label}{\dtllastloadeddb}{Label}% + {% + \csxdef{datagidxentry@\Label}{\dtllastloadeddb}% + }% +} +\@onlypreamble\loadgidx \newcommand*{\datagidx@newgidx}[3][]{% \bgroup \setkeys{newgloss}{#1}% @@ -2565,6 +2590,11 @@ {% \bgroup \datagidx@escapelocation + \def\@arabic{\noexpand\@arabic}% + \def\@roman{\noexpand\@roman}% + \def\@Roman{\noexpand\@Roman}% + \def\@alph{\noexpand\@alph}% + \def\@Alph{\noexpand\@Alph}% \protected@edef\@datagidx@dowriteaux{% \noexpand\datagidx@write@usedentry{#1}% {[#2]{#3}{\@datagidx@target}}% @@ -2701,9 +2731,21 @@ \string\datagidx@usedentry{#1}{#2}% }% \protected@edef\datagidx@do@usedentry{% - \noexpand\datagidx@usedentry[CurrentLocation]{#1}{#2}% + \noexpand\datagidx@xusedentry{CurrentLocation}{#1}{#2}% + }% + \expandafter\ifstrequal\expandafter{\DTLgidxCounter}{page}% + {% + \expandafter\afterpage\expandafter{\datagidx@do@usedentry}% + }% + { + \datagidx@do@usedentry + }% +} +\newcommand*{\datagidx@xusedentry}[3]{% + \protected@edef\@datagidx@do@xusedentry{% + \noexpand\datagidx@usedentry[#1]{#2}{#3}% }% - \datagidx@do@usedentry + \@datagidx@do@xusedentry } \newcommand*{\datagidx@usedentry}[3][Location]{% \ifcsundef{datagidxentry@#2}% @@ -3098,7 +3140,12 @@ {% \ifcsdef{datagidx@prev@loc@\Label}% {% - \ifcsequal{datagidx@prev@loc@\Label}{CurrentLocation}% + \protected@edef\@prev@location{% + \csname datagidx@prev@loc@\Label\endcsname}% + \@onelevel@sanitize\@prev@location + \protected@edef\@cur@location{\CurrentLocation}% + \@onelevel@sanitize\@cur@location + \ifdefequal{\@prev@location}{\@cur@location}% {}% {% \global\let\@datagidx@dorerun@warn\@data@rerun@warn |