Смешанный десятичный ввод с помощью siunitx

Смешанный десятичный ввод с помощью siunitx

Принимает ли siunitx смешанные десятичные входные данные, такие как 0,004319689898685966 и 0.004319689898685966? Похоже на то, но предназначено ли оно для такой работы?

Для своих вычислений я использую Python с десятичным разделителем «.» и вручную ввожу десятичный разделитель «,».

Изображение: введите описание изображения здесь

МВЭ:

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

Связанный контент