Nhập thập phân hỗn hợp với siunitx

Aug 28 2020

Siunitx có nhận các đầu vào thập phân hỗn hợp như 0,004319689898685966 và 0,004319689898685966 không? Nó trông giống như nó, nhưng nó có ý định hoạt động như thế này?

Tôi đang sử dụng Python cho các phép tính của mình với dấu "." ký hiệu thập phân và nhập thủ công với ký hiệu thập phân ",".

Hình ảnh:

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}

Trả lời

4 egreg Aug 28 2020 at 17:26

Vì dữ liệu đầu vào cho \SIcó thể đến từ nhiều nguồn khác nhau, người ta có thể sử dụng nhiều kiểu khác nhau cho nó; cụ thể là dấu chấm thập phân hoặc dấu phẩy thập phân trong đầu vào được chuyển đổi để sử dụng điểm đánh dấu được đặt bằng output-decimal-marker.

Khóa decimalcommavẫn được phép sử dụng nhưng nó đưa ra cảnh báo

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

Có nhiều tùy chọn khác nhau để tuân thủ các kiểu đầu vào khác nhau, nhưng cuối cùng, đầu ra luôn được chuẩn hóa theo các tùy chọn đã chọn liên quan đến dấu thập phân, phân tách nhóm, v.v.

Các tùy chọn có thể được đặt trên toàn cục (nhưng tôn trọng các nhóm TeX) với \sisetuphoặc cục bộ với đối số tùy chọn \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}

3 Mico Aug 28 2020 at 17:25

Các siunitxnày khác biệt giữa gói

  • input-decimal-markers, với mặc định ,., tức là cả dấu phẩy và dấu chấm (còn gọi là "dấu chấm hết") được hiểu là dấu thập phân và

  • output-decimal-marker, mặc định là .(dấu chấm).

Một ví dụ có thể tổng hợp:

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