Cómo asignar caracteres especiales en CSV a otra cosa cuando se procesa a través de la herramienta de datos

Cómo asignar caracteres especiales en CSV a otra cosa cuando se procesa a través de la herramienta de datos

Eldatatool guía del usuariomenciona que ciertos caracteres especiales se asignan automáticamente al equivalente tipográfico al cargar una base de datos encrudomodo (a través de \DTLloadrawdb). Si desea cambiar el mapeo, use (por ejemplo)

\DTLrawmap{£}{\pounds}

Sin embargo, ¿cómo puedo mapearactivo¿Personajes como %, $, &, _, ... a otra cosa? El siguiente ejemplo mínimo no se puede asignar %a algo que no sea \%(por razones obvias; %es un carácter de comentario activo):

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

Respuesta1

Utilizar elescapadoversión del personaje en la <string>parte de \DTLrawmap{<string>}{<replacement>}. Por ejemplo,

\DTLrawmap{\%}{\$}

reemplazaría %en el CSV fuente con \$:

ingrese la descripción de la imagen aquí

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

Desde eldatatool guía del usuario:

Naturalmente, las asignaciones deben establecersepreviopara cargar los datos con \DTLloadrawdb.

información relacionada