Gemischte Dezimaleingabe mit siunitx
Nimmt siunitx gemischte Dezimaleingaben wie 0,004319689898685966 und 0,004319689898685966 an? Es sieht so aus, aber soll es so funktionieren?
Ich verwende Python für meine Berechnungen mit einem "." Dezimalsymbol und manuell mit einem "," Dezimalsymbol eingeben.
Bild:
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}
Antworten
Da die Eingabedaten für \SImöglicherweise aus verschiedenen Quellen stammen, können verschiedene Stile verwendet werden. Insbesondere wird eine Dezimalstelle oder ein Dezimalkomma in der Eingabe konvertiert, um eine Markierung zu verwenden, mit der gesetzt wird output-decimal-marker.
Der Schlüssel decimalcommaist weiterhin zulässig, gibt jedoch eine Warnung aus
Package siunitx Warning: Version 1 option 'decimalsymbol' detected.
Es gibt verschiedene Optionen, um unterschiedlichen Eingabestilen zu entsprechen. Am Ende wird die Ausgabe jedoch immer gemäß den ausgewählten Optionen hinsichtlich der Dezimalmarkierung, der Gruppentrennungen usw. normalisiert.
Optionen können global (aber unter Berücksichtigung von TeX-Gruppen) mit \sisetupoder lokal mit einem optionalen Argument für festgelegt 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}
Das siunitxPaket unterscheidet zwischen
input-decimal-markersStandardmäßig,.werden also sowohl Komma als auch Punkt (auch als "Punkt" bezeichnet) als Dezimalmarkierung interpretiertoutput-decimal-marker, standardmäßig.(Punkt).
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}