Entrada decimal mista com siunitx

Entrada decimal mista com siunitx

O siunitx aceita entradas decimais mistas como 0,004319689898685966 e 0,004319689898685966? Parece, mas pretende funcionar assim?

Estou usando Python para meus cálculos com um "." símbolo decimal e digite manualmente com um "," símbolo decimal.

Imagem: insira a descrição da imagem aqui

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}

Responder1

Como os dados de entrada \SIpodem vir de várias fontes, é possível usar vários estilos para eles; em particular, um ponto decimal ou uma vírgula decimal na entrada é convertido para usar um marcador definido com output-decimal-marker.

A chave decimalcommaainda é permitida, mas emite um aviso

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

Existem várias opções para atender diferentes estilos de entrada, mas no final a saída é sempre normalizada de acordo com as opções escolhidas quanto ao marcador decimal, às separações de grupos e assim por diante.

As opções podem ser definidas globalmente (mas respeitando os grupos TeX) com \sisetupou localmente com um argumento opcional para \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}

insira a descrição da imagem aqui

Responder2

O siunitxpacote distingue entre

  • input-decimal-markers, com default ,., ou seja, vírgula e ponto final (também conhecido como "ponto final") são interpretados como marcador decimal, e

  • output-decimal-marker, cujo padrão é .(ponto final).

Um exemplo compilável:

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

informação relacionada