
Esta es una pregunta de seguimiento sobreLa conversión de decimal a configuración regional falla al usar la herramienta de datos en combinación con tabularray. O digámoslo de esta manera: podría hervir el problema muchas veces.
El problema central es la diferente comprensión de los decimales por datatool
y siunitx
. Tan pronto como uso el comando \DTLsumforkeys
obtengo ,
un marcador decimal, pero siunitx
uso un archivo dot
. Por lo tanto no puedo usar ambos juntos. Cuando intento utilizar algunas conversiones (por ejemplo DTLdecimaltolocale
, DTLsetnumberchars
), también fallo.
Supongo que cuando esto se resuelva, también podré resolver el problema en la pregunta mencionada anteriormente.
Descubrí que \sisetup{output-decimal-marker={,}}
puedo obtener el ,
for siunitx
para que los números se datatool
vean siunitx
iguales, pero la coma no debe ser el marcador decimal, sino que debe representar el "marcador de miles".
\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}
Respuesta1
Debe configurarlo ,
para que se trate como un carácter de espaciado (por lo tanto, ignorado) en lugar de un marcador decimal.
\sisetup{input-decimal-markers ={.}, input-ignore={,}}