Как выровнять числа по \pm, а не по точкам?

Как выровнять числа по \pm, а не по точкам?

Как выровнять числа по \pm, но не по точкам? Каждая строка также должна иметь разное количество знаков после запятой.

\documentclass{article}
\usepackage{siunitx}


\begin{document}
\begin{table}
\caption{}
\centering
\small
\sisetup{separate-uncertainty}
\begin{tabular}{lS[table-format = 5.4(1)]}
\hline\hline\noalign{\smallskip}
Parameter & Value \\
\noalign{\smallskip}\hline\noalign{\smallskip} 
A   & 26.5 \pm 2.0      \\
B   & 11.102 \pm 1.2 \\
C   & 53839  \pm 550 \\
D   & 0.5863     \pm 0.016 \\

\noalign{\smallskip}\hline\noalign{\smallskip}
\end{tabular}
\end{table}

\end{document}

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

решение1

Какэтот ответпредполагает, что Sстолбец, предоставляемый пакетом, siunitxпоставляется только с определенными функциями выравнивания, которые в первую очередь подгоняют числа под десятичный разделитель, а это не то, что вам нужно.

Поэтому я бы посоветовал вам настроить хороший ответ, указанный выше, и выполнить выравнивание вручную без использования пакета siunitx. Поскольку я не знаю, как вы хотите выровнять цифры за \pmзнаком, я предлагаю ниже два альтернативных решения. Я бы также предложил взглянуть на booktabsпакет:

\documentclass{article}
%\usepackage{siunitx}
\usepackage{booktabs}

\begin{document}

\begin{tabular}{ l r @{\,\( \pm \)\,} r }
\toprule
{Parameter} & \multicolumn{2}{c}{Value} \\
\midrule
A   & 26.5   & 2.0   \\
B   & 11.102 & 1.2   \\
C   & 53839  & 550   \\
D   & 0.5863 & 0.016 \\
\bottomrule
\end{tabular}

\bigskip

\begin{tabular}{ l r @{\,\( \pm \)\,} l }
\toprule
{Parameter} & \multicolumn{2}{c}{Value} \\
\midrule
A   & 26.5   & 2.0   \\
B   & 11.102 & 1.2   \\
C   & 53839  & 550   \\
D   & 0.5863 & 0.016 \\
\bottomrule
\end{tabular}

\end{document}

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

решение2

Я не знаю о siunitxвнедрении какой-либо функции для центрирования чисел вокруг маркеров неопределенности. Возможно, она реализована, но я об этом не знаю. Единственный обходной путь, который я могу придумать, — это разбить числа на два столбца, чтобы получить эффект. Вы все еще можете использовать, siunitxскажем, округлить числа до нескольких десятичных знаков. Кроме этого, siunitxне требуется

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

\documentclass{article}
\usepackage{siunitx}
\newcommand\ustrut{\rule{0pt}{12pt}}
\newcommand\lstrut{\rule[-6pt]{0pt}{12pt}}


\begin{document}
\begin{table}
  \sisetup{
    round-mode=figures,
    round-precision=3,
    table-alignment-mode=none,
    separate-uncertainty,
  }
  \caption{}
  \centering
  \small
  \begin{tabular}{
      l
      S[table-number-alignment=right]
      @{\(\;\pm\;\)}
      S[table-number-alignment=left]
    }
    \hline\hline
    \ustrut Parameter & \multicolumn{2}{c}{Value\lstrut}\\
    \hline\ustrut
    A   &   26.5 & 2.0 \\
    B   & 11.102 & 1.2 \\
    C   &  53839 & 550 \\
    D   & 0.5863 & 0.016 \lstrut \\
    \hline
  \end{tabular}
  \end{table}
\end{document}

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