“Authors Give Back” SmashWords Sale (March 20 - April 20, 2020): ebook editions of crime novel The Private Enemy and short story I've Heard the Mermaid Sing both FREE for the duration of the sale.

datatool package FAQ

FAQ Search Tips

This is the FAQ for the datatool package. See also the datatool user guide and the bug tracker (datatool category)

Error Messages

Undefined \@dtlifhaskey 🔗

This has been fixed in version 2.02.

Last modified: 2013-12-08 16:41:26.


Undefined \dtl@getcolumnindex 🔗

This has been fixed in version 2.02.

Last modified: 2013-12-08 16:42:09.


! Missing number, treated as zero (math=pgfmath option) 🔗

This has been fixed in version 2.12.

Last modified: 2013-12-08 16:42:51.


General Queries

LaTeX is very slow with large databases 🔗

Version 2.0 uses a more efficient way of storing the data which should speed things up. Also, the latest version of the xfor package (which datatool uses) has a more efficient loop, so also consider updating xfor. If it's too slow for your requirements, consider using a data processing tool (e.g. MatLab or Perl) to write the TeX code to an external file.

Last modified: 2013-12-09 10:24:01.


Unexpected output

Databases are always sorted in ascending order even when descending is specified 🔗

This bug appeared in version 2.0 and was fixed in version 2.01.

Last modified: 2013-12-08 16:47:04.


\DTLsavedb ignores the file name and always uses the name .tex 🔗

This has been fixed in version 2.02.

Last modified: 2013-12-08 16:47:40.


All my rows have the last assigned value 🔗

When you add an entry to a database (either explicitly using \DTLnewdbentry or implicitly by loading an external file), by default the value isn't expanded. This protects any fragile commands that may be contained in the value, however if you are programatically adding values, for example, you want to do something like

then the content for that cell will be set to \SampleValue, which means that whenever you use this entry it will do whatever's the current definition of \SampleValue at the time of use not at the time the value was stored.

If you actually want to expand the command when you add it to the database, you must enable expansion using \dtlexpandnewvalue before you add the value to the database, but you will then need to take care to protect fragile commands.

Last modified: 2015-09-21 11:53:02.


© 2020 Dickimaw Books. "Dickimaw", "Dickimaw Books" and the Dickimaw parrot logo are trademarks. The Dickimaw parrot was painted by Magdalene Pritchett.

Terms of Use Privacy Policy Cookies Site Map FAQs