这datatool
用户指南提到在加载数据库时,某些特殊字符会自动映射到排版等效字符生的模式(通过\DTLloadrawdb
)。如果您想更改映射,请使用(例如)
\DTLrawmap{£}{\pounds}
但是,我该如何映射积极的字符,如%
、$
、&
、_
...... 映射到其他内容?以下最小示例无法映射%
到除\%
(原因很明显;%
是活动注释字符)以外的其他内容:
\documentclass{article}
\usepackage{filecontents,datatool}
\begin{filecontents*}{scores.csv}
Name, Score
Alpha, 80.2%
Beta, 91.3%
Average, 85.75%
\end{filecontents*}
\begin{document}
\DTLrawmap{%}{\$}% <--- this fails...
\DTLloadrawdb{scores}{scores.csv}
\DTLdisplaydb{scores}
\end{document}
答案1
使用逃脱<string>
部分中的字符版本\DTLrawmap{<string>}{<replacement>}
。例如,
\DTLrawmap{\%}{\$}
将%
在源 CSV 中替换为\$
:
\documentclass{article}
\usepackage{filecontents,datatool}
\begin{filecontents*}{scores.csv}
Name, Score
Alpha, 80.2%
Beta, 91.3%
Average, 85.75%
\end{filecontents*}
\begin{document}
\DTLloadrawdb{scoresA}{scores.csv}
\DTLdisplaydb{scoresA}
\DTLrawmap{\%}{\$}% Map % to \$
\DTLloadrawdb{scoresB}{scores.csv}
\DTLdisplaydb{scoresB}
\end{document}
当然,必须设置映射事先的用 加载数据
\DTLloadrawdb
。