summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-07-21 21:17:50 +0000
committerKarl Berry <karl@freefriends.org>2016-07-21 21:17:50 +0000
commite8a6c5f6d758797dbff323e9d5e9012da75628d3 (patch)
treed014e2618393764a66d7d7548c687b11f131a86d
parent21e06c4cf543502d43e374b7ba6868a9e3b82406 (diff)
datatool (21jul16)
git-svn-id: svn://tug.org/texlive/trunk@41744 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/datatool/CHANGES16
-rw-r--r--Master/texmf-dist/doc/latex/datatool/README4
-rw-r--r--Master/texmf-dist/doc/latex/datatool/datatool-code.pdfbin1166199 -> 1170895 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/datatool-user.pdfbin614504 -> 613586 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/datatool-user.tex57
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-autokeys.pdfbin24911 -> 24923 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-barchart.pdfbin35056 -> 35068 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-datatooltk.pdfbin22848 -> 22860 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-dict.pdfbin122578 -> 122588 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-europecv-bib.pdfbin89544 -> 89557 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-gidx.pdfbin180112 -> 179545 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-glossary.pdfbin104765 -> 104200 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-index.pdfbin128764 -> 128779 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-mail-merge.pdfbin21635 -> 21618 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-piechart.pdfbin33954 -> 33957 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-sort.pdfbin89713 -> 89724 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdfbin34602 -> 34614 bytes
-rw-r--r--Master/texmf-dist/doc/latex/datatool/samples/sample-two-per-row.pdfbin31739 -> 31751 bytes
-rw-r--r--Master/texmf-dist/source/latex/datatool/datatool.dtx521
-rw-r--r--Master/texmf-dist/source/latex/datatool/datatool.ins2
-rw-r--r--Master/texmf-dist/tex/latex/datatool/databar.sty19
-rw-r--r--Master/texmf-dist/tex/latex/datatool/databib.sty2
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datagidx.sty2
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datapie.sty251
-rw-r--r--Master/texmf-dist/tex/latex/datatool/dataplot.sty2
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool-base.sty52
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool-fp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty75
-rw-r--r--Master/texmf-dist/tex/latex/datatool/datatool.sty2
-rw-r--r--Master/texmf-dist/tex/latex/datatool/person.sty2
30 files changed, 715 insertions, 294 deletions
diff --git a/Master/texmf-dist/doc/latex/datatool/CHANGES b/Master/texmf-dist/doc/latex/datatool/CHANGES
index 62d514e10de..04a54a35c0e 100644
--- a/Master/texmf-dist/doc/latex/datatool/CHANGES
+++ b/Master/texmf-dist/doc/latex/datatool/CHANGES
@@ -1,3 +1,19 @@
+v2.26:
+
+ * datatool-base:
+
+ - fixed bug in \dtl@insertinto
+
+ * datatool-pgfmath:
+
+ - fixed bug in \dtlround and \dtltrunc
+
+ * datapie:
+
+ - fixed bug in \DTLpiechart caused by truncation error
+
+ - \FP... code replaced by \dtl... code
+
v2.25:
* datatool-base:
diff --git a/Master/texmf-dist/doc/latex/datatool/README b/Master/texmf-dist/doc/latex/datatool/README
index cf0a98f620c..6bacaf67ec8 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.25
+LaTeX Bundle : datatool v2.26
-Last Modified : 2016-01-18
+Last Modified : 2016-07-20
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 c963f7d3914..23dcc06d45e 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 0f107ea3220..333429d92cd 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 a1bc741c631..140fe1f1282 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}
+\DeleteShortVerb{\|}
+
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}
@@ -46,6 +48,8 @@
\dbs\index{\string\\\actualchar\dbs\encapchar usage}%
}
+\setlength\marginparwidth{70pt}
+
%bibliography database
\DTLnewdb{docbib}
@@ -97,13 +101,12 @@
\setlength{\parindent}{1em}%
\MakeShortVerb{"}
-\DeleteShortVerb{\|}
- \title{User Manual for datatool bundle version~2.25}
+ \title{User Manual for datatool bundle version~2.26}
\author{Nicola L.C. Talbot\\
\url{http://www.dickimaw-books.com/}}
- \date{2016-01-18}
+ \date{2016-07-20}
\maketitle
\pagenumbering{roman}
@@ -118,7 +121,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.25}
+ read \qt{Documented Code for datatool v2.26}
\item[INSTALL] Installation instructions.
@@ -2193,7 +2196,8 @@ Second paragraph.}
\end{verbatim}
\begin{definition}[\DescribeMacro{\DTLaddentryforrow}]%
-\cs{DTLaddentryforrow}\marg{db}\marg{assign list}\marg{condition}\marg{key}\marg{value}
+\cs{DTLaddentryforrow}\marg{db}\marg{assign list}%
+\marg{condition}\marg{key}\allowbreak\marg{value}
\end{definition}
This adds the entry with the key given by \meta{key} and value
given by \meta{value} to the first row in the database
@@ -2682,10 +2686,22 @@ provides an example.
\end{important}
In addition to the \cs{dtl}\meta{type}"align" commands above, you
-can also modify the \env{tabular} column styles by redefining
-\DescribeMacro{\dtlbeforecols}\cs{dtlbeforecols},
-\DescribeMacro{\dtlbetweencols}\cs{dtlbetweencols} and
-\DescribeMacro{\dtlaftercols}\cs{dtlaftercols}. For example, to
+can also modify the \env{tabular} column styles by redefining the
+following three commands:
+\begin{definition}[\DescribeMacro{\dtlbeforecols}]
+\cs{dtlbeforecols}
+\end{definition}
+(before the first column)
+\begin{definition}[\DescribeMacro{\dtlbetweencols}]
+\cs{dtlbetweencols}
+\end{definition}
+(between each column) and
+\begin{definition}[\DescribeMacro{\dtlaftercols}]
+\cs{dtlaftercols}
+\end{definition}
+(after the last column).
+
+For example, to
place a vertical line before the start of the first column and
after the last column, do:
\begin{verbatim}
@@ -4039,6 +4055,8 @@ produces:\par\vskip\baselineskip\noindent
\\\firstname & \surname & \emailI & \DTLifnull{\emailII}{}{\emailII} & \DTLifnull{\regnum}{}{\regnum}}\relax
\end{tabular}
+\medskip
+
Now the missing entries are simply blank instead of containing
\emph{Missing}. This is because they're empty not null. In this
case, you may prefer to use \cs{DTLifnullorempty} instead of
@@ -4177,11 +4195,17 @@ a table:
\bfseries Assign 2 &
\bfseries Assign 3 &
\bfseries Average Mark%
-\DTLforeach{marks}{\surname=Surname,\firstname=FirstName,\average
-=Average,\assignI=Assignment 1,\assignII=Assignment 2,\assignIII
-=Assignment 3}{\\\surname
-& \firstname & \assignI & \assignII & \assignIII &
-\DTLround{\average}{\average}{2}\DTLclip{\average}\average}\relax
+\DTLforeach{marks}%
+{% assign variable
+ \surname=Surname,\firstname=FirstName,%
+ \average=Average,\assignI=Assignment 1,%
+ \assignII=Assignment 2,\assignIII=Assignment 3}%
+{% start new row
+ \\\surname & \firstname & \assignI & \assignII & \assignIII &
+ \DTLround{\average}{\average}{2}% round to 2 dp
+ \DTLclip{\average}{average}%clip unnecessary 0s
+ \average
+}\relax
\end{tabular}
\end{table}
\end{verbatim}
@@ -4208,7 +4232,7 @@ marks}\label{tab:meanmarks}
=Average,\assignI=Assignment 1,\assignII=Assignment 2,\assignIII
=Assignment 3}{\\\surname
& \firstname & \assignI & \assignII & \assignIII &
-\DTLround{\average}{\average}{2}\DTLclip{\average}\average}\relax
+\DTLround{\average}{\average}{2}\DTLclip{\average}{\average}\average}\relax
\end{tabular}
\end{table}
@@ -11059,6 +11083,9 @@ efficient way of storing the information in databases which
has significantly improved the time it takes to \LaTeX\ documents
containing large databases.
+\clearpage
+\phantomsection
+\addcontentsline{toc}{chapter}{\indexname}
\PrintIndex
\end{document}
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 c70a2191333..d9f777bafbd 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 6f63f265704..85179d1124e 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 8136c89a988..adff6e25539 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 4733aadcc99..538a773ff66 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 d9dcf7af68d..87b21abc0f0 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 41ced44b248..0e6b95463da 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 1363763115f..06296653448 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 e6904d7064c..2d5038a0451 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 6a62cb9d4e1..7a68eae9c54 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 c7745fbda38..50ffa2b949b 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 f3ddb731633..6fbc9418403 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-student-scores.pdf b/Master/texmf-dist/doc/latex/datatool/samples/sample-student-scores.pdf
index 9388c14b910..773f0373444 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 5a88b830118..2490cf7f781 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 9998682babb..54027354f9f 100644
--- a/Master/texmf-dist/source/latex/datatool/datatool.dtx
+++ b/Master/texmf-dist/source/latex/datatool/datatool.dtx
@@ -3,7 +3,10 @@
% Command line args:
% -macrocode "databib\.bst"
% -codetitle ""
+% -comment "databib\.bst"
% -author "Nicola Talbot"
+% -setambles "databib\.bst=>\nopreamble\nopostamble"
+% -doc "datatool-manual.tex"
% -src "datatool-base.sty\Z=>datatool-base.sty"
% -src "datatool-fp.sty\Z=>datatool-fp.sty"
% -src "datatool-pgfmath.sty\Z=>datatool-pgfmath.sty"
@@ -15,11 +18,8 @@
% -src "dataplot.sty\Z=>dataplot.sty"
% -src "person.sty\Z=>person.sty"
% -src "databib.bst\Z=>databib.bst"
-% -comment "databib\.bst"
-% -setambles "databib\.bst=>\nopreamble\nopostamble"
-% -doc "datatool-manual.tex"
% datatool
-% Created on 2016/1/18 9:48
+% Created on 2016/7/20 19:31
%\fi
%\iffalse
%<*package>
@@ -66,7 +66,7 @@ datatool.dtx
\doxitem{Counter}{counter}{counters}
\doxitem{Option}{option}{package options}
-\CheckSum{23461}
+\CheckSum{23620}
\RecordChanges
\PageIndex
@@ -79,11 +79,11 @@ datatool.dtx
%\fi
%\MakeShortVerb{"}
%
-%\title{Documented Code for datatool v2.25}
+%\title{Documented Code for datatool v2.26}
%\author{Nicola L. C. Talbot\\
%\url{http://www.dickimaw-books.com/}}
%
-%\date{2016-01-18}
+%\date{2016-07-20}
%\maketitle
%
%\pagenumbering{roman}
@@ -98,6 +98,8 @@ datatool.dtx
%\pagenumbering{arabic}
%
%\StopEventually{%
+% \clearpage\phantomsection
+% \addcontentsline{toc}{chapter}{Index}%
% \PrintIndex
% \clearpage\phantomsection
% \addcontentsline{toc}{chapter}{History}\PrintChanges
@@ -117,7 +119,7 @@ datatool.dtx
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-base}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool-base}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -563,19 +565,39 @@ datatool.dtx
\def\@dtl@newsortedlist{}%
\@dtl@insertdonefalse
\@for\dtl@srtelement:=#2\do{%
- \if@dtl@insertdone
+ \expandafter\DTLifSubString\expandafter{\dtl@srtelement}{,}
+ {%
\expandafter\toks@\expandafter{\dtl@srtelement}%
- \edef\@dtl@newstuff{{\the\toks@}}%
+ \edef\dtl@srtelement{{\the\toks@}}%
+ }%
+ {%
+ }
+ \if@dtl@insertdone
+ \let\@dtl@newstuff\dtl@srtelement
\else
- \expandafter#3\expandafter{\dtl@srtelement}{#1}%
- \ifnum\dtl@sortresult<0\relax
+% \end{macrocode}
+%\changes{2.26}{2016-07-20}{fixed bug (missing \cs{dtl@sortresult})}
+% \begin{macrocode}
+ \expandafter#3\expandafter\dtl@sortresult\expandafter
+ {\dtl@srtelement}{#1}%
+% \end{macrocode}
+%\changes{2.26}{2016-07-20}{fixed bug (incorrect inequality sign)}
+% \begin{macrocode}
+ \ifnum\dtl@sortresult>0\relax
+ \DTLifSubString{#1}{,}%
+ {%
+ \@dtl@toks{{#1}}%
+ }%
+ {%
+ \@dtl@toks{#1}%
+ }%
\expandafter\toks@\expandafter{\dtl@srtelement}%
- \@dtl@toks{#1}%
- \edef\@dtl@newstuff{{\the\@dtl@toks},{\the\toks@}}%
+ \edef\@dtl@newstuff{\the\@dtl@toks,\the\toks@}%
\@dtl@insertdonetrue
\else
\expandafter\toks@\expandafter{\dtl@srtelement}%
\edef\@dtl@newstuff{{\the\toks@}}%
+ \let\@dtl@newstuff\dtl@srtelement
\fi
\fi
\ifdefempty{\@dtl@newsortedlist}%
@@ -592,15 +614,27 @@ datatool.dtx
}%
\ifdefempty{\@dtl@newsortedlist}%
{%
- \@dtl@toks{#1}%
- \edef\@dtl@newsortedlist{{\the\@dtl@toks}}%
+ \DTLifSubString{#1}{,}%
+ {%
+ \@dtl@toks{{#1}}%
+ }%
+ {%
+ \@dtl@toks{#1}%
+ }%
+ \edef\@dtl@newsortedlist{\the\@dtl@toks}%
}%
{%
\if@dtl@insertdone
\else
+ \DTLifSubString{#1}{,}%
+ {%
+ \@dtl@toks{{#1}}%
+ }%
+ {%
+ \@dtl@toks{#1}%
+ }%
\expandafter\toks@\expandafter{\@dtl@newsortedlist}%
- \@dtl@toks{#1}%
- \edef\@dtl@newsortedlist{\the\toks@,{\the\@dtl@toks}}%
+ \edef\@dtl@newsortedlist{\the\toks@,\the\@dtl@toks}%
\fi
}%
\global\let#2=\@dtl@newsortedlist
@@ -725,8 +759,8 @@ datatool.dtx
\noexpand\def\noexpand\@dtl@fracpart{0}%
}%
{%
- \noexpand\@dtl@getfracpart##2\noexpand\relax
- \noexpand\@dtl@choptrailingzeroes{\noexpand\@dtl@fracpart}%
+ \noexpand\@dtl@getfracpart##2\noexpand\relax
+ \noexpand\@dtl@choptrailingzeroes{\noexpand\@dtl@fracpart}%
}%
}%
\noexpand\def\noexpand\@dtl@getfracpart##1#1\noexpand\relax{%
@@ -5761,7 +5795,7 @@ datatool.dtx
% Definitions of fixed-point commands that use the \sty{fp} package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-fp}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool-fp}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -6050,7 +6084,7 @@ datatool.dtx
% Definitions of fixed-point commands that use the \sty{pgfmath} package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-pgfmath}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool-pgfmath}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -6075,13 +6109,17 @@ datatool.dtx
%\end{definition}
% Does \meta{true part} if \meta{num1}=\meta{num2}, otherwise does
% \meta{false part}. The numbers must use a full stop as the decimal
-% character and no number group separator.
+% character and no number group separator. The \verb|\number0| part
+% allows an empty argument to be treated as zero. (\cs{number}
+% required to prevent a zero prefix indicating an octal number.)
%\changes{2.12}{2012/10/06}{fixed bug causing premature expansion}
+%\changes{2.26}{2016-07-20}{added \cs{number}}
% \begin{macrocode}
\newcommand*{\dtlifnumeq}[4]{%
\def\@dtl@truepart{#3}%
\def\@dtl@falsepart{#4}%
- \pgfmathifthenelse{0#1==0#2}{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
+ \pgfmathifthenelse{\number0#1==\number0#2}%
+ {"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
% \end{macrocode}
@@ -6102,11 +6140,13 @@ datatool.dtx
% \meta{false part}. The numbers must use a full stop as the decimal
% character and no number group separator.
%\changes{2.12}{2012/10/06}{fixed bug causing premature expansion}
+%\changes{2.26}{2016-07-20}{added \cs{number}}
% \begin{macrocode}
\newcommand*{\dtlifnumlt}[4]{%
\def\@dtl@truepart{#3}%
\def\@dtl@falsepart{#4}%
- \pgfmathifthenelse{0#1 < 0#2}{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
+ \pgfmathifthenelse{\number0#1 < \number0#2}%
+ {"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
% \end{macrocode}
@@ -6121,11 +6161,13 @@ datatool.dtx
% \meta{false part}. The numbers must use a full stop as the decimal
% character and no number group separator.
%\changes{2.12}{2012/10/06}{fixed bug causing premature expansion}
+%\changes{2.26}{2016-07-20}{added \cs{number}}
% \begin{macrocode}
\newcommand*{\dtlifnumgt}[4]{%
\def\@dtl@truepart{#3}%
\def\@dtl@falsepart{#4}%
- \pgfmathifthenelse{0#1 > 0#2}{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
+ \pgfmathifthenelse{\number0#1 > \number0#2}%
+ {"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
% \end{macrocode}
@@ -6138,11 +6180,13 @@ datatool.dtx
% Determines if \meta{min} $<$ \meta{num} $<$ \meta{max} where
% all numerical arguments are in standard fixed point notation.
%\changes{2.12}{2012/10/06}{fixed bug causing premature expansion}
+%\changes{2.26}{2016-07-20}{added \cs{number}}
% \begin{macrocode}
\newcommand*{\dtlifnumopenbetween}[5]{%
\def\@dtl@truepart{#4}%
\def\@dtl@falsepart{#5}%
- \pgfmathifthenelse{(0#2 < 0#1) && (0#1 < 0#3)}
+ \pgfmathifthenelse
+ {(\number0#2 < \number0#1) && (\number0#1 < \number0#3)}%
{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
@@ -6156,11 +6200,13 @@ datatool.dtx
% Determines if \meta{min} $\leq$ \meta{num} $\leq$ \meta{max} where
% all numerical arguments are in standard fixed point notation.
%\changes{2.12}{2012/10/06}{fixed bug causing premature expansion}
+%\changes{2.26}{2016-07-20}{added \cs{number}}
% \begin{macrocode}
\newcommand*{\dtlifnumclosedbetween}[5]{%
\def\@dtl@truepart{#4}%
\def\@dtl@falsepart{#5}%
- \pgfmathifthenelse{(0#2 <= #1) && (0#1 <= 0#3)}
+ \pgfmathifthenelse
+ {(\number0#2 <= \number0#1) && (\number0#1 <= \number0#3)}
{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
@@ -6220,12 +6266,56 @@ datatool.dtx
%
%\begin{macro}{\dtlround}
% Rounds using PGF math engine.
+%\changes{2.26}{2016-07-20}{fixed bug cause by rounding}
% \begin{macrocode}
\newcommand*{\dtlround}[3]{%
- \pgfmathparse{10^#3}%
- \let\dtl@tmpshift\pgfmathresult
- \pgfmathparse{round(#2 * \dtl@tmpshift) / \dtl@tmpshift}%
- \let#1\pgfmathresult
+ \ifnum#3=0\relax
+ \pgfmathparse{int(round(#2))}%
+ \let#1\pgfmathresult
+ \else
+ \pgfmathparse{int(10^#3)}%
+ \let\dtl@tmpshift\pgfmathresult
+% \end{macrocode}
+%Need to be careful not to trigger the dimension too large error,
+%so this is a bit convoluted.
+% \begin{macrocode}
+ \pgfmathparse{int(floor(#2))}%
+ \let\dtl@int@round\pgfmathresult
+ \pgfmathparse{int(round((#2-\dtl@int@round) * \dtl@tmpshift))}%
+% \end{macrocode}
+%\changes{2.26}{2016-07-20}{fixed bug caused by rounding errors}
+% This bit is awkward because simply dividing by multiples
+% of 10 in pgfmath can cause rounding errors, so need to
+% employ another method.
+% \begin{macrocode}
+ \@dtl@tmpcount=0\relax
+ \expandafter\@dtl@countdigits\pgfmathresult.\relax
+ \advance\@dtl@tmpcount by -#3\relax
+ \def\@dtl@intpart{}%
+ \def\@dtl@fracpart{}%
+ \expandafter\@dtl@gatherintfrac\pgfmathresult\relax
+ \edef\@dtl@intpart{\number\numexpr\dtl@int@round
+ +\number0\@dtl@intpart}%
+ \edef#1{\@dtl@intpart.\@dtl@fracpart}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@dtl@gatherintfrac}
+%\changes{2.26}{2016-07-20}{new}
+% \begin{macrocode}
+\newcommand*{\@dtl@gatherintfrac}[1]{%
+ \ifx\relax#1\relax
+ \else
+ \advance\@dtl@tmpcount by -1\relax
+ \ifnum\@dtl@tmpcount<0\relax
+ \edef\@dtl@fracpart{\@dtl@fracpart#1}%
+ \else
+ \edef\@dtl@intpart{\@dtl@intpart#1}%
+ \fi
+ \expandafter\@dtl@gatherintfrac
+ \fi
}
% \end{macrocode}
%\end{macro}
@@ -6233,12 +6323,40 @@ datatool.dtx
%\begin{macro}{\dtltrunc}
% Truncates using PGF math engine.
% (Third argument is the number of digits.)
+%\changes{2.26}{2016-07-20}{new}
+%This suffers from the same problems as \cs{dtlround}. Can
+% cause dimension too large error or rounding errors.
% \begin{macrocode}
\newcommand*{\dtltrunc}[3]{%
- \pgfmathparse{10^#3}%
- \let\dtl@tmpshift\pgfmathresult
- \pgfmathparse{floor(#2 * \dtl@tmpshift) / \dtl@tmpshift}%
- \let#1\pgfmathresult
+ \ifnum#3=0\relax
+ \pgfmathparse{int(floor(#2))}%
+ \let#1\pgfmathresult
+ \else
+ \pgfmathparse{int(10^#3)}%
+ \let\dtl@tmpshift\pgfmathresult
+% \end{macrocode}
+%Need to be careful not to trigger the dimension too large error,
+%so this is a bit convoluted.
+% \begin{macrocode}
+ \pgfmathparse{int(floor(#2))}%
+ \let\dtl@int@trunc\pgfmathresult
+ \pgfmathparse{int(floor((#2-\dtl@int@trunc) * \dtl@tmpshift))}%
+% \end{macrocode}
+%\changes{2.26}{2016-07-20}{fixed bug caused by rounding errors}
+% This bit is awkward because simply dividing by multiples
+% of 10 in pgfmath can cause rounding errors, so need to
+% employ another method.
+% \begin{macrocode}
+ \@dtl@tmpcount=0\relax
+ \expandafter\@dtl@countdigits\pgfmathresult.\relax
+ \advance\@dtl@tmpcount by -#3\relax
+ \def\@dtl@intpart{}%
+ \def\@dtl@fracpart{}%
+ \expandafter\@dtl@gatherintfrac\pgfmathresult\relax
+ \edef\@dtl@intpart{\number\numexpr\dtl@int@trunc
+ +\number0\@dtl@intpart}%
+ \edef#1{\@dtl@intpart.\@dtl@fracpart}%
+ \fi
}
% \end{macrocode}
%\end{macro}
@@ -6307,7 +6425,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -6318,7 +6436,7 @@ datatool.dtx
\RequirePackage{etoolbox}
% \end{macrocode}
%\changes{2.0}{2009 February 27}{added etex as a required package}
-%\changes{??}{??}{removed etex as a required package}
+%\changes{2.23}{2015-07-11}{removed etex as a required package}
%
%\section{Package Options}
%\begin{macro}{\@dtl@separator}
@@ -13900,7 +14018,7 @@ datatool.dtx
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datagidx}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datagidx}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -19809,7 +19927,7 @@ datatool.dtx
%\section{Package Declaration}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databib}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{databib}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Load required packages:
% \begin{macrocode}
@@ -22732,7 +22850,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databar}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{databar}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Require \sty{xkeyval} package
% \begin{macrocode}
@@ -23282,23 +23400,23 @@ already exists}{}}}}
\fi
}%
\else
-% \@for\dtl@thislabel:=\dtlbar@yticlabels\do{%
-% \ifDTLverticalbars
-% \settowidth{\dtl@tmplength}{%
-% \DTLbardisplayYticklabel{\dtl@thislabel}}%
-% \else
-% \settoheight{\dtl@tmplength}{%
-% \DTLbardisplayYticklabel{\dtl@thislabel}}%
-% \edef\@dtl@h{\the\dtl@tmplength}%
-% \settodepth{\dtl@tmplength}{%
-% \DTLbardisplayYticklabel{\dtl@thislabel}}%
-% \addtolength{\dtl@tmplength}{\@dtl@h}%
-% \addtolength{\dtl@tmplength}{\baselineskip}%
-% \fi
-% \ifdim\dtl@tmplength>\dtl@yticlabelwidth
-% \setlength{\dtl@yticlabelwidth}{\dtl@tmplength}%
-% \fi
-% }%
+ \@for\dtl@thislabel:=\dtlbar@yticlabels\do{%
+ \ifDTLverticalbars
+ \settowidth{\dtl@tmplength}{%
+ \DTLbardisplayYticklabel{\dtl@thislabel}}%
+ \else
+ \settoheight{\dtl@tmplength}{%
+ \DTLbardisplayYticklabel{\dtl@thislabel}}%
+ \edef\@dtl@h{\the\dtl@tmplength}%
+ \settodepth{\dtl@tmplength}{%
+ \DTLbardisplayYticklabel{\dtl@thislabel}}%
+ \addtolength{\dtl@tmplength}{\@dtl@h}%
+ \addtolength{\dtl@tmplength}{\baselineskip}%
+ \fi
+ \ifdim\dtl@tmplength>\dtl@yticlabelwidth
+ \setlength{\dtl@yticlabelwidth}{\dtl@tmplength}%
+ \fi
+ }%
\fi
\fi
\fi
@@ -24039,7 +24157,7 @@ already exists}{}}}}
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datapie}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datapie}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Require \sty{xkeyval} package
% \begin{macrocode}
@@ -24401,6 +24519,7 @@ already exists}{}}}}
% include \texttt{variable}\texttt{=}\meta{cmd}, where \meta{cmd}
% is included in \meta{assign list}. The optional argument
% \meta{conditions} is the same as that for \cs{DTLforeach}.
+%\changes{2.26}{2016-07-20}{replaced fp commands}
% \begin{macrocode}
\newcommand*{\DTLpiechart}[4][\boolean{true}]{%
\bgroup
@@ -24420,7 +24539,7 @@ already exists}{}}}}
\let\dtl@oldtotal=\dtl@total
\expandafter\DTLconverttodecimal\expandafter
{\DTLpievariable}{\dtl@variable}%
- \FPadd{\dtl@total}{\dtl@variable}{\dtl@total}%
+ \dtladd{\dtl@total}{\dtl@variable}{\dtl@total}%
}%
% \end{macrocode}
% Compute the angles
@@ -24430,17 +24549,17 @@ already exists}{}}}}
\@sDTLforeach[#1]{#3}{#4}{%
\expandafter\DTLconverttodecimal\expandafter
{\DTLpievariable}{\dtl@variable}%
- \dtl@computeangles{%
- \csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname}{%
- \dtl@variable}%
+ \dtl@computeangles
+ {\csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname}%
+ {\dtl@variable}%
\expandafter\@dtl@seg\expandafter=
- \csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname%
- \FPmul{\dtl@tmp}{\dtl@variable}{100}%
+ \csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname%
+ \dtlmul{\dtl@tmp}{\dtl@variable}{100}%
\let\dtl@old=\dtl@tmp
- \FPdiv{\dtl@tmp}{\dtl@old}{\dtl@total}%
- \expandafter\FPround
- \csname dtl@piepercent@\romannumeral\@dtl@seg\endcsname\dtl@tmp
- \c@DTLpieroundvar
+ \dtldiv{\dtl@tmp}{\dtl@old}{\dtl@total}%
+ \expandafter\dtlround
+ \csname dtl@piepercent@\romannumeral\@dtl@seg\endcsname\dtl@tmp
+ \c@DTLpieroundvar
}%
% \end{macrocode}
% Compute the offsets for each cut away segment
@@ -24477,7 +24596,7 @@ already exists}{}}}}
% \end{macrocode}
% Compute the end angle
% \begin{macrocode}
- \FPadd{\dtl@endangle}{\dtl@start}{\dtl@extent}%
+ \dtladd{\dtl@endangle}{\dtl@start}{\dtl@extent}%
% \end{macrocode}
% Compute the shift.
% \begin{macrocode}
@@ -24486,7 +24605,7 @@ already exists}{}}}}
\let\dtl@old=\dtl@angle
\dtl@truncatedecimal\dtl@angle
\ifnum\dtl@angle>180\relax
- \FPsub{\dtl@angle}{\dtl@old}{360}%
+ \dtlsub{\dtl@angle}{\dtl@old}{360}%
\dtl@truncatedecimal\dtl@angle
\fi
\edef\dtl@cutlen{%
@@ -24496,14 +24615,16 @@ already exists}{}}}}
% \end{macrocode}
% Compute the mid way angle.
% \begin{macrocode}
- \FPmul{\dtl@angle}{\dtl@extent}{0.5}%
- \FPadd{\dtl@midangle}{\dtl@angle}{\dtl@start}%
+ \dtlmul{\dtl@angle}{\dtl@extent}{0.5}%
+ \dtladd{\dtl@midangle}{\dtl@angle}{\dtl@start}%
% \end{macrocode}
% Draw the segment.
% \begin{macrocode}
\begin{scope}[shift={\@dtl@shift}]%
- \dtl@truncatedecimal\dtl@start
- \dtl@truncatedecimal\dtl@endangle
+% \end{macrocode}
+%\changes{2.26}{2016-07-20}{removed truncation (caused minor gap between
+%first and last segments)}
+% \begin{macrocode}
\fill[color=\DTLgetpiesegmentcolor\@dtl@seg] (0,0) --
(\dtl@start:\DTLradius)
arc (\dtl@start:\dtl@endangle:\DTLradius) -- cycle;
@@ -24527,11 +24648,20 @@ already exists}{}}}}
% \end{macrocode}
% If the mid way angle is between 90 and 270, the text will look
% upside-down, so adjust accordingly.
+%\changes{2.26}{2016-07-20}{replaced \cs{ifthen}}
% \begin{macrocode}
- \ifthenelse{\(\dtl@midangle > 90 \and \dtl@midangle < 270\)
- \TE@or \dtl@midangle < -90}%
+ \dtlifnumopenbetween{\dtl@midangle}{90}{270}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumlt{\dtl@midangle}{-90}%
+ {\let\@dtl@next\@firstoftwo}%
+ {\let\@dtl@next\@secondoftwo}%
+ }%
+ \@dtl@next
{%
- \FPsub{\dtl@labelangle}{\dtl@midangle}{180}%
+ \dtlsub{\dtl@labelangle}{\dtl@midangle}{180}%
\dtl@truncatedecimal\dtl@labelangle
\edef\dtl@innernodeopt{anchor=east,rotate=\dtl@labelangle}%
}%
@@ -24552,10 +24682,18 @@ already exists}{}}}}
% If the mid way angle is between 90 and 270, the text will look
% upside-down, so adjust accordingly.
% \begin{macrocode}
- \ifthenelse{\(\dtl@midangle > 90 \and \dtl@midangle < 270\)
- \TE@or \dtl@midangle < -90}%
+ \dtlifnumopenbetween{\dtl@midangle}{90}{270}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumlt{\dtl@midangle}{-90}%
+ {\let\@dtl@next\@firstoftwo}%
+ {\let\@dtl@next\@secondoftwo}%
+ }%
+ \@dtl@next
{%
- \FPsub{\dtl@labelangle}{\dtl@midangle}{180}%
+ \dtlsub{\dtl@labelangle}{\dtl@midangle}{180}%
\dtl@truncatedecimal\dtl@labelangle
\edef\dtl@outernodeopt{anchor=east,rotate=\dtl@labelangle}%
}%
@@ -24566,9 +24704,29 @@ already exists}{}}}}
% Don't rotate outer labels
% \begin{macrocode}
\else
- \ifthenelse{\(\dtl@midangle<45\and\dtl@midangle>-45\)
- \TE@or \dtl@midangle=45
- \TE@or \dtl@midangle>315}%
+% \end{macrocode}
+% If ($\theta>-45$ and $\theta < 45$) or $\theta=45$ or $\theta>315$
+% \begin{macrocode}
+ \dtlifnumeq{\dtl@midangle}{45}
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumgt{\dtl@midangle}{315}
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumopenbetween{\dtl@midangle}{-45}{45}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \let\@dtl@next\@secondoftwo
+ }%
+ }%
+ }%
+ \@dtl@next
{%
% \end{macrocode}
% East quadrant
@@ -24576,8 +24734,20 @@ already exists}{}}}}
\edef\dtl@outernodeopt{anchor=west}%
}%
{%
- \ifthenelse{\(\dtl@midangle<135\and\dtl@midangle>45\)
- \TE@or \dtl@midangle=135}%
+ \dtlifnumopenbetween{\dtl@midangle}{45}{135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumeq{\dtl@midangle}{135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \let\@dtl@next\@secondoftwo
+ }%
+ }%
+ \@dtl@next
{%
% \end{macrocode}
% North quadrant
@@ -24585,10 +24755,36 @@ already exists}{}}}}
\edef\dtl@outernodeopt{anchor=south}%
}%
{%
- \ifthenelse{\(\dtl@midangle<225\and\dtl@midangle>135\)
- \TE@or \dtl@midangle=225
- \TE@or \dtl@midangle=-135
- \TE@or \dtl@midangle<-135}%
+% \end{macrocode}
+%If ($\theta>135$ and $\theta<225$) or $\theta=225$ or $\theta=-135$
+%or $\theta<-135$
+% \begin{macrocode}
+ \dtlifnumopenbetween{\dtl@midangle}{135}{225}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumeq{\dtl@midangle}{225}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumeq{\dtl@midangle}{-135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumlt{\dtl@midangle}{-135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \let\@dtl@next\@secondoftwo
+ }%
+ }%
+ }%
+ }%
+ \@dtl@next
{%
% \end{macrocode}
% West quadrant
@@ -24635,30 +24831,43 @@ already exists}{}}}}
% \cs{dtl@angle@}\meta{n} (extent angle),
% \cs{dtl@cut@angle@}\meta{n} (cut away angle) and
% \cs{dtl@cut@len@}\meta{n} (cut away length).
+%\changes{2.26}{2016-07-20}{replaced fp commands}
% \begin{macrocode}
\newcommand*{\dtl@computeangles}[2]{%
-\FPifgt{\@dtl@start}{180}%
-% if startangle > 180
- \let\dtl@old=\@dtl@start
-% startangle = startangle - 360
- \FPsub{\@dtl@start}{\dtl@old}{360}%
-\fi
-\FPiflt{\@dtl@start}{-180}%
-% if startangle < -180
+ \dtlifnumgt{\@dtl@start}{180}%
+ {%
+% \end{macrocode}
+% if $\mathrm{startangle} > 180$
+% \begin{macrocode}
+ \let\dtl@old=\@dtl@start
+% \end{macrocode}
+% $\mathrm{startangle} := \mathrm{startangle} - 360$
+% \begin{macrocode}
+ \dtlsub{\@dtl@start}{\dtl@old}{360}%
+ }%
+ {}%
+ \dtlifnumlt{\@dtl@start}{-180}%
+ {%
+% \end{macrocode}
+% if $\mathrm{startangle} < -180$
+% \begin{macrocode}
+ \let\dtl@old=\@dtl@start
+% \end{macrocode}
+% $\mathrm{startangle} = \mathrm{startangle} + 360$
+% \begin{macrocode}
+ \dtladd{\@dtl@start}{\dtl@old}{360}%
+ }%
+ {}%
+ \expandafter\edef\csname dtl@sang@\romannumeral#1\endcsname{%
+ \@dtl@start}%
+ \dtlmul{\dtl@angle}{360}{#2}%
+ \let\dtl@old=\dtl@angle
+ \dtldiv{\dtl@angle}{\dtl@old}{\dtl@total}%
+ \expandafter\let\csname dtl@angle@\romannumeral#1\endcsname=\dtl@angle
\let\dtl@old=\@dtl@start
-% startangle = startangle + 360
- \FPadd{\@dtl@start}{\dtl@old}{360}%
-\fi
-\expandafter\edef\csname dtl@sang@\romannumeral#1\endcsname{%
-\@dtl@start}%
-\FPmul{\dtl@angle}{360}{#2}%
-\let\dtl@old=\dtl@angle
-\FPdiv{\dtl@angle}{\dtl@old}{\dtl@total}%
-\expandafter\let\csname dtl@angle@\romannumeral#1\endcsname=\dtl@angle
-\let\dtl@old=\@dtl@start
-\FPadd{\@dtl@start}{\dtl@old}{\dtl@angle}%
-\expandafter\def\csname dtl@cut@angle@\romannumeral#1\endcsname{0}%
-\expandafter\def\csname dtl@cut@len@\romannumeral#1\endcsname{0cm}%
+ \dtladd{\@dtl@start}{\dtl@old}{\dtl@angle}%
+ \expandafter\def\csname dtl@cut@angle@\romannumeral#1\endcsname{0}%
+ \expandafter\def\csname dtl@cut@len@\romannumeral#1\endcsname{0cm}%
}
% \end{macrocode}
%\end{macro}
@@ -24667,25 +24876,30 @@ already exists}{}}}}
%\begin{macro}{\@dtl@set@off}
% \begin{macrocode}
\def\@dtl@set@off#1-#2\relax{%
-\ifthenelse{\equal{#2}{}}{%
-\@@dtl@set@off{#1}}{%
-\@@dtl@set@offr#1-#2\relax}%
+ \ifstrempty{#2}%
+ {%
+ \@@dtl@set@off{#1}%
+ }%
+ {%
+ \@@dtl@set@offr#1-#2\relax
+ }%
}
% \end{macrocode}
%\end{macro}
% Set offset for individual segment:
%\begin{macro}{\@@dtl@set@off}
+%\changes{2.26}{2016-07-20}{replaced fp commands}
% \begin{macrocode}
\newcommand*{\@@dtl@set@off}[1]{%
-\edef\dtl@old{\csname dtl@angle@\romannumeral#1\endcsname}%
-\FPmul{\dtl@angle}{\dtl@old}{0.5}%
-\let\dtl@old=\dtl@angle
-\edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
-\FPadd{\dtl@angle}{\dtl@old}{\dtl@sang}%
-\expandafter\edef\csname dtl@cut@angle@\romannumeral#1\endcsname{%
-\dtl@angle}%
-\expandafter\edef\csname dtl@cut@len@\romannumeral#1\endcsname{%
- \the\dtl@cutawayoffset}
+ \edef\dtl@old{\csname dtl@angle@\romannumeral#1\endcsname}%
+ \dtlmul{\dtl@angle}{\dtl@old}{0.5}%
+ \let\dtl@old=\dtl@angle
+ \edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
+ \dtladd{\dtl@angle}{\dtl@old}{\dtl@sang}%
+ \expandafter\edef\csname dtl@cut@angle@\romannumeral#1\endcsname{%
+ \dtl@angle}%
+ \expandafter\edef\csname dtl@cut@len@\romannumeral#1\endcsname{%
+ \the\dtl@cutawayoffset}%
}
% \end{macrocode}
%\end{macro}
@@ -24697,36 +24911,37 @@ already exists}{}}}}
%\end{macro}
%\begin{macro}{\@@dtl@setoffr}
% Set offset for a range of segments
+%\changes{2.26}{2016-07-20}{replaced fp commands}
% \begin{macrocode}
\def\@@dtl@set@offr#1-#2-\relax{%
-\ifnum#1>#2\relax
- \PackageError{datapie}{Segment ranges must go in ascending order}{%
-Try #2-#1 instead of #1-#2}%
-\else
- \def\dtl@angle{0}%
- \@dtl@seg=#1\relax
- \whiledo{\not\(\@dtl@seg > #2\)}{%
- \let\dtl@old=\dtl@angle
- \edef\dtl@segang{\csname dtl@angle@\romannumeral\@dtl@seg\endcsname}%
- \FPadd{\dtl@angle}{\dtl@old}{\dtl@segang}%
- \advance\@dtl@seg by 1\relax
- }%
- \let\dtl@old=\dtl@angle
- \FPmul{\dtl@angle}{\dtl@old}{0.5}%
- \edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
- \let\dtl@old=\dtl@angle
- \FPadd{\dtl@angle}{\dtl@old}{\dtl@sang}%
- \@dtl@seg=#1\relax
- \whiledo{\not\(\@dtl@seg > #2\)}{%
- \expandafter
- \let\csname dtl@cut@angle@\romannumeral\@dtl@seg\endcsname
- =\dtl@angle
- \expandafter
- \edef\csname dtl@cut@len@\romannumeral\@dtl@seg\endcsname{%
- \the\dtl@cutawayoffset}
- \advance\@dtl@seg by 1\relax
- }%
-\fi
+ \ifnum#1>#2\relax
+ \PackageError{datapie}{Segment ranges must go in ascending order}{%
+ Try #2-#1 instead of #1-#2}%
+ \else
+ \def\dtl@angle{0}%
+ \@dtl@seg=#1\relax
+ \whiledo{\not\(\@dtl@seg > #2\)}{%
+ \let\dtl@old=\dtl@angle
+ \edef\dtl@segang{\csname dtl@angle@\romannumeral\@dtl@seg\endcsname}%
+ \dtladd{\dtl@angle}{\dtl@old}{\dtl@segang}%
+ \advance\@dtl@seg by 1\relax
+ }%
+ \let\dtl@old=\dtl@angle
+ \dtlmul{\dtl@angle}{\dtl@old}{0.5}%
+ \edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
+ \let\dtl@old=\dtl@angle
+ \dtladd{\dtl@angle}{\dtl@old}{\dtl@sang}%
+ \@dtl@seg=#1\relax
+ \whiledo{\not\(\@dtl@seg > #2\)}{%
+ \expandafter
+ \let\csname dtl@cut@angle@\romannumeral\@dtl@seg\endcsname
+ =\dtl@angle
+ \expandafter
+ \edef\csname dtl@cut@len@\romannumeral\@dtl@seg\endcsname{%
+ \the\dtl@cutawayoffset}
+ \advance\@dtl@seg by 1\relax
+ }%
+ \fi
}
% \end{macrocode}
%\end{macro}
@@ -24744,7 +24959,7 @@ Try #2-#1 instead of #1-#2}%
% Declare package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{dataplot}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{dataplot}[2016/07/20 v2.26 (NLCT)]
% \end{macrocode}
% Required packages
% \begin{macrocode}
@@ -26366,7 +26581,7 @@ east,southeast,south,southwest,west,northwest}[northeast]{%
% Package identification:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{person}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{person}[2016/07/20 v2.26 (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 08b21f870ab..97634e61b8d 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 2016/1/18 9:48
+% datatool.ins generated using makedtx version 1.1 2016/7/20 19:31
\input docstrip
\preamble
diff --git a/Master/texmf-dist/tex/latex/datatool/databar.sty b/Master/texmf-dist/tex/latex/datatool/databar.sty
index 47e049691e3..d0ef470fe52 100644
--- a/Master/texmf-dist/tex/latex/datatool/databar.sty
+++ b/Master/texmf-dist/tex/latex/datatool/databar.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databar}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{databar}[2016/07/20 v2.26 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{dataplot}
\newif\ifDTLcolorbarchart
@@ -296,6 +296,23 @@
\fi
}%
\else
+ \@for\dtl@thislabel:=\dtlbar@yticlabels\do{%
+ \ifDTLverticalbars
+ \settowidth{\dtl@tmplength}{%
+ \DTLbardisplayYticklabel{\dtl@thislabel}}%
+ \else
+ \settoheight{\dtl@tmplength}{%
+ \DTLbardisplayYticklabel{\dtl@thislabel}}%
+ \edef\@dtl@h{\the\dtl@tmplength}%
+ \settodepth{\dtl@tmplength}{%
+ \DTLbardisplayYticklabel{\dtl@thislabel}}%
+ \addtolength{\dtl@tmplength}{\@dtl@h}%
+ \addtolength{\dtl@tmplength}{\baselineskip}%
+ \fi
+ \ifdim\dtl@tmplength>\dtl@yticlabelwidth
+ \setlength{\dtl@yticlabelwidth}{\dtl@tmplength}%
+ \fi
+ }%
\fi
\fi
\fi
diff --git a/Master/texmf-dist/tex/latex/datatool/databib.sty b/Master/texmf-dist/tex/latex/datatool/databib.sty
index a26e6e422af..925c7c0fa84 100644
--- a/Master/texmf-dist/tex/latex/datatool/databib.sty
+++ b/Master/texmf-dist/tex/latex/datatool/databib.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{databib}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{databib}[2016/07/20 v2.26 (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 0d06f3a966e..eb7ba8b128e 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}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datagidx}[2016/07/20 v2.26 (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 7b139a17504..169941de50c 100644
--- a/Master/texmf-dist/tex/latex/datatool/datapie.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datapie.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datapie}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datapie}[2016/07/20 v2.26 (NLCT)]
\RequirePackage{xkeyval}
\newif\ifDTLcolorpiechart
\DTLcolorpiecharttrue
@@ -165,24 +165,24 @@
\let\dtl@oldtotal=\dtl@total
\expandafter\DTLconverttodecimal\expandafter
{\DTLpievariable}{\dtl@variable}%
- \FPadd{\dtl@total}{\dtl@variable}{\dtl@total}%
+ \dtladd{\dtl@total}{\dtl@variable}{\dtl@total}%
}%
\expandafter\DTLconverttodecimal\expandafter
{\DTLstartangle}{\@dtl@start}%
\@sDTLforeach[#1]{#3}{#4}{%
\expandafter\DTLconverttodecimal\expandafter
{\DTLpievariable}{\dtl@variable}%
- \dtl@computeangles{%
- \csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname}{%
- \dtl@variable}%
+ \dtl@computeangles
+ {\csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname}%
+ {\dtl@variable}%
\expandafter\@dtl@seg\expandafter=
- \csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname%
- \FPmul{\dtl@tmp}{\dtl@variable}{100}%
+ \csname c@DTLrow\romannumeral\dtlforeachlevel\endcsname%
+ \dtlmul{\dtl@tmp}{\dtl@variable}{100}%
\let\dtl@old=\dtl@tmp
- \FPdiv{\dtl@tmp}{\dtl@old}{\dtl@total}%
- \expandafter\FPround
- \csname dtl@piepercent@\romannumeral\@dtl@seg\endcsname\dtl@tmp
- \c@DTLpieroundvar
+ \dtldiv{\dtl@tmp}{\dtl@old}{\dtl@total}%
+ \expandafter\dtlround
+ \csname dtl@piepercent@\romannumeral\@dtl@seg\endcsname\dtl@tmp
+ \c@DTLpieroundvar
}%
\@for\dtl@row:=\dtl@piecutaways\do{%
\expandafter\@dtl@set@off\dtl@row-\relax
@@ -198,24 +198,22 @@
\csname dtl@sang@\romannumeral\@dtl@seg\endcsname}%
\edef\dtl@extent{%
\csname dtl@angle@\romannumeral\@dtl@seg\endcsname}%
- \FPadd{\dtl@endangle}{\dtl@start}{\dtl@extent}%
+ \dtladd{\dtl@endangle}{\dtl@start}{\dtl@extent}%
\edef\dtl@angle{%
\csname dtl@cut@angle@\romannumeral\@dtl@seg\endcsname}%
\let\dtl@old=\dtl@angle
\dtl@truncatedecimal\dtl@angle
\ifnum\dtl@angle>180\relax
- \FPsub{\dtl@angle}{\dtl@old}{360}%
+ \dtlsub{\dtl@angle}{\dtl@old}{360}%
\dtl@truncatedecimal\dtl@angle
\fi
\edef\dtl@cutlen{%
\csname dtl@cut@len@\romannumeral\@dtl@seg\endcsname
}%
\edef\@dtl@shift{(\dtl@angle:\dtl@cutlen)}%
- \FPmul{\dtl@angle}{\dtl@extent}{0.5}%
- \FPadd{\dtl@midangle}{\dtl@angle}{\dtl@start}%
+ \dtlmul{\dtl@angle}{\dtl@extent}{0.5}%
+ \dtladd{\dtl@midangle}{\dtl@angle}{\dtl@start}%
\begin{scope}[shift={\@dtl@shift}]%
- \dtl@truncatedecimal\dtl@start
- \dtl@truncatedecimal\dtl@endangle
\fill[color=\DTLgetpiesegmentcolor\@dtl@seg] (0,0) --
(\dtl@start:\DTLradius)
arc (\dtl@start:\dtl@endangle:\DTLradius) -- cycle;
@@ -227,10 +225,18 @@
\fi
\dtl@truncatedecimal\dtl@midangle
\ifDTLrotateinner
- \ifthenelse{\(\dtl@midangle > 90 \and \dtl@midangle < 270\)
- \TE@or \dtl@midangle < -90}%
+ \dtlifnumopenbetween{\dtl@midangle}{90}{270}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
{%
- \FPsub{\dtl@labelangle}{\dtl@midangle}{180}%
+ \dtlifnumlt{\dtl@midangle}{-90}%
+ {\let\@dtl@next\@firstoftwo}%
+ {\let\@dtl@next\@secondoftwo}%
+ }%
+ \@dtl@next
+ {%
+ \dtlsub{\dtl@labelangle}{\dtl@midangle}{180}%
\dtl@truncatedecimal\dtl@labelangle
\edef\dtl@innernodeopt{anchor=east,rotate=\dtl@labelangle}%
}%
@@ -241,10 +247,18 @@
\edef\dtl@innernodeopt{anchor=center}%
\fi
\ifDTLrotateouter
- \ifthenelse{\(\dtl@midangle > 90 \and \dtl@midangle < 270\)
- \TE@or \dtl@midangle < -90}%
+ \dtlifnumopenbetween{\dtl@midangle}{90}{270}%
{%
- \FPsub{\dtl@labelangle}{\dtl@midangle}{180}%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumlt{\dtl@midangle}{-90}%
+ {\let\@dtl@next\@firstoftwo}%
+ {\let\@dtl@next\@secondoftwo}%
+ }%
+ \@dtl@next
+ {%
+ \dtlsub{\dtl@labelangle}{\dtl@midangle}{180}%
\dtl@truncatedecimal\dtl@labelangle
\edef\dtl@outernodeopt{anchor=east,rotate=\dtl@labelangle}%
}%
@@ -252,23 +266,74 @@
\edef\dtl@outernodeopt{anchor=west,rotate=\dtl@midangle}%
}%
\else
- \ifthenelse{\(\dtl@midangle<45\and\dtl@midangle>-45\)
- \TE@or \dtl@midangle=45
- \TE@or \dtl@midangle>315}%
+ \dtlifnumeq{\dtl@midangle}{45}
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumgt{\dtl@midangle}{315}
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumopenbetween{\dtl@midangle}{-45}{45}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \let\@dtl@next\@secondoftwo
+ }%
+ }%
+ }%
+ \@dtl@next
{%
\edef\dtl@outernodeopt{anchor=west}%
}%
{%
- \ifthenelse{\(\dtl@midangle<135\and\dtl@midangle>45\)
- \TE@or \dtl@midangle=135}%
+ \dtlifnumopenbetween{\dtl@midangle}{45}{135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumeq{\dtl@midangle}{135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \let\@dtl@next\@secondoftwo
+ }%
+ }%
+ \@dtl@next
{%
\edef\dtl@outernodeopt{anchor=south}%
}%
{%
- \ifthenelse{\(\dtl@midangle<225\and\dtl@midangle>135\)
- \TE@or \dtl@midangle=225
- \TE@or \dtl@midangle=-135
- \TE@or \dtl@midangle<-135}%
+ \dtlifnumopenbetween{\dtl@midangle}{135}{225}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumeq{\dtl@midangle}{225}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumeq{\dtl@midangle}{-135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \dtlifnumlt{\dtl@midangle}{-135}%
+ {%
+ \let\@dtl@next\@firstoftwo
+ }%
+ {%
+ \let\@dtl@next\@secondoftwo
+ }%
+ }%
+ }%
+ }%
+ \@dtl@next
{%
\edef\dtl@outernodeopt{anchor=east}%
}%
@@ -298,71 +363,79 @@
\egroup
}
\newcommand*{\dtl@computeangles}[2]{%
-\FPifgt{\@dtl@start}{180}%
- \let\dtl@old=\@dtl@start
- \FPsub{\@dtl@start}{\dtl@old}{360}%
-\fi
-\FPiflt{\@dtl@start}{-180}%
+ \dtlifnumgt{\@dtl@start}{180}%
+ {%
+ \let\dtl@old=\@dtl@start
+ \dtlsub{\@dtl@start}{\dtl@old}{360}%
+ }%
+ {}%
+ \dtlifnumlt{\@dtl@start}{-180}%
+ {%
+ \let\dtl@old=\@dtl@start
+ \dtladd{\@dtl@start}{\dtl@old}{360}%
+ }%
+ {}%
+ \expandafter\edef\csname dtl@sang@\romannumeral#1\endcsname{%
+ \@dtl@start}%
+ \dtlmul{\dtl@angle}{360}{#2}%
+ \let\dtl@old=\dtl@angle
+ \dtldiv{\dtl@angle}{\dtl@old}{\dtl@total}%
+ \expandafter\let\csname dtl@angle@\romannumeral#1\endcsname=\dtl@angle
\let\dtl@old=\@dtl@start
- \FPadd{\@dtl@start}{\dtl@old}{360}%
-\fi
-\expandafter\edef\csname dtl@sang@\romannumeral#1\endcsname{%
-\@dtl@start}%
-\FPmul{\dtl@angle}{360}{#2}%
-\let\dtl@old=\dtl@angle
-\FPdiv{\dtl@angle}{\dtl@old}{\dtl@total}%
-\expandafter\let\csname dtl@angle@\romannumeral#1\endcsname=\dtl@angle
-\let\dtl@old=\@dtl@start
-\FPadd{\@dtl@start}{\dtl@old}{\dtl@angle}%
-\expandafter\def\csname dtl@cut@angle@\romannumeral#1\endcsname{0}%
-\expandafter\def\csname dtl@cut@len@\romannumeral#1\endcsname{0cm}%
+ \dtladd{\@dtl@start}{\dtl@old}{\dtl@angle}%
+ \expandafter\def\csname dtl@cut@angle@\romannumeral#1\endcsname{0}%
+ \expandafter\def\csname dtl@cut@len@\romannumeral#1\endcsname{0cm}%
}
\def\@dtl@set@off#1-#2\relax{%
-\ifthenelse{\equal{#2}{}}{%
-\@@dtl@set@off{#1}}{%
-\@@dtl@set@offr#1-#2\relax}%
+ \ifstrempty{#2}%
+ {%
+ \@@dtl@set@off{#1}%
+ }%
+ {%
+ \@@dtl@set@offr#1-#2\relax
+ }%
}
\newcommand*{\@@dtl@set@off}[1]{%
-\edef\dtl@old{\csname dtl@angle@\romannumeral#1\endcsname}%
-\FPmul{\dtl@angle}{\dtl@old}{0.5}%
-\let\dtl@old=\dtl@angle
-\edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
-\FPadd{\dtl@angle}{\dtl@old}{\dtl@sang}%
-\expandafter\edef\csname dtl@cut@angle@\romannumeral#1\endcsname{%
-\dtl@angle}%
-\expandafter\edef\csname dtl@cut@len@\romannumeral#1\endcsname{%
- \the\dtl@cutawayoffset}
+ \edef\dtl@old{\csname dtl@angle@\romannumeral#1\endcsname}%
+ \dtlmul{\dtl@angle}{\dtl@old}{0.5}%
+ \let\dtl@old=\dtl@angle
+ \edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
+ \dtladd{\dtl@angle}{\dtl@old}{\dtl@sang}%
+ \expandafter\edef\csname dtl@cut@angle@\romannumeral#1\endcsname{%
+ \dtl@angle}%
+ \expandafter\edef\csname dtl@cut@len@\romannumeral#1\endcsname{%
+ \the\dtl@cutawayoffset}%
}
\newcount\@dtl@seg
\def\@@dtl@set@offr#1-#2-\relax{%
-\ifnum#1>#2\relax
- \PackageError{datapie}{Segment ranges must go in ascending order}{%
-Try #2-#1 instead of #1-#2}%
-\else
- \def\dtl@angle{0}%
- \@dtl@seg=#1\relax
- \whiledo{\not\(\@dtl@seg > #2\)}{%
- \let\dtl@old=\dtl@angle
- \edef\dtl@segang{\csname dtl@angle@\romannumeral\@dtl@seg\endcsname}%
- \FPadd{\dtl@angle}{\dtl@old}{\dtl@segang}%
- \advance\@dtl@seg by 1\relax
- }%
- \let\dtl@old=\dtl@angle
- \FPmul{\dtl@angle}{\dtl@old}{0.5}%
- \edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
- \let\dtl@old=\dtl@angle
- \FPadd{\dtl@angle}{\dtl@old}{\dtl@sang}%
- \@dtl@seg=#1\relax
- \whiledo{\not\(\@dtl@seg > #2\)}{%
- \expandafter
- \let\csname dtl@cut@angle@\romannumeral\@dtl@seg\endcsname
- =\dtl@angle
- \expandafter
- \edef\csname dtl@cut@len@\romannumeral\@dtl@seg\endcsname{%
- \the\dtl@cutawayoffset}
- \advance\@dtl@seg by 1\relax
- }%
-\fi
+ \ifnum#1>#2\relax
+ \PackageError{datapie}{Segment ranges must go in ascending order}{%
+ Try #2-#1 instead of #1-#2}%
+ \else
+ \def\dtl@angle{0}%
+ \@dtl@seg=#1\relax
+ \whiledo{\not\(\@dtl@seg > #2\)}{%
+ \let\dtl@old=\dtl@angle
+ \edef\dtl@segang{\csname dtl@angle@\romannumeral\@dtl@seg\endcsname}%
+ \dtladd{\dtl@angle}{\dtl@old}{\dtl@segang}%
+ \advance\@dtl@seg by 1\relax
+ }%
+ \let\dtl@old=\dtl@angle
+ \dtlmul{\dtl@angle}{\dtl@old}{0.5}%
+ \edef\dtl@sang{\csname dtl@sang@\romannumeral#1\endcsname}%
+ \let\dtl@old=\dtl@angle
+ \dtladd{\dtl@angle}{\dtl@old}{\dtl@sang}%
+ \@dtl@seg=#1\relax
+ \whiledo{\not\(\@dtl@seg > #2\)}{%
+ \expandafter
+ \let\csname dtl@cut@angle@\romannumeral\@dtl@seg\endcsname
+ =\dtl@angle
+ \expandafter
+ \edef\csname dtl@cut@len@\romannumeral\@dtl@seg\endcsname{%
+ \the\dtl@cutawayoffset}
+ \advance\@dtl@seg by 1\relax
+ }%
+ \fi
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/datatool/dataplot.sty b/Master/texmf-dist/tex/latex/datatool/dataplot.sty
index c330c241de1..d1ed4d28549 100644
--- a/Master/texmf-dist/tex/latex/datatool/dataplot.sty
+++ b/Master/texmf-dist/tex/latex/datatool/dataplot.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{dataplot}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{dataplot}[2016/07/20 v2.26 (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 ce4d6d7b64f..753f02324a0 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool-base.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool-base.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-base}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool-base}[2016/07/20 v2.26 (NLCT)]
\RequirePackage{etoolbox}
\RequirePackage{amsmath}
\RequirePackage{xkeyval}
@@ -235,19 +235,33 @@
\def\@dtl@newsortedlist{}%
\@dtl@insertdonefalse
\@for\dtl@srtelement:=#2\do{%
- \if@dtl@insertdone
+ \expandafter\DTLifSubString\expandafter{\dtl@srtelement}{,}
+ {%
\expandafter\toks@\expandafter{\dtl@srtelement}%
- \edef\@dtl@newstuff{{\the\toks@}}%
+ \edef\dtl@srtelement{{\the\toks@}}%
+ }%
+ {%
+ }
+ \if@dtl@insertdone
+ \let\@dtl@newstuff\dtl@srtelement
\else
- \expandafter#3\expandafter{\dtl@srtelement}{#1}%
- \ifnum\dtl@sortresult<0\relax
+ \expandafter#3\expandafter\dtl@sortresult\expandafter
+ {\dtl@srtelement}{#1}%
+ \ifnum\dtl@sortresult>0\relax
+ \DTLifSubString{#1}{,}%
+ {%
+ \@dtl@toks{{#1}}%
+ }%
+ {%
+ \@dtl@toks{#1}%
+ }%
\expandafter\toks@\expandafter{\dtl@srtelement}%
- \@dtl@toks{#1}%
- \edef\@dtl@newstuff{{\the\@dtl@toks},{\the\toks@}}%
+ \edef\@dtl@newstuff{\the\@dtl@toks,\the\toks@}%
\@dtl@insertdonetrue
\else
\expandafter\toks@\expandafter{\dtl@srtelement}%
\edef\@dtl@newstuff{{\the\toks@}}%
+ \let\@dtl@newstuff\dtl@srtelement
\fi
\fi
\ifdefempty{\@dtl@newsortedlist}%
@@ -264,15 +278,27 @@
}%
\ifdefempty{\@dtl@newsortedlist}%
{%
- \@dtl@toks{#1}%
- \edef\@dtl@newsortedlist{{\the\@dtl@toks}}%
+ \DTLifSubString{#1}{,}%
+ {%
+ \@dtl@toks{{#1}}%
+ }%
+ {%
+ \@dtl@toks{#1}%
+ }%
+ \edef\@dtl@newsortedlist{\the\@dtl@toks}%
}%
{%
\if@dtl@insertdone
\else
+ \DTLifSubString{#1}{,}%
+ {%
+ \@dtl@toks{{#1}}%
+ }%
+ {%
+ \@dtl@toks{#1}%
+ }%
\expandafter\toks@\expandafter{\@dtl@newsortedlist}%
- \@dtl@toks{#1}%
- \edef\@dtl@newsortedlist{\the\toks@,{\the\@dtl@toks}}%
+ \edef\@dtl@newsortedlist{\the\toks@,\the\@dtl@toks}%
\fi
}%
\global\let#2=\@dtl@newsortedlist
@@ -313,8 +339,8 @@
\noexpand\def\noexpand\@dtl@fracpart{0}%
}%
{%
- \noexpand\@dtl@getfracpart##2\noexpand\relax
- \noexpand\@dtl@choptrailingzeroes{\noexpand\@dtl@fracpart}%
+ \noexpand\@dtl@getfracpart##2\noexpand\relax
+ \noexpand\@dtl@choptrailingzeroes{\noexpand\@dtl@fracpart}%
}%
}%
\noexpand\def\noexpand\@dtl@getfracpart##1#1\noexpand\relax{%
diff --git a/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty b/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty
index 0e1bf825957..4280f6bf182 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool-fp.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-fp}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool-fp}[2016/07/20 v2.26 (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 7d7608f9995..f588ec69d68 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool-pgfmath.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool-pgfmath}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool-pgfmath}[2016/07/20 v2.26 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{pgfrcs,pgfkeys,pgfmath}
\ProcessOptionsX
@@ -47,33 +47,38 @@
\newcommand*{\dtlifnumeq}[4]{%
\def\@dtl@truepart{#3}%
\def\@dtl@falsepart{#4}%
- \pgfmathifthenelse{0#1==0#2}{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
+ \pgfmathifthenelse{\number0#1==\number0#2}%
+ {"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
\RequirePackage{datatool-base}
\newcommand*{\dtlifnumlt}[4]{%
\def\@dtl@truepart{#3}%
\def\@dtl@falsepart{#4}%
- \pgfmathifthenelse{0#1 < 0#2}{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
+ \pgfmathifthenelse{\number0#1 < \number0#2}%
+ {"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
\newcommand*{\dtlifnumgt}[4]{%
\def\@dtl@truepart{#3}%
\def\@dtl@falsepart{#4}%
- \pgfmathifthenelse{0#1 > 0#2}{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
+ \pgfmathifthenelse{\number0#1 > \number0#2}%
+ {"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
\newcommand*{\dtlifnumopenbetween}[5]{%
\def\@dtl@truepart{#4}%
\def\@dtl@falsepart{#5}%
- \pgfmathifthenelse{(0#2 < 0#1) && (0#1 < 0#3)}
+ \pgfmathifthenelse
+ {(\number0#2 < \number0#1) && (\number0#1 < \number0#3)}%
{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
\newcommand*{\dtlifnumclosedbetween}[5]{%
\def\@dtl@truepart{#4}%
\def\@dtl@falsepart{#5}%
- \pgfmathifthenelse{(0#2 <= #1) && (0#1 <= 0#3)}
+ \pgfmathifthenelse
+ {(\number0#2 <= \number0#1) && (\number0#1 <= \number0#3)}
{"\noexpand\@dtl@truepart"}{"\noexpand\@dtl@falsepart"}%
\pgfmathresult
}
@@ -98,16 +103,58 @@
\let#1\pgfmathresult
}
\newcommand*{\dtlround}[3]{%
- \pgfmathparse{10^#3}%
- \let\dtl@tmpshift\pgfmathresult
- \pgfmathparse{round(#2 * \dtl@tmpshift) / \dtl@tmpshift}%
- \let#1\pgfmathresult
+ \ifnum#3=0\relax
+ \pgfmathparse{int(round(#2))}%
+ \let#1\pgfmathresult
+ \else
+ \pgfmathparse{int(10^#3)}%
+ \let\dtl@tmpshift\pgfmathresult
+ \pgfmathparse{int(floor(#2))}%
+ \let\dtl@int@round\pgfmathresult
+ \pgfmathparse{int(round((#2-\dtl@int@round) * \dtl@tmpshift))}%
+ \@dtl@tmpcount=0\relax
+ \expandafter\@dtl@countdigits\pgfmathresult.\relax
+ \advance\@dtl@tmpcount by -#3\relax
+ \def\@dtl@intpart{}%
+ \def\@dtl@fracpart{}%
+ \expandafter\@dtl@gatherintfrac\pgfmathresult\relax
+ \edef\@dtl@intpart{\number\numexpr\dtl@int@round
+ +\number0\@dtl@intpart}%
+ \edef#1{\@dtl@intpart.\@dtl@fracpart}%
+ \fi
+}
+\newcommand*{\@dtl@gatherintfrac}[1]{%
+ \ifx\relax#1\relax
+ \else
+ \advance\@dtl@tmpcount by -1\relax
+ \ifnum\@dtl@tmpcount<0\relax
+ \edef\@dtl@fracpart{\@dtl@fracpart#1}%
+ \else
+ \edef\@dtl@intpart{\@dtl@intpart#1}%
+ \fi
+ \expandafter\@dtl@gatherintfrac
+ \fi
}
\newcommand*{\dtltrunc}[3]{%
- \pgfmathparse{10^#3}%
- \let\dtl@tmpshift\pgfmathresult
- \pgfmathparse{floor(#2 * \dtl@tmpshift) / \dtl@tmpshift}%
- \let#1\pgfmathresult
+ \ifnum#3=0\relax
+ \pgfmathparse{int(floor(#2))}%
+ \let#1\pgfmathresult
+ \else
+ \pgfmathparse{int(10^#3)}%
+ \let\dtl@tmpshift\pgfmathresult
+ \pgfmathparse{int(floor(#2))}%
+ \let\dtl@int@trunc\pgfmathresult
+ \pgfmathparse{int(floor((#2-\dtl@int@trunc) * \dtl@tmpshift))}%
+ \@dtl@tmpcount=0\relax
+ \expandafter\@dtl@countdigits\pgfmathresult.\relax
+ \advance\@dtl@tmpcount by -#3\relax
+ \def\@dtl@intpart{}%
+ \def\@dtl@fracpart{}%
+ \expandafter\@dtl@gatherintfrac\pgfmathresult\relax
+ \edef\@dtl@intpart{\number\numexpr\dtl@int@trunc
+ +\number0\@dtl@intpart}%
+ \edef#1{\@dtl@intpart.\@dtl@fracpart}%
+ \fi
}
\newcommand*{\dtlclip}[2]{%
\edef#1{#2}%
diff --git a/Master/texmf-dist/tex/latex/datatool/datatool.sty b/Master/texmf-dist/tex/latex/datatool/datatool.sty
index cd0535b89c2..19c0d34e553 100644
--- a/Master/texmf-dist/tex/latex/datatool/datatool.sty
+++ b/Master/texmf-dist/tex/latex/datatool/datatool.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datatool}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{datatool}[2016/07/20 v2.26 (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 8159762b6c3..95605050413 100644
--- a/Master/texmf-dist/tex/latex/datatool/person.sty
+++ b/Master/texmf-dist/tex/latex/datatool/person.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{person}[2016/01/18 v2.25 (NLCT)]
+\ProvidesPackage{person}[2016/07/20 v2.26 (NLCT)]
\RequirePackage{ifthen}
\RequirePackage{datatool}
\newcounter{people}