Bug Tracker 
| ID | 301🔗 |
|---|---|
| Date: | 2025-04-03 09:46:31 |
| Last update: | 2025-04-03 12:41:15 |
| Status | Closed (Fixed) |
| Category | datatool |
| Version | 3.3 |
| Summary | Strings containing <string> <number> E <number> <string> break parser |
Sign in to subscribe to notifications about this report.
Description
In v3.3,\DTLread breaks when reading a CSV file with option csv-content=literal, in case a string field contains a substring matching [0-9]+E[0-9]+ (that is: a sequence of digits with an 'E' in the middle).I suspect that the type checker erroneously tries to consider the entry as a fp number written in scientific notation, and fails.
Minimal working example:
\documentclass{article}
\begin{filecontents}[overwrite]{test_db.csv}
Col1
AAA11E33
\end{filecontents}
\usepackage{datatool}
\DTLread[name={mydb},format=csv, csv-content=literal]{test_db.csv}
\begin{document}
We never reach this point
\end{document}
Error:
! Use of \??? doesn't match its definition.
<argument> \???
! LaTeX Error: Unknown fp word AAA.
MWE
Download (254B)
\documentclass{article}
\begin{filecontents}[overwrite]{test_db.csv}
Col1
AAA11E33
\end{filecontents}
\usepackage{datatool}
\DTLread[name={mydb},format=csv, csv-content=literal]{test_db.csv}%
\begin{document}
We never reach this point.
\end{document}Evaluation
Yes, you're right. The regular expression needs to be anchored. I'll get that fixed.
Update: fixed in v3.4. Allow a few days for it to reach your TeX distribution.
Comments
0 comments.
Add Comment
Page permalink: https://www.dickimaw-books.com/bugtracker.php?key=301
