
Dies ist eine Folgefrage zuDie Konvertierung von Dezimalzahlen in Gebietsschemata schlägt mit Datatool in Kombination mit Tabularray fehlOder sagen wir es so: Ich könnte das Problem noch viel weiter auskochen.
Das Hauptproblem ist das unterschiedliche Verständnis von Dezimalzahlen durch datatool
und siunitx
. Sobald ich den Befehl verwende, \DTLsumforkeys
erhalte ich das ,
für einen Dezimaltrenner, siunitx
verwendet aber ein dot
. Daher kann ich nicht beides zusammen verwenden. Wenn ich versuche, einige Konvertierungen zu verwenden (z. B. DTLdecimaltolocale
, DTLsetnumberchars
), schlage ich ebenfalls fehl.
Ich denke, wenn dies gelöst ist, kann ich auch das Problem bei der oben genannten Frage lösen.
Ich habe herausgefunden, dass ich mit das für \sisetup{output-decimal-marker={,}}
erhalten kann, sodass die Zahlen gleich aussehen , aber das Komma sollte nicht das Dezimalzeichen sein, sondern das „Tausenderzeichen“ darstellen.,
siunitx
datatool
siunitx
\documentclass[parskip=full]{scrartcl}
\begin{filecontents}{test.csv}
category,fundingYear1,fundingYear2,fundingYear3,fundingYear4,fundingYear5,fundingYear6,fundingYear7
Staff,4111,4222,4333,4444,4555,4666,4777
Direct project costs,7,6,5,4,3,2,1
Instrumentation,6111,6222,6333,6444,6555,6666,6777
\end{filecontents}
\usepackage{datatool,siunitx}
\DTLloaddb{ScienceCommunication}{test.csv}
\begin{document}
\DTLsumforkeys{ScienceCommunication}{%
fundingYear1,%
fundingYear2,%
fundingYear3,%
fundingYear4,%
fundingYear5,%
fundingYear6,%
fundingYear7%
}{\ScienceCommunication}
datatool: \ScienceCommunication\\
siunitx: \num{\ScienceCommunication}
conversion with datatool:\\
- \verb|DTLdecimaltolocale|:
\DTLdecimaltolocale{\ScienceCommunication}{\ScienceCommunicationOne}
\ScienceCommunicationOne
- \verb|\DTLsetnumberchars{.}{,}|:
\DTLsetnumberchars{.}{,}
\ScienceCommunication
- \verb|\DTLsetnumberchars{,}{.}|:
\DTLsetnumberchars{,}{.}
\ScienceCommunication
\end{document}
Antwort1
Sie müssen festlegen, ,
dass es als Leerzeichen (also ignoriert) und nicht als Dezimaltrennzeichen behandelt wird.
\sisetup{input-decimal-markers ={.}, input-ignore={,}}