Entrée décimale mixte avec siunitx

Aug 28 2020

Siunitx accepte-t-il des entrées décimales mixtes telles que 0,004319689898685966 et 0,004319689898685966? Ça y ressemble, mais est-ce que ça marche comme ça?

J'utilise Python pour mes calculs avec un "." symbole décimal et tapez manuellement avec un symbole décimal ",".

Image:

MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\sisetup{range-phrase=-,
            detect-all,
            decimalsymbol=comma,
            round-mode=places,
            round-precision=4,
            range-units=single,
            per-mode=fraction,}

\begin{document}

\begin{itemize}
\item \SI{0,004319689898685966}{\meter \squared}
\item \SI{0.004319689898685966}{\meter \squared}
\end{itemize}
\end{document}

Réponses

4 egreg Aug 28 2020 at 17:26

Puisque les données d'entrée pour \SIpeuvent provenir de diverses sources, on peut utiliser différents styles pour cela; en particulier, une période décimale ou une virgule décimale dans l'entrée est convertie pour utiliser un marqueur défini avec output-decimal-marker.

La clé decimalcommaest toujours autorisée, mais elle émet un avertissement

Package siunitx Warning: Version 1 option 'decimalsymbol' detected.

Il existe différentes options pour se conformer à différents styles d'entrée, mais à la fin, la sortie est toujours normalisée en fonction des options choisies concernant le marqueur décimal, les séparations de groupes, etc.

Les options peuvent être définies globalement (mais en respectant les groupes TeX) avec \sisetupou localement avec un argument optionnel to \SI.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\sisetup{
  range-phrase=-,
  detect-all,
  output-decimal-marker={,},
  round-mode=places,
  round-precision=4,
  range-units=single,
  per-mode=fraction,
}

\begin{document}

\begin{itemize}
\item \SI{0,004319689898685966}{\meter \squared}
\item \SI{0.004319689898685966}{\meter \squared}
\item \SI[output-decimal-marker=.]{0.004319689898685966}{\meter \squared}
\sisetup{output-decimal-marker=\ensuremath{{\cdot}}}
\item \SI{0.004319689898685966}{\meter \squared}
\end{itemize}
\end{document}

3 Mico Aug 28 2020 at 17:25

Le siunitxpackage distingue

  • input-decimal-markers, par défaut ,., c'est-à-dire que la virgule et le point (alias "point final") sont interprétés comme un marqueur décimal, et

  • output-decimal-marker, qui vaut par défaut .(point).

Un exemple compilable:

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\num{0.333} and \num{0,333}

\sisetup{output-decimal-marker={,}} % change the default

\num{0.333} and \num{0,333}
\end{document}