Como mapear caracteres especiais em CSV para outra coisa ao processar via datatool

Como mapear caracteres especiais em CSV para outra coisa ao processar via datatool

Odatatool guia de usuariomenciona que certos caracteres especiais são automaticamente mapeados para o equivalente de composição ao carregar um banco de dados emcrumodo (através de \DTLloadrawdb). Se você quiser alterar o mapeamento, use (por exemplo)

\DTLrawmap{£}{\pounds}

No entanto, como faço para mapearativocaracteres como %, $, &, _, ... para outra coisa? O exemplo mínimo a seguir não é mapeado %para algo diferente de \%(por razões óbvias; %é um caractere de comentário ativo):

\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}

Responder1

Use oescapouversão do personagem na <string>parte de \DTLrawmap{<string>}{<replacement>}. Por exemplo,

\DTLrawmap{\%}{\$}

substituiria %no CSV de origem por \$:

insira a descrição da imagem aqui

\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}

Dedatatool guia de usuario:

Naturalmente, os mapeamentos devem ser definidosanteriorpara carregar os dados com \DTLloadrawdb.

informação relacionada