summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-01-13 22:14:45 +0000
committerKarl Berry <karl@freefriends.org>2016-01-13 22:14:45 +0000
commit1916527c4310ffc4b2517c1242af4658bfa44e06 (patch)
tree4eda4590ac8977d316d05588893eceabfbbd38ed
parent4cd77eec47fe7cc19e2d131ebcb23183b082c401 (diff)
datatool (13jan16)
git-svn-id: svn://tug.org/texlive/trunk@39376 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/datatool/CHANGES13
-rw-r--r--Master/texmf-dist/doc/latex/datatool/README4
-rw-r--r--Master/texmf-dist/doc/latex/datatool/datatool-code.pdfbin923804 -> 1165367 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/datatool-user.pdfbin606573 -> 607877 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/datatool-user.tex246
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdfbin24923 -> 24911 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdfbin35068 -> 35056 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.pdfbin22860 -> 22848 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdfbin122595 -> 122578 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdfbin89557 -> 89544 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdfbin179590 -> 180135 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdfbin104238 -> 104788 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdfbin128779 -> 128764 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdfbin21623 -> 21890 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdfbin33966 -> 33954 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-sort.pdfbin61064 -> 89727 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-sort.tex19
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdfbin34616 -> 34602 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-two-per-row.pdfbin31751 -> 31739 bytes
-rw-r--r--Master/texmf-dist/source/latex/datatool/datatool.dtx532
-rw-r--r--Master/texmf-dist/source/latex/datatool/datatool.ins4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/databar.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/databib.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datagidx.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datapie.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/dataplot.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool-base.sty389
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool-fp.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool.sty4
-rw-r--r--Master/texmf-dist/tex/latex/datatool/person.sty4
31 files changed, 1161 insertions, 82 deletions
diff --git a/Master/texmf-dist/doc/latex/datatool/CHANGES b/Master/texmf-dist/doc/latex/datatool/CHANGES
index 311f435b815..e29220008d8 100644
--- a/Master/texmf-dist/doc/latex/datatool/CHANGES
+++ b/Master/texmf-dist/doc/latex/datatool/CHANGES
@@ -1,3 +1,16 @@
+v2.24:
+
+ * datatool-base:
+
+ - added "utf8" package option and \dtlenableUTFviii,
+ \dtldisableUTFviii
+
+ - added \dtlsetcharcode, \dtlsetlccharcode,
+ \dtlsetUTFviiicharcode, \dtlsetUTFviiilccharcode
+ \dtlsetdefaultUTFviiicharcode and
+ \dtlsetdefaultUTFviiilccharcode for use with the comparison
+ handlers.
+
v2.23:
* datatool:
diff --git a/Master/texmf-dist/doc/latex/datatool/README b/Master/texmf-dist/doc/latex/datatool/README
index 28ef7ab8756..38aad314e74 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.23
+LaTeX Bundle : datatool v2.24
-Last Modified : 2015-07-11
+Last Modified : 2016-01-12
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 5a1571a4282..e9a74d5c7a1 100644
--- a/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/datatool-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf b/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf
index fac3cc3d181..5360d80b0c1 100644
--- a/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/datatool-user.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/datatool/datatool-user.tex b/Master/texmf-dist/doc/latex/datatool/datatool-user.tex
index 91a26817787..885b832c301 100644
--- a/Master/texmf-dist/doc/latex/datatool/datatool-user.tex
+++ b/Master/texmf-dist/doc/latex/datatool/datatool-user.tex
@@ -1,5 +1,7 @@
\documentclass[report,widecs]{nlctdoc}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
\usepackage{ifthen}
\usepackage[verbose=false]{datatool}
\usepackage{datapie,databar,databib,person,datagidx}
@@ -7,10 +9,9 @@
\usepackage{graphicx}
\usepackage{colortbl}
\usepackage{booktabs}
+\usepackage{metalogo}
\usepackage{cmap}
\usepackage{alltt}
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
\ifpdf
\usepackage{mathpazo}
\usepackage[scaled=.88]{helvet}
@@ -98,11 +99,11 @@
\MakeShortVerb{"}
\DeleteShortVerb{\|}
- \title{User Manual for datatool bundle version~2.23}
+ \title{User Manual for datatool bundle version~2.24}
\author{Nicola L.C. Talbot\\
\url{http://www.dickimaw-books.com/}}
- \date{2015-07-11}
+ \date{2016-01-12}
\maketitle
\pagenumbering{roman}
@@ -117,7 +118,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.23}
+ read \qt{Documented Code for datatool v2.24}
\item[INSTALL] Installation instructions.
@@ -3906,7 +3907,7 @@ environment:
\bfseries Email 1 &
\bfseries Email 2 &
\bfseries Reg Num%
-\DTLforeach{emailDB}{\firstname=FirstName,\surname=Surname,%
+\DTLforeach*{emailDB}{\firstname=FirstName,\surname=Surname,%
\emailI=Email1,\emailII=Email2,\regnum=RegNum}{%
\\\firstname & \surname & \emailI & \emailII & \regnum}%
\end{tabular}
@@ -3918,7 +3919,7 @@ This produces the following:\par\vskip\baselineskip\noindent
\bfseries Email 1 &
\bfseries Email 2 &
\bfseries Reg Num\relax
-\DTLforeach{emailDB}{\firstname=FirstName,\surname
+\DTLforeach*{emailDB}{\firstname=FirstName,\surname
=Surname,\emailI=Email1,\emailII=Email2,\regnum=RegNum}{\relax
\\\firstname & \surname & \emailI & \emailII & \regnum}\relax
\end{tabular}
@@ -4570,8 +4571,9 @@ First of all, display the unsorted data:
\DTLdisplaydb{inversiondata}
\end{verbatim}
This produces:
-
+\begin{display}
\DTLdisplaydb{inversiondata}
+\end{display}
Now sort the data using the \ics{dtlwordindexcompare} handler:
\begin{verbatim}
@@ -4583,10 +4585,10 @@ and display again:
\DTLdisplaydb{inversiondata}
\end{verbatim}
which now produces:
-
+\begin{display}
\DTLdisplaydb{inversiondata}
-
-~here are three entries with pre-inversion text as simply
+\end{display}
+There are three entries here with pre-inversion text that's simply
\texttt{New York}. Since each of these three entries has the same
pre-inversion text, they need to be sorted according to the type of
inversion: person, place, subject. The fourth entry (New York, New
@@ -4601,7 +4603,221 @@ code for details on the syntax of the handler. (You may want to
consider uploading your handler as a separate package to CTAN if you
think it will be of general use.)
-There are two shortcut commands:
+As from version 2.24, the predefined handlers now have limited support for UTF-8
+characters. \emph{This is still experimental.} The support will
+automatically be switched on if the \sty{inputenc} package is loaded
+with the \pkgopt{utf8} option before loading \sty{datatool-base}
+(which is automatically loaded by \sty{datatool}). If \sty{inputenc}
+is loaded after \sty{datatool-base}, you can use the (boolean) \pkgopt{utf8}
+option when you load \sty{datatool-base} to enable it. For example,
+either:
+\begin{verbatim}
+\usepackage[utf8]{inputenc}
+\usepackage{datatool-base}
+\end{verbatim}
+or
+\begin{verbatim}
+\usepackage[utf8]{datatool-base}
+\usepackage[utf8]{inputenc}
+\end{verbatim}
+You can also enable this option after \sty{datatool-base} has been loaded
+using
+\begin{definition}[\DescribeMacro\dtlenableUTFviii]
+\cs{dtlenableUTFviii}
+\end{definition}
+or disable it with
+\begin{definition}[\DescribeMacro\dtldisableUTFviii]
+\cs{dtldisableUTFviii}
+\end{definition}
+For example:
+\begin{verbatim}
+\usepackage[utf8]{inputenc}
+\usepackage{datatool}
+\dtldisableUTFviii
+\end{verbatim}
+This option isn't required for \XeLaTeX, which treats each UTF-8
+character as an individual token.
+
+With regular (pdf)\LaTeX\ (as opposed to \XeLaTeX) each UTF-8 character is
+actually treated as two tokens that represent the first and second
+octet of the UTF-8 character. This means that it's not possible for
+\TeX\ to obtain a character code using the usual backtick method, so
+(with this option enabled) if a UTF-8 character is detected, the handlers
+described above will pass both octet tokens to one of the following commands:
+\begin{definition}[\DescribeMacro\dtlsetUTFviiicharcode]
+\cs{dtlsetUTFviiicharcode}\marg{octet tokens}\marg{count}
+\end{definition}
+(for the case-sensitive handler \ics{dltcompare}) and
+\begin{definition}[\DescribeMacro\dtlsetUTFviiilccharcode]
+\cs{dtlsetUTFviiilccharcode}\marg{octet tokens}\marg{count}
+\end{definition}
+(for the case-insensitive handlers).
+
+By default the first simply does:
+\begin{definition}[\DescribeMacro\dtlsetdefaultUTFviiicharcode]
+\cs{dtlsetdefaultUTFviiicharcode}\marg{octet tokens}\marg{count}
+\end{definition}
+and the second does
+\begin{definition}[\DescribeMacro\dtlsetdefaultUTFviiilccharcode]
+\cs{dtlsetdefaultUTFviiilccharcode}\marg{octet tokens}\marg{count}
+\end{definition}
+
+In all the above \meta{octet tokens} are the two octets forming the
+UTF-8 character and \meta{count} is a count register in which to
+store the relevant character code.
+
+The default commands simply set the character code for certain
+common accented Latin characters (such as \'e) to the code for their
+unaccented version (such as e). You can redefine
+\cs{dtlsetUTFviiicharcode} and \cs{dtlsetUTFviiilccharcode} to test
+for additional characters. For example, to add the Norwegian
+characters \ae, \o\ and \aa\ to the end of the Latin alphabet, you
+can do:
+\begin{verbatim}
+\renewcommand*{\dtlsetUTFviiicharcode}[2]{%
+ \ifstrequal{#1}{Æ}%
+ {%
+ #2=91\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ø}%
+ {%
+ #2=92\relax
+ }%
+ {%
+ \ifstrequal{#1}{Å}%
+ {%
+ #2=93\relax
+ }%
+ {%
+ \ifstrequal{#1}{æ}%
+ {%
+ #2=123\relax
+ }%
+ {%
+ \ifstrequal{#1}{ø}%
+ {%
+ #2=124\relax
+ }%
+ {%
+ \ifstrequal{#1}{å}%
+ {%
+ #2=125\relax
+ }%
+ {%
+ \dtlsetdefaultUTFviiicharcode{#1}{#2}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+
+\renewcommand*{\dtlsetUTFviiilccharcode}[2]{%
+ \ifstrequal{#1}{Æ}%
+ {%
+ #2=123\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ø}%
+ {%
+ #2=124\relax
+ }%
+ {%
+ \ifstrequal{#1}{Å}%
+ {%
+ #2=125\relax
+ }%
+ {%
+ \ifstrequal{#1}{æ}%
+ {%
+ #2=123\relax
+ }%
+ {%
+ \ifstrequal{#1}{ø}%
+ {%
+ #2=124\relax
+ }%
+ {%
+ \ifstrequal{#1}{å}%
+ {%
+ #2=125\relax
+ }%
+ {%
+ \dtlsetdefaultUTFviiilccharcode{#1}{#2}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+\end{verbatim}
+
+In the case where a~character is a single token (for example, with
+Latin-1 encoding), the code associated with that character is set
+using
+\begin{definition}[\DescribeMacro\dtlsetcharcode]
+\cs{dtlsetcharcode}\marg{c}\marg{count register}
+\end{definition}
+(for case-sensitive comparison) and
+\begin{definition}[\DescribeMacro\dtlsetlccharcode]
+\cs{dtlsetlccharcode}\marg{c}\marg{count register}
+\end{definition}
+(for case-insensitive comparison), where \meta{c} is the character
+and \meta{count register} is a count register. The default
+definitions are:
+\begin{verbatim}
+\newcommand*{\dtlsetcharcode}[2]{#2=`#1\relax}
+\newcommand*{\dtlsetlccharcode}[2]{#2=\lccode`#1\relax}
+\end{verbatim}
+So, for example, the letter \qt{e} has the code \number`e\ whereas
+(with the Latin-1 encoding) the letter \qt{\'e} has the code 233.
+This means that \qt{\'e} will be sorted after \qt{e}. It may be that
+you want \qt{\'e} to be treated the same as \qt{e} when making the
+comparison. In this case, you need to redefine \cs{dtlsetcharcode}
+and \cs{dtlsetlccharcode}. For example, for the case-sensitive
+comparisons:
+\begin{verbatim}
+\renewcommand*{\dtlsetcharcode}[2]{%
+ \ifstrequal{#1}{É}%
+ {%
+ #2=`E\relax
+ }%
+ {%
+ \ifstrequal{#1}{é}%
+ {%
+ #2=`e\relax
+ }%
+ {%
+ #2=`#1\relax
+ }%
+ }%
+}
+\end{verbatim}
+and for the case-insensitive comparisons:
+\begin{verbatim}
+\renewcommand*{\dtlsetlccharcode}[2]{%
+ \ifboolexpr
+ {%
+ test {\ifstrequal{#1}{é}}
+ or test {\ifstrequal{#1}{É}}
+ }%
+ {%
+ #2=`e\relax
+ }%
+ {%
+ #2=\lccode`#1\relax
+ }%
+}
+\end{verbatim}
+(Extra conditionals will need to be added for other diacritics.
+Alternative conditionals, such as \cs{ifx} or \cs{ifnum}, may be more
+efficient. In the above I've used the \sty{etoolbox} commands for
+clarity.)
+
+There are two shortcut commands for \cs{dtlsort}:
\begin{definition}[\DescribeMacro{\DTLsort}]%
\cs{DTLsort}\oarg{replacement key list}\marg{sort criteria}\marg{db name}
\end{definition}
@@ -4887,12 +5103,6 @@ This produces \autoref{tab:influencesort}.
\section{Saving a Database to an External File}
\label{sec:savedb}
-\begin{important}
-\TeX's write mechanism automatically inserts linebreaks every 80
-characters. This may cause problems if you have long entries in your
-database.
-\end{important}
-
\begin{definition}[\DescribeMacro{\DTLsavedb}]%
\cs{DTLsavedb}\marg{db name}\marg{filename}
\end{definition}
diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf
index ad495330892..dfba3d43cc7 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdf
Binary files differ
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 aaf21393f64..c6aadfaa097 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdf
Binary files 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 3f82014ed9c..efc79437a63 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.pdf
Binary files 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 533efaba595..5339715bd16 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdf
Binary files 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
index 45461691083..25761b21490 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdf
Binary files differ
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 a1d0cbdd44f..32fb87b3ab5 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdf
Binary files 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 c2c7ed49280..7b88dbfa57a 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdf
Binary files 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 21697f30670..aaed390088c 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdf
Binary files 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 57406d47eab..b007bf31bbc 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdf
Binary files 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 f431b620aaf..6ea6b930502 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdf
Binary files 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 1cf45c10e0e..9737968d009 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.tex b/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.tex
index bce750819dc..2c1f0b96f00 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.tex
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-sort.tex
@@ -2,6 +2,10 @@
\documentclass{article}
+\usepackage[margin=1in]{geometry}
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
\usepackage{datatool}
% Sample database
@@ -20,8 +24,9 @@
\DTLnewdbentry{data}{Word}{#1}%
% Convert word to its definition and add
{%
- \def\thisword{#1}\@onelevel@sanitize\thisword
- \dtlexpandnewvalue % ensure \theword gets expanded
+ \def\thisword{#1}%
+ \@onelevel@sanitize\thisword
+ \dtlexpandnewvalue % ensure \thisword gets expanded
\DTLnewdbentry{data}{Definition}{\thisword}%
}%
}
@@ -69,8 +74,18 @@
\newword{Alpha}
\newword{seal}
\newword{sea lion}
+\newword{elephant}
+\newword{Élite}
\begin{document}
+This is a sample document testing datatool's comparison
+handlers. Note that UTF-8 characters are treated as two tokens
+(the first and second octets) with regular (pdf)\LaTeX, so the
+definition column on the following pages shows the two octets
+for the UTF-8 character É as ÃĽ, which is how \LaTeX\ sees them. XeLaTeX will treat it as a single
+token.
+
+\newpage
\section{Unsorted data}
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 b73bfa7ef1f..ccff004636c 100644
--- a/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf
+++ b/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf
Binary files 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 5492735022c..7e6e918a0cb 100644
--- 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
Binary files differ
diff --git a/Master/texmf-dist/source/latex/datatool/datatool.dtx b/Master/texmf-dist/source/latex/datatool/datatool.dtx
index 23268df6614..34fd38d4f8a 100644
--- a/Master/texmf-dist/source/latex/datatool/datatool.dtx
+++ b/Master/texmf-dist/source/latex/datatool/datatool.dtx
@@ -2,11 +2,6 @@
% datatool.dtx generated using makedtx version 1.1 (c) Nicola Talbot
% Command line args:
% -doc "datatool-manual.tex"
-% -codetitle ""
-% -comment "databib\.bst"
-% -macrocode "databib\.bst"
-% -author "Nicola Talbot"
-% -setambles "databib\.bst=>\nopreamble\nopostamble"
% -src "datatool-base.sty\Z=>datatool-base.sty"
% -src "datatool-fp.sty\Z=>datatool-fp.sty"
% -src "datatool-pgfmath.sty\Z=>datatool-pgfmath.sty"
@@ -18,8 +13,13 @@
% -src "dataplot.sty\Z=>dataplot.sty"
% -src "person.sty\Z=>person.sty"
% -src "databib.bst\Z=>databib.bst"
+% -author "Nicola Talbot"
+% -codetitle ""
+% -macrocode "databib\.bst"
+% -comment "databib\.bst"
+% -setambles "databib\.bst=>\nopreamble\nopostamble"
% datatool
-% Created on 2015/7/11 16:07
+% Created on 2016/1/13 11:57
%\fi
%\iffalse
%<*package>
@@ -42,7 +42,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2015 Nicola Talbot, all rights reserved.
+% Copyright (C) 2016 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -66,7 +66,7 @@ datatool.dtx
\doxitem{Counter}{counter}{counters}
\doxitem{Option}{option}{package options}
-\CheckSum{23161}
+\CheckSum{23425}
\RecordChanges
\PageIndex
@@ -79,11 +79,11 @@ datatool.dtx
%\fi
%\MakeShortVerb{"}
%
-%\title{Documented Code for datatool v2.23}
+%\title{Documented Code for datatool v2.24}
%\author{Nicola L. C. Talbot\\
%\url{http://www.dickimaw-books.com/}}
%
-%\date{2015-07-11}
+%\date{2016-01-12}
%\maketitle
%
%\pagenumbering{roman}
@@ -117,7 +117,7 @@ datatool.dtx
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-base}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool-base}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -157,6 +157,33 @@ datatool.dtx
}
% \end{macrocode}
%\end{option}
+%
+%\begin{option}{utf8}
+%\changes{2.24}{2016-01-12}{new}
+% Enable UTF-8 support in comparison handlers. This is still a bit
+% experimental, so it needs to be explicitly switched on.
+% \begin{macrocode}
+\define@boolkey{datatool-base.sty}[@dtl@]{utf8}[true]{}
+\ifdef\UTFviii@two@octets
+{\booltrue{@dtl@utf8}}%
+{\boolfalse{@dtl@utf8}}
+% \end{macrocode}
+%\end{option}
+%
+%\begin{macro}{\dtlenableUTFviii}
+%\changes{2.24}{2016-01-12}{new}
+% \begin{macrocode}
+\newcommand*{\dtlenableUTFviii}{\booltrue{@dtl@utf8}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtldisableUTFviii}
+%\changes{2.24}{2016-01-12}{new}
+% \begin{macrocode}
+\newcommand*{\dtldisableUTFviii}{\boolfalse{@dtl@utf8}}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\@dtl@mathprocessor}
% \begin{macrocode}
\providecommand*{\@dtl@mathprocessor}{fp}
@@ -239,6 +266,36 @@ datatool.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\dtl@ifsingleorUTFviii}
+%\changes{2.24}{2016-01-12}{new}
+% As above but also checks for UTF8.
+% \begin{macrocode}
+\newcommand{\dtl@ifsingleorUTFviii}[3]{%
+ \ifbool{@dtl@utf8}
+ {%
+ \def\@dtl@arg{#1}%
+ \ifdefempty{\@dtl@arg}%
+ {%
+ #3%
+ }%
+ {%
+ \expandafter\dtl@if@two@octets#1\relax\relax\dtl@end@if@two@octets
+ {%
+ \dtl@getfirst@UTFviii#1\@nil\end@dtl@getfirst@UTFviii
+ \ifdefempty\dtl@rest{#2}{#3}%
+ }%
+ {%
+ \@dtl@ifsingle#1\@nil{#2}{#3}%
+ }%
+ }%
+ }%
+ {%
+ \dtl@ifsingle{#1}{#2}{#3}%
+ }%
+}%
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\dtlifintopenbetween}
%\begin{definition}
%\cs{dtlifintopenbetween}\marg{num}\marg{min}\marg{max}\marg{true
@@ -2808,8 +2865,8 @@ datatool.dtx
\expandafter\dtl@getfirst\@dtl@argB\end@dtl@getfirst
\let\dtl@firstB=\dtl@first
\let\dtl@restB=\dtl@rest
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstA}{%
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstB}{%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstA}{%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstB}{%
\expandafter\dtl@setcharcode\expandafter{\dtl@firstA}{\dtl@codeA}%
\expandafter\dtl@setcharcode\expandafter{\dtl@firstB}{\dtl@codeB}%
\ifnum\dtl@codeA=-1\relax
@@ -2878,6 +2935,48 @@ datatool.dtx
}
% \end{macrocode}
%\end{macro}
+%
+%\begin{macro}{\dtl@if@two@octets}
+%\changes{2.24}{2016-01-12}{new}
+%Check if argument starts with \cs{UTFviii@two@octets}
+% \begin{macrocode}
+\def\dtl@if@two@octets#1#2\dtl@end@if@two@octets#3#4{%
+ \ifbool{@dtl@utf8}
+ {%
+ \ifx\UTFviii@two@octets#1\relax
+ #3%
+ \else
+ #4%
+ \fi
+ }%
+ {%
+ #4%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtl@getfirst@UTFviii}
+%\changes{2.24}{2016-01-12}{new}
+% \begin{macrocode}
+\def\dtl@getfirst@UTFviii#1#2#3\end@dtl@getfirst@UTFviii{%
+ \def\dtl@first{#1#2}%
+ \ifx\@nil#3\relax
+ \def\dtl@rest{}%
+ \else
+ \expandafter\def\expandafter\dtl@rest\expandafter{\@dtl@firsttonil#3}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@dtl@firsttonil}
+%\changes{2.24}{2016-01-12}{new}
+% \begin{macrocode}
+\def\@dtl@firsttonil#1\@nil{#1}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\dtl@getfirst}
% Gets the first object, and stores in \cs{dtl@first}. The remainder
% is stored in \cs{dtl@rest}.
@@ -2890,9 +2989,21 @@ datatool.dtx
\def\dtl@rest{#2}%
}%
{%
- \dtl@ifsingle{#1}{\def\dtl@rest{#2}}{\dtl@getfirst#1#2\end@dtl@getfirst}%
+ \ifbool{@dtl@utf8}
+ {%
+ \expandafter\dtl@if@two@octets#1#2\relax\dtl@end@if@two@octets
+ {%
+ \dtl@getfirst@UTFviii#1#2\@nil\end@dtl@getfirst@UTFviii
+ }%
+ {%
+ \dtl@ifsingle{#1}{\def\dtl@rest{#2}}{\dtl@getfirst#1#2\end@dtl@getfirst}%
+ }%
+ }%
+ {%
+ \dtl@ifsingle{#1}{\def\dtl@rest{#2}}{\dtl@getfirst#1#2\end@dtl@getfirst}%
+ }%
}%
-}
+}%
% \end{macrocode}
%\end{macro}
% Count registers to store character codes:
@@ -2918,7 +3029,7 @@ datatool.dtx
#2=-1\relax
}%
{%
- \ifx#1\@dtl@wordbreak\relax
+ \ifx\@dtl@wordbreak#1\relax
% \end{macrocode}
% Reached a word break. Set to character code of a space.
%\changes{2.13}{2013-01-15}{change from check for space and tilde to check
@@ -2932,10 +3043,19 @@ datatool.dtx
% \begin{macrocode}
#2=0\relax
\else
+ \expandafter\dtl@if@two@octets#1\relax\relax\dtl@end@if@two@octets
+ {%
+% \end{macrocode}
+% Argument is a UTF8 character.
+% \begin{macrocode}
+ \dtlsetUTFviiicharcode{#1}{#2}%
+ }%
+ {%
% \end{macrocode}
% Argument is a character, so set to the character code.
% \begin{macrocode}
- #2=`#1\relax
+ \dtlsetcharcode{#1}{#2}%
+ }%
\fi
\fi
}%
@@ -2943,6 +3063,336 @@ datatool.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\dtlsetcharcode}
+%\changes{2.24}{2016-01-12}{new}
+% Set the code for the given character. May be redefined by user
+% for non-UTF8 encodings (e.g.\ Latin-1).
+% \begin{macrocode}
+\newcommand*{\dtlsetcharcode}[2]{#2=`#1\relax}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtlsetlccharcode}
+%\changes{2.24}{2016-01-12}{new}
+% Set the lowercase code for the given character. May be redefined by user
+% for non-UTF8 encodings (e.g.\ Latin-1).
+% \begin{macrocode}
+\newcommand*{\dtlsetlccharcode}[2]{#2=\lccode`#1\relax}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtlsetUTFviiicharcode}
+% Default behaviour is to set all UTF8 characters to code 64 (before
+% A). This will need to be redefined according to the relevant alphabet.
+%\changes{2.24}{2016-01-12}{new}
+% \begin{macrocode}
+\newcommand*\dtlsetUTFviiicharcode[2]{\dtlsetdefaultUTFviiicharcode{#1}{#2}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtlsetUTFviiilccharcode}
+%\changes{2.24}{2016-01-12}{new}
+% Default behaviour is to set all UTF8 characters to code 96 (before
+% a). This will need to be redefined according to the relevant alphabet.
+% \begin{macrocode}
+\newcommand*\dtlsetUTFviiilccharcode[2]{\dtlsetdefaultUTFviiilccharcode{#1}{#2}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtlsetdefaultUTFviiicharcode}
+%\changes{2.24}{2016-01-12}{new}
+% Default codes for some supplemental Latin characters.
+% \begin{macrocode}
+\newcommand*\dtlsetdefaultUTFviiicharcode[2]{%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{À}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Ã}}
+ or test {\ifstrequal{#1}{Ä}}
+ }%
+ {%
+ #2=`A\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ç}%
+ {%
+ #2=`C\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{È}}
+ or test {\ifstrequal{#1}{É}}
+ or test {\ifstrequal{#1}{Ê}}
+ or test {\ifstrequal{#1}{Ë}}
+ }%
+ {%
+ #2=`E\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{Ì}}
+ or test {\ifstrequal{#1}{Í}}
+ or test {\ifstrequal{#1}{Î}}
+ or test {\ifstrequal{#1}{Ï}}
+ }%
+ {%
+ #2=`I\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ñ}%
+ {%
+ #2=`N\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{Ò}}
+ or test {\ifstrequal{#1}{Ó}}
+ or test {\ifstrequal{#1}{Ô}}
+ or test {\ifstrequal{#1}{Õ}}
+ or test {\ifstrequal{#1}{Ö}}
+ }%
+ {%
+ #2=`O\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{Ù}}
+ or test {\ifstrequal{#1}{Ú}}
+ or test {\ifstrequal{#1}{Û}}
+ or test {\ifstrequal{#1}{Ü}}
+ }%
+ {%
+ #2=`U\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ý}%
+ {%
+ #2=`Y\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{à}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{ã}}
+ or test {\ifstrequal{#1}{ä}}
+ }%
+ {%
+ #2=`a\relax
+ }%
+ {%
+ \ifstrequal{#1}{ç}%
+ {%
+ #2=`c\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{è}}
+ or test {\ifstrequal{#1}{é}}
+ or test {\ifstrequal{#1}{ê}}
+ or test {\ifstrequal{#1}{ë}}
+ }%
+ {%
+ #2=`e\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ì}}
+ or test {\ifstrequal{#1}{í}}
+ or test {\ifstrequal{#1}{î}}
+ or test {\ifstrequal{#1}{ï}}
+ }%
+ {%
+ #2=`i\relax
+ }%
+ {%
+ \ifstrequal{#1}{ñ}%
+ {%
+ #2=`n\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ò}}
+ or test {\ifstrequal{#1}{ó}}
+ or test {\ifstrequal{#1}{ô}}
+ or test {\ifstrequal{#1}{õ}}
+ or test {\ifstrequal{#1}{ö}}
+ }%
+ {%
+ #2=`o\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ù}}
+ or test {\ifstrequal{#1}{ú}}
+ or test {\ifstrequal{#1}{û}}
+ or test {\ifstrequal{#1}{ü}}
+ }%
+ {%
+ #2=`u\relax
+ }%
+ {%
+ \ifstrequal{#1}{ý}%
+ {%
+ #2=`y\relax
+ }%
+ {%
+ #2=64\relax
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\dtlsetdefaultUTFviiilccharcode}
+%\changes{2.24}{2016-01-12}{new}
+% As above but for case-insensitive comparison.
+% \begin{macrocode}
+\newcommand*\dtlsetdefaultUTFviiilccharcode[2]{%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{à}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{ã}}
+ or test {\ifstrequal{#1}{ä}}
+ or test {\ifstrequal{#1}{À}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Ã}}
+ or test {\ifstrequal{#1}{Ä}}
+ }%
+ {%
+ #2=`a\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ç}}
+ or test {\ifstrequal{#1}{Ç}}
+ }
+ {%
+ #2=`c\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{è}}
+ or test {\ifstrequal{#1}{é}}
+ or test {\ifstrequal{#1}{ê}}
+ or test {\ifstrequal{#1}{ë}}
+ or test {\ifstrequal{#1}{È}}
+ or test {\ifstrequal{#1}{É}}
+ or test {\ifstrequal{#1}{Ê}}
+ or test {\ifstrequal{#1}{Ë}}
+ }%
+ {%
+ #2=`e\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ì}}
+ or test {\ifstrequal{#1}{í}}
+ or test {\ifstrequal{#1}{î}}
+ or test {\ifstrequal{#1}{ï}}
+ or test {\ifstrequal{#1}{Ì}}
+ or test {\ifstrequal{#1}{Í}}
+ or test {\ifstrequal{#1}{Î}}
+ or test {\ifstrequal{#1}{Ï}}
+ }%
+ {%
+ #2=`i\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ñ}}
+ or test {\ifstrequal{#1}{Ñ}}
+ }
+ {%
+ #2=`n\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ò}}
+ or test {\ifstrequal{#1}{ó}}
+ or test {\ifstrequal{#1}{ô}}
+ or test {\ifstrequal{#1}{õ}}
+ or test {\ifstrequal{#1}{ö}}
+ or test {\ifstrequal{#1}{Ò}}
+ or test {\ifstrequal{#1}{Ó}}
+ or test {\ifstrequal{#1}{Ô}}
+ or test {\ifstrequal{#1}{Õ}}
+ or test {\ifstrequal{#1}{Ö}}
+ }%
+ {%
+ #2=`o\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ù}}
+ or test {\ifstrequal{#1}{ú}}
+ or test {\ifstrequal{#1}{û}}
+ or test {\ifstrequal{#1}{ü}}
+ or test {\ifstrequal{#1}{Ù}}
+ or test {\ifstrequal{#1}{Ú}}
+ or test {\ifstrequal{#1}{Û}}
+ or test {\ifstrequal{#1}{Ü}}
+ }%
+ {%
+ #2=`u\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ý}}
+ or test {\ifstrequal{#1}{Ý}}
+ }%
+ {%
+ #2=`y\relax
+ }%
+ {%
+ #2=96\relax
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\dtl@setlccharcode}
%\begin{definition}
%\cs{dtl@setlccharcode}\marg{c}\marg{count register}
@@ -2975,10 +3425,19 @@ datatool.dtx
% \begin{macrocode}
#2=0\relax
\else
+ \expandafter\dtl@if@two@octets#1\relax\relax\dtl@end@if@two@octets
+ {%
+% \end{macrocode}
+% Argument is a UTF8 character.
+% \begin{macrocode}
+ \dtlsetUTFviiilccharcode{#1}{#2}%
+ }%
+ {%
% \end{macrocode}
% Argument is a character, so set to the lower case code.
% \begin{macrocode}
- #2=\lccode`#1\relax
+ \dtlsetlccharcode{#1}{#2}%
+ }%
% \end{macrocode}
% If the result is zero, which means the character doesn't have a lower case
% equivalent. So set to the character code.
@@ -3052,13 +3511,13 @@ datatool.dtx
% \end{macrocode}
% Is the first object of \meta{string1} a single character or a group?
% \begin{macrocode}
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstA}%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstA}%
{%
% \end{macrocode}
% It's a single character. Is the first object of \meta{string2} a
% single character or a group?
% \begin{macrocode}
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstB}%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstB}%
{%
% \end{macrocode}
% Both are a single character. Get the lower case character code.
@@ -3631,6 +4090,20 @@ datatool.dtx
% Determine if first character is a letter, a digit or a symbol.
% \begin{macrocode}
\def\dtl@ifcasechargroup#1#2\dtl@end@ifcasechargroup#3#4#5{%
+% \end{macrocode}
+% Does it start with a UTF8 character?
+% \begin{macrocode}
+ \expandafter\dtl@if@two@octets#1#2\relax\relax\dtl@end@if@two@octets
+ {%
+% \end{macrocode}
+% Get the lower case character code.
+%\changes{2.24}{2016-01-12}{added check for UTF8}
+% \begin{macrocode}
+ \dtl@getfirst@UTFviii#1#2\@nil\end@dtl@getfirst@UTFviii
+ \expandafter\dtlsetUTFviiilccharcode\expandafter{\dtl@first}{\count@}%
+ \ifnum\count@<`a\relax #5\else#3\fi
+ }%
+ {%
\dtlifcasechargroup{#1}%
{#3}%
{%
@@ -3649,6 +4122,7 @@ datatool.dtx
}%
}%
{#5}%
+ }%
}
% \end{macrocode}
%\end{macro}
@@ -5232,7 +5706,7 @@ datatool.dtx
% Definitions of fixed-point commands that use the \sty{fp} package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-fp}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool-fp}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -5521,7 +5995,7 @@ datatool.dtx
% Definitions of fixed-point commands that use the \sty{pgfmath} package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-pgfmath}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool-pgfmath}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -5778,7 +6252,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -13371,7 +13845,7 @@ datatool.dtx
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datagidx}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datagidx}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -19280,7 +19754,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databib}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{databib}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -22203,7 +22677,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databar}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{databar}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Require \sty{xkeyval} package
% \begin{macrocode}
@@ -23510,7 +23984,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datapie}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datapie}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Require \sty{xkeyval} package
% \begin{macrocode}
@@ -24215,7 +24689,7 @@ Try #2-#1 instead of #1-#2}%
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{dataplot}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{dataplot}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Required packages
% \begin{macrocode}
@@ -25837,7 +26311,7 @@ east,southeast,south,southwest,west,northwest}[northeast]{%
% Package identification:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{person}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{person}[2016/01/12 v2.24 (NLCT)]
% \end{macrocode}
% Requires the \sty{ifthen} package.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/datatool/datatool.ins b/Master/texmf-dist/source/latex/datatool/datatool.ins
index 74541b91fe8..653f1e5da7f 100644
--- a/Master/texmf-dist/source/latex/datatool/datatool.ins
+++ b/Master/texmf-dist/source/latex/datatool/datatool.ins
@@ -1,10 +1,10 @@
-% datatool.ins generated using makedtx version 1.1 2015/7/11 16:07
+% datatool.ins generated using makedtx version 1.1 2016/1/13 11:57
\input docstrip
\preamble
datatool.dtx
- Copyright 2015 Nicola Talbot
+ Copyright 2016 Nicola Talbot
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/Master/texmf-dist/tex/latex/datatool/databar.sty b/Master/texmf-dist/tex/latex/datatool/databar.sty
index 299ab3dcd59..c2be6c46081 100644
--- a/Master/texmf-dist/tex/latex/datatool/databar.sty
+++ b/Master/texmf-dist/tex/latex/datatool/databar.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `databar.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databar}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{databar}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{dataplot}
\newif\ifDTLcolorbarchart
diff --git a/Master/texmf-dist/tex/latex/datatool/databib.sty b/Master/texmf-dist/tex/latex/datatool/databib.sty
index 62f315bd24d..fa88e581ed4 100644
--- a/Master/texmf-dist/tex/latex/datatool/databib.sty
+++ b/Master/texmf-dist/tex/latex/datatool/databib.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `databib.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databib}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{databib}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{datatool}
\newcommand*{\dtlbib@style}{plain}
\define@choicekey{databib.sty}{style}{plain,abbrv,alpha}{%
diff --git a/Master/texmf-dist/tex/latex/datatool/datagidx.sty b/Master/texmf-dist/tex/latex/datatool/datagidx.sty
index 79800baf338..f954dfd77ed 100644
--- a/Master/texmf-dist/tex/latex/datatool/datagidx.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datagidx.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `datagidx.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datagidx}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datagidx}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{datatool}
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}
diff --git a/Master/texmf-dist/tex/latex/datatool/datapie.sty b/Master/texmf-dist/tex/latex/datatool/datapie.sty
index fc7d158d960..60d8841780f 100644
--- a/Master/texmf-dist/tex/latex/datatool/datapie.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datapie.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `datapie.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datapie}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datapie}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{xkeyval}
\newif\ifDTLcolorpiechart
\DTLcolorpiecharttrue
diff --git a/Master/texmf-dist/tex/latex/datatool/dataplot.sty b/Master/texmf-dist/tex/latex/datatool/dataplot.sty
index 66614bdd404..bce7f288af8 100644
--- a/Master/texmf-dist/tex/latex/datatool/dataplot.sty
+++ b/Master/texmf-dist/tex/latex/datatool/dataplot.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `dataplot.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{dataplot}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{dataplot}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{tikz}
\RequirePackage{datatool}
diff --git a/Master/texmf-dist/tex/latex/datatool/datatool-base.sty b/Master/texmf-dist/tex/latex/datatool/datatool-base.sty
index 37df89e72d3..bff81cc7e7e 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool-base.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool-base.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `datatool-base.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-base}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool-base}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{etoolbox}
\RequirePackage{amsmath}
\RequirePackage{xkeyval}
@@ -54,6 +54,12 @@
\define@choicekey{datatool-base.sty}{math}[\val\nr]{fp,pgfmath}{%
\renewcommand*\@dtl@mathprocessor{#1}%
}
+\define@boolkey{datatool-base.sty}[@dtl@]{utf8}[true]{}
+\ifdef\UTFviii@two@octets
+{\booltrue{@dtl@utf8}}%
+{\boolfalse{@dtl@utf8}}
+\newcommand*{\dtlenableUTFviii}{\booltrue{@dtl@utf8}}
+\newcommand*{\dtldisableUTFviii}{\boolfalse{@dtl@utf8}}
\providecommand*{\@dtl@mathprocessor}{fp}
\ProcessOptionsX
\RequirePackage{datatool-\@dtl@mathprocessor}
@@ -83,6 +89,29 @@
#4%
}%
}
+\newcommand{\dtl@ifsingleorUTFviii}[3]{%
+ \ifbool{@dtl@utf8}
+ {%
+ \def\@dtl@arg{#1}%
+ \ifdefempty{\@dtl@arg}%
+ {%
+ #3%
+ }%
+ {%
+ \expandafter\dtl@if@two@octets#1\relax\relax\dtl@end@if@two@octets
+ {%
+ \dtl@getfirst@UTFviii#1\@nil\end@dtl@getfirst@UTFviii
+ \ifdefempty\dtl@rest{#2}{#3}%
+ }%
+ {%
+ \@dtl@ifsingle#1\@nil{#2}{#3}%
+ }%
+ }%
+ }%
+ {%
+ \dtl@ifsingle{#1}{#2}{#3}%
+ }%
+}%
\newcommand{\dtlifintopenbetween}[5]{%
\ifnum#1>#2\relax
\ifnum#1<#3\relax
@@ -1509,8 +1538,8 @@
\expandafter\dtl@getfirst\@dtl@argB\end@dtl@getfirst
\let\dtl@firstB=\dtl@first
\let\dtl@restB=\dtl@rest
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstA}{%
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstB}{%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstA}{%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstB}{%
\expandafter\dtl@setcharcode\expandafter{\dtl@firstA}{\dtl@codeA}%
\expandafter\dtl@setcharcode\expandafter{\dtl@firstB}{\dtl@codeB}%
\ifnum\dtl@codeA=-1\relax
@@ -1577,6 +1606,28 @@
}%
}%
}
+\def\dtl@if@two@octets#1#2\dtl@end@if@two@octets#3#4{%
+ \ifbool{@dtl@utf8}
+ {%
+ \ifx\UTFviii@two@octets#1\relax
+ #3%
+ \else
+ #4%
+ \fi
+ }%
+ {%
+ #4%
+ }%
+}
+\def\dtl@getfirst@UTFviii#1#2#3\end@dtl@getfirst@UTFviii{%
+ \def\dtl@first{#1#2}%
+ \ifx\@nil#3\relax
+ \def\dtl@rest{}%
+ \else
+ \expandafter\def\expandafter\dtl@rest\expandafter{\@dtl@firsttonil#3}%
+ \fi
+}
+\def\@dtl@firsttonil#1\@nil{#1}
\def\dtl@getfirst#1#2\end@dtl@getfirst{%
\def\dtl@first{#1}%
\ifdefempty{\dtl@first}%
@@ -1584,9 +1635,21 @@
\def\dtl@rest{#2}%
}%
{%
- \dtl@ifsingle{#1}{\def\dtl@rest{#2}}{\dtl@getfirst#1#2\end@dtl@getfirst}%
+ \ifbool{@dtl@utf8}
+ {%
+ \expandafter\dtl@if@two@octets#1#2\relax\dtl@end@if@two@octets
+ {%
+ \dtl@getfirst@UTFviii#1#2\@nil\end@dtl@getfirst@UTFviii
+ }%
+ {%
+ \dtl@ifsingle{#1}{\def\dtl@rest{#2}}{\dtl@getfirst#1#2\end@dtl@getfirst}%
+ }%
+ }%
+ {%
+ \dtl@ifsingle{#1}{\def\dtl@rest{#2}}{\dtl@getfirst#1#2\end@dtl@getfirst}%
+ }%
}%
-}
+}%
\newcount\dtl@codeA
\newcount\dtl@codeB
\newcommand*{\dtl@setcharcode}[2]{%
@@ -1595,17 +1658,307 @@
#2=-1\relax
}%
{%
- \ifx#1\@dtl@wordbreak\relax
+ \ifx\@dtl@wordbreak#1\relax
#2=`\ \relax
\else
\ifcat\noexpand#1\relax
#2=0\relax
\else
- #2=`#1\relax
+ \expandafter\dtl@if@two@octets#1\relax\relax\dtl@end@if@two@octets
+ {%
+ \dtlsetUTFviiicharcode{#1}{#2}%
+ }%
+ {%
+ \dtlsetcharcode{#1}{#2}%
+ }%
\fi
\fi
}%
}
+\newcommand*{\dtlsetcharcode}[2]{#2=`#1\relax}
+\newcommand*{\dtlsetlccharcode}[2]{#2=\lccode`#1\relax}
+\newcommand*\dtlsetUTFviiicharcode[2]{\dtlsetdefaultUTFviiicharcode{#1}{#2}}
+\newcommand*\dtlsetUTFviiilccharcode[2]{\dtlsetdefaultUTFviiilccharcode{#1}{#2}}
+\newcommand*\dtlsetdefaultUTFviiicharcode[2]{%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{À}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Ã}}
+ or test {\ifstrequal{#1}{Ä}}
+ }%
+ {%
+ #2=`A\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ç}%
+ {%
+ #2=`C\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{È}}
+ or test {\ifstrequal{#1}{É}}
+ or test {\ifstrequal{#1}{Ê}}
+ or test {\ifstrequal{#1}{Ë}}
+ }%
+ {%
+ #2=`E\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{Ì}}
+ or test {\ifstrequal{#1}{Í}}
+ or test {\ifstrequal{#1}{Î}}
+ or test {\ifstrequal{#1}{Ï}}
+ }%
+ {%
+ #2=`I\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ñ}%
+ {%
+ #2=`N\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{Ò}}
+ or test {\ifstrequal{#1}{Ó}}
+ or test {\ifstrequal{#1}{Ô}}
+ or test {\ifstrequal{#1}{Õ}}
+ or test {\ifstrequal{#1}{Ö}}
+ }%
+ {%
+ #2=`O\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{Ù}}
+ or test {\ifstrequal{#1}{Ú}}
+ or test {\ifstrequal{#1}{Û}}
+ or test {\ifstrequal{#1}{Ü}}
+ }%
+ {%
+ #2=`U\relax
+ }%
+ {%
+ \ifstrequal{#1}{Ý}%
+ {%
+ #2=`Y\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{à}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{ã}}
+ or test {\ifstrequal{#1}{ä}}
+ }%
+ {%
+ #2=`a\relax
+ }%
+ {%
+ \ifstrequal{#1}{ç}%
+ {%
+ #2=`c\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{è}}
+ or test {\ifstrequal{#1}{é}}
+ or test {\ifstrequal{#1}{ê}}
+ or test {\ifstrequal{#1}{ë}}
+ }%
+ {%
+ #2=`e\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ì}}
+ or test {\ifstrequal{#1}{í}}
+ or test {\ifstrequal{#1}{î}}
+ or test {\ifstrequal{#1}{ï}}
+ }%
+ {%
+ #2=`i\relax
+ }%
+ {%
+ \ifstrequal{#1}{ñ}%
+ {%
+ #2=`n\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ò}}
+ or test {\ifstrequal{#1}{ó}}
+ or test {\ifstrequal{#1}{ô}}
+ or test {\ifstrequal{#1}{õ}}
+ or test {\ifstrequal{#1}{ö}}
+ }%
+ {%
+ #2=`o\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ù}}
+ or test {\ifstrequal{#1}{ú}}
+ or test {\ifstrequal{#1}{û}}
+ or test {\ifstrequal{#1}{ü}}
+ }%
+ {%
+ #2=`u\relax
+ }%
+ {%
+ \ifstrequal{#1}{ý}%
+ {%
+ #2=`y\relax
+ }%
+ {%
+ #2=64\relax
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+\newcommand*\dtlsetdefaultUTFviiilccharcode[2]{%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{à}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{á}}
+ or test {\ifstrequal{#1}{ã}}
+ or test {\ifstrequal{#1}{ä}}
+ or test {\ifstrequal{#1}{À}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Á}}
+ or test {\ifstrequal{#1}{Ã}}
+ or test {\ifstrequal{#1}{Ä}}
+ }%
+ {%
+ #2=`a\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ç}}
+ or test {\ifstrequal{#1}{Ç}}
+ }
+ {%
+ #2=`c\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{è}}
+ or test {\ifstrequal{#1}{é}}
+ or test {\ifstrequal{#1}{ê}}
+ or test {\ifstrequal{#1}{ë}}
+ or test {\ifstrequal{#1}{È}}
+ or test {\ifstrequal{#1}{É}}
+ or test {\ifstrequal{#1}{Ê}}
+ or test {\ifstrequal{#1}{Ë}}
+ }%
+ {%
+ #2=`e\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ì}}
+ or test {\ifstrequal{#1}{í}}
+ or test {\ifstrequal{#1}{î}}
+ or test {\ifstrequal{#1}{ï}}
+ or test {\ifstrequal{#1}{Ì}}
+ or test {\ifstrequal{#1}{Í}}
+ or test {\ifstrequal{#1}{Î}}
+ or test {\ifstrequal{#1}{Ï}}
+ }%
+ {%
+ #2=`i\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ñ}}
+ or test {\ifstrequal{#1}{Ñ}}
+ }
+ {%
+ #2=`n\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ò}}
+ or test {\ifstrequal{#1}{ó}}
+ or test {\ifstrequal{#1}{ô}}
+ or test {\ifstrequal{#1}{õ}}
+ or test {\ifstrequal{#1}{ö}}
+ or test {\ifstrequal{#1}{Ò}}
+ or test {\ifstrequal{#1}{Ó}}
+ or test {\ifstrequal{#1}{Ô}}
+ or test {\ifstrequal{#1}{Õ}}
+ or test {\ifstrequal{#1}{Ö}}
+ }%
+ {%
+ #2=`o\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ù}}
+ or test {\ifstrequal{#1}{ú}}
+ or test {\ifstrequal{#1}{û}}
+ or test {\ifstrequal{#1}{ü}}
+ or test {\ifstrequal{#1}{Ù}}
+ or test {\ifstrequal{#1}{Ú}}
+ or test {\ifstrequal{#1}{Û}}
+ or test {\ifstrequal{#1}{Ü}}
+ }%
+ {%
+ #2=`u\relax
+ }%
+ {%
+ \ifboolexpr
+ {
+ test {\ifstrequal{#1}{ý}}
+ or test {\ifstrequal{#1}{Ý}}
+ }%
+ {%
+ #2=`y\relax
+ }%
+ {%
+ #2=96\relax
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
\newcommand*{\dtl@setlccharcode}[2]{%
\ifstrempty{#1}%
{%
@@ -1618,7 +1971,13 @@
\ifcat\noexpand#1\relax%
#2=0\relax
\else
- #2=\lccode`#1\relax
+ \expandafter\dtl@if@two@octets#1\relax\relax\dtl@end@if@two@octets
+ {%
+ \dtlsetUTFviiilccharcode{#1}{#2}%
+ }%
+ {%
+ \dtlsetlccharcode{#1}{#2}%
+ }%
\ifnum#2=0\relax
#2=`#1\relax
\fi
@@ -1655,9 +2014,9 @@
\expandafter\dtl@getfirst\@dtl@argB\end@dtl@getfirst
\let\dtl@firstB=\dtl@first
\let\dtl@restB=\dtl@rest
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstA}%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstA}%
{%
- \expandafter\dtl@ifsingle\expandafter{\dtl@firstB}%
+ \expandafter\dtl@ifsingleorUTFviii\expandafter{\dtl@firstB}%
{%
\expandafter\dtl@setlccharcode\expandafter{\dtl@firstA}{\dtl@codeA}%
\expandafter\dtl@setlccharcode\expandafter{\dtl@firstB}{\dtl@codeB}%
@@ -1996,6 +2355,13 @@
}
\newcommand*{\@dtl@wordbreak}{ }
\def\dtl@ifcasechargroup#1#2\dtl@end@ifcasechargroup#3#4#5{%
+ \expandafter\dtl@if@two@octets#1#2\relax\relax\dtl@end@if@two@octets
+ {%
+ \dtl@getfirst@UTFviii#1#2\@nil\end@dtl@getfirst@UTFviii
+ \expandafter\dtlsetUTFviiilccharcode\expandafter{\dtl@first}{\count@}%
+ \ifnum\count@<`a\relax #5\else#3\fi
+ }%
+ {%
\dtlifcasechargroup{#1}%
{#3}%
{%
@@ -2008,6 +2374,7 @@
}%
}%
{#5}%
+ }%
}
\newcommand*{\dtlifcasechargroup}[4]{%
\count@=`#1\relax
diff --git a/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty b/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty
index 3d2e5a6798e..b1b27fabe8d 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `datatool-fp.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-fp}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool-fp}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{fp}
\RequirePackage{datatool-base}
diff --git a/Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty b/Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty
index 82904f6cdd8..ac7e48ec5a3 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `datatool-pgfmath.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-pgfmath}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool-pgfmath}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{pgfrcs,pgfkeys,pgfmath}
\ProcessOptionsX
diff --git a/Master/texmf-dist/tex/latex/datatool/datatool.sty b/Master/texmf-dist/tex/latex/datatool/datatool.sty
index 46b03f234e4..4d27d477dad 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `datatool.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{datatool}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{ifthen}
\RequirePackage{xfor}
diff --git a/Master/texmf-dist/tex/latex/datatool/person.sty b/Master/texmf-dist/tex/latex/datatool/person.sty
index 8e5bf2590a3..7a2d31ada7e 100644
--- a/Master/texmf-dist/tex/latex/datatool/person.sty
+++ b/Master/texmf-dist/tex/latex/datatool/person.sty
@@ -7,7 +7,7 @@
%% datatool.dtx (with options: `person.sty,package')
%%
%% datatool.dtx
-%% Copyright 2015 Nicola Talbot
+%% Copyright 2016 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{person}[2015/07/11 v2.23 (NLCT)]
+\ProvidesPackage{person}[2016/01/12 v2.24 (NLCT)]
\RequirePackage{ifthen}
\RequirePackage{datatool}
\newcounter{people}