Nicola Talbot submitted an update to the
datatool
package.
Version: 3.0 2025-03-03
License: lppl1.3
Summary description: Tools to load and manipulate data
Announcement text:
--------------------------------------------------------------------------------
Major rewrite. Rollback to v2.32 available if there are any issues.
Key features:
- new 'math' package options: math=lua and math=l3fp. If not specified, the
defaults are now math=lua for LuaLaTeX and math=l3fp otherwise.
The older options are still supported, but the newer ones are better
and support scientific notation.
- parsed formatted numbers and currency have their values embedded within
the control sequence variable for easy access without having to reparse.
Note that this affects expansion, which may cause a difference from v2.32.
For example:
\DTLparse\result{\$12,345.67}
Original text: \result.
Data type: \DTLgetDataTypeName{\DTLdatumtype{\result}}.
Numeric value: \DTLdatumvalue{\result}.
Currency symbol: \DTLdatumcurrency{\result}.
In this case, \result will only expand as far as the original text.
To fully expand use \DTLusedatum{\result}.
- For databases that contain numeric values that will be used in calculations
(including plotting), use \DTLsetup{store-datum} (before creating the
database) to embed the numeric information within the database entries.
This should improve build time but may impair fast data lookup of unique strings.
- New multi-purpose \DTLaction command with key=value interface that may
be used instead of the alternative commands with long names.
- New sort functions that internally use \seq_sort:Nn for faster sorting.
The old sort commands still work but the newer ones are more efficient.
Note: the glossaries package uses the datatool-base sorting commands
for \printnoidxglossary. If you are using that command you may notice a
difference. Make sure you have at least glossaries v4.56 to take
advantage of the improved sorting and new localisation support.
- Localisation support has been added for orthography (alphabet order for
word sorting) and for numeric parsing (currency symbols, number group
separator and decimal character).
Support for numeric parsing and currency is supplied by datatool-regions
which needs to be installed separately.
Support for orthography is supplied by the applicable language module,
which needs to be installed separately. Currently only datatool-english
is available.
For example (assuming datatool v3.0, datatool-regions and datatool-english
are all installed):
\documentclass{article}
\usepackage{fontspec}
\setromanfont{Noto Serif}
\usepackage[locales={en-BE,ang-Latn}]{datatool-base}
\newcommand{\wordlist}{ýþung, eásteweard, áǽðan,
Œthelwald, þorn, æsċ, eaþ-fynde, ðæt,
Æðelþryð, aardvark, zebra, ƿēana, Oswine}
\begin{document}
Currency: \DTLdecimaltocurrency{1234.56}{\result}\result.
\DTLenLocaleHook
\DTLsortwordlist{\wordlist}{\DTLsortletterhandler}
Sorted list: \DTLformatlist{\wordlist}.
\DTLangLatnLocaleHook
\DTLsortwordlist{\wordlist}{\DTLsortletterhandler}
Sorted list: \DTLformatlist{\wordlist}.
\DTLresetRegion
\DTLresetLanguage
Currency: \DTLdecimaltocurrency{1234.56}{\result}\result.
\DTLsortwordlist{\wordlist}{\DTLsortletterhandler}
Sorted list: \DTLformatlist{\wordlist}.
\end{document}
The result is:
Currency: 1.234,56€.
Sorted list: aardvark, Æðelþryð, æsċ, áǽðan, ðæt, eásteweard,
eaþ-fynde, Œthelwald, Oswine, þorn, ƿēana, ýþung and zebra.
Sorted list: aardvark, áǽðan, eásteweard, eaþ-fynde, Œthelwald,
Oswine, ýþung, zebra, ƿēana, ðæt, æsċ, Æðelþryð ⁊ þorn.
Currency: ¤1,234.56.
Sorted list: aardvark, eaþ-fynde, eásteweard, Oswine, zebra, áǽðan,
æsċ, Æðelþryð, ðæt, ýþung, þorn, Œthelwald & ƿēana.
--------------------------------------------------------------------------------
This package is located at
https://mirrors.ctan.org/macros/latex/contrib/datatoolMore information is at
https://www.ctan.org/pkg/datatool--------------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Manfred Lotz
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see
https://ctan.org/lugs .