通过数据工具处理时如何将 CSV 中的特殊字符映射到其他内容

通过数据工具处理时如何将 CSV 中的特殊字符映射到其他内容

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}

来自datatool 用户指南

当然,必须设置映射事先的用 加载数据\DTLloadrawdb

相关内容