Gemischte Dezimaleingabe mit siunitx

Gemischte Dezimaleingabe mit siunitx

Akzeptiert siunitx gemischte Dezimalzahlen wie 0,004319689898685966 und 0,004319689898685966? Es sieht so aus, aber ist es beabsichtigt, dass es so funktioniert?

Ich verwende Python für meine Berechnungen mit einem „.“ Dezimalsymbol und tippe manuell mit einem „“, Dezimalsymbol.

Bild: Bildbeschreibung hier eingeben

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}

Antwort1

Da die Eingabedaten für \SIaus verschiedenen Quellen stammen können, können dafür verschiedene Stile verwendet werden, insbesondere wird ein Dezimalpunkt oder ein Dezimalkomma in der Eingabe so umgewandelt, dass ein mit gesetzter Marker verwendet wird output-decimal-marker.

Der Schlüssel decimalcommaist noch dafür zugelassen, aber es wird eine Warnung ausgegeben

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

Es gibt verschiedene Optionen, um verschiedenen Eingabestilen gerecht zu werden, am Ende wird die Ausgabe jedoch immer entsprechend den gewählten Optionen bezüglich der Dezimaltrennzeichen, der Gruppentrennungen usw. normalisiert.

Optionen können global (aber unter Berücksichtigung von TeX-Gruppen) mit \sisetupoder lokal mit einem optionalen Argument an gesetzt werden \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}

Bildbeschreibung hier eingeben

Antwort2

Das siunitxPaket unterscheidet zwischen

  • input-decimal-markers, mit Standard ,., d. h. sowohl Komma als auch Punkt (auch bekannt als "Punkt") werden als Dezimalzeichen interpretiert, und

  • output-decimal-marker, der standardmäßig auf .(Punkt) eingestellt ist.

Ein kompilierbares Beispiel:

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

verwandte Informationen