summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/datatool/datagidx.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-07-11 23:29:36 +0000
committerKarl Berry <karl@freefriends.org>2013-07-11 23:29:36 +0000
commitced128389da6e12bc2da23bc40adfa2ee6eb7eec (patch)
tree52e007224ffd57a34c60740546dc7a1677c1e7e4 /Master/texmf-dist/tex/latex/datatool/datagidx.sty
parentb863f2bfeab599875bf798ab734b9404f972625f (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.sty73
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