データツールで処理するときに 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

関連情報