siunitx による混合小数点入力

siunitx による混合小数点入力

siunitx は、0,004319689898685966 と 0.004319689898685966 のような混合 10 進入力を受け入れますか? そう見えるのですが、このように動作することを意図していますか?

私は「.」小数点記号を使った計算に Python を使用しており、「,」小数点記号を手動で入力しています。

画像: ここに画像の説明を入力してください

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}

答え1

の入力データはさまざまなソースから取得される可能性があるため\SI、さまざまなスタイルを使用できます。特に、入力内の小数点ピリオドまたは小数点コンマは、 で設定されたマーカーを使用するように変換されますoutput-decimal-marker

キーはdecimalcommaまだ許可されていますが、警告が表示されます

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

さまざまな入力スタイルに準拠するためのさまざまなオプションがありますが、最終的には、小数点記号、グループ区切りなどに関する選択されたオプションに従って出力が常に正規化されます。

オプションは、 を使用してグローバルに設定することも (ただし、TeX グループを尊重)、\sisetupにオプションの引数を指定してローカルに設定することもできます\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}

ここに画像の説明を入力してください

答え2

パッケージsiunitxは、

  • input-decimal-markersデフォルトでは,.、コンマとピリオド(別名「終止符」)の両方が小数点として解釈され、

  • output-decimal-markerデフォルトでは.(ピリオド) になります。

コンパイル可能な例:

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

関連情報