Центральные колонны с siunitx

Центральные колонны с siunitx

У меня есть следующая таблица:

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

\begin{table}[h]
  \centering
  \caption{Transfer Entropy Results}
  \label{tab1:entropy}
  \begin{threeparttable}
\begin{tabularx}{\textwidth}{CC}
 \toprule
Causal test & Results  \\
\midrule
    \multicolumn{1}{c}{\multirow{2}[1]{*}{Bitcoin $\rightarrow$ IPImicro}} & 0.015 \\
          & (-0.023) \\
    \multicolumn{1}{c}{\multirow{2}[0]{*}{IPImicro $\rightarrow$ Bitcoin }} & 0.091** \\
          & (-0.027) \\
    \multicolumn{1}{c}{\multirow{2}[0]{*}{Bitcoin $\rightarrow$ IPImacro}} & 0.007 \\
          & (-0.028) \\
    \multicolumn{1}{c}{\multirow{2}[1]{*}{IPImacro $\rightarrow$ Bitcoin }} & 0.073** \\
          & (-0.025) \\

\bottomrule
  \end{tabularx}
  \begin{tablenotes}[para,flushleft]
  \footnotesize
  \item\hspace{-2.5pt}\noindent\textit{Note:} This table presents the Transfer Entropy estimation results. Standard deviation in parentheses; *** p < 0.01; ** p < 0.05; * p < 0.10.
  \end{tablenotes}
  \end{threeparttable}
\end{table}

Мне нужно выровнять числа по десятичному разделителю с помощью siunitx.

Однако вот что я получаю:

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

\begin{table}[h]
  \centering
  \caption{Transfer Entropy Results}
  \label{tab1:entropy}
  \begin{threeparttable}
\begin{tabular*}{\textwidth}{c@{\extracolsep{\fill}}*{2}{S}}
 \toprule
 \multicolumn{1}{c}{Causal test} &  \multicolumn{1}{c}{Regime 1} \\
\midrule
    \multicolumn{1}{c}{\multirow{2}[1]{*}{Bitcoin $\rightarrow$ IPImicro}} & 0.015 \\
          & {(}-4.710{)} \\
    \multicolumn{1}{c}{\multirow{2}[0]{*}{IPImicro $\rightarrow$ Bitcoin }} & 0.091** \\
          & {(}-4.710{)} \\
    \multicolumn{1}{c}{\multirow{2}[0]{*}{Bitcoin $\rightarrow$ IPImacro}} & 0.007 \\
          & {(}-4.710{)} \\
    \multicolumn{1}{c}{\multirow{2}[1]{*}{IPImacro $\rightarrow$ Bitcoin }} & 0.073** \\
          & {(}-4.710{)} \\

\bottomrule
  \end{tabular*}
  \begin{tablenotes}[para,flushleft]
  \footnotesize
  \item\hspace{-2.5pt}\noindent\textit{Note:} This table presents the Transfer Entropy estimation results.  Standard deviation in parentheses; *** p < 0.01; ** p < 0.05; * p < 0.10.
  \end{tablenotes}
  \end{threeparttable}
\end{table}

Первый столбец выровнен по левому краю. Есть идеи, что я делаю не так? Я хотел бы получить точно такой же результат, как в примере 1, только выровненный по десятичному разделителю. На втором шаге: возможно ли вообще, чтобы стрелки были друг под другом?

решение1

  • Причиной вашей проблемы, по-видимому, является использование@{\extracolsep{\fill}}
  • вы определяете три столбца, но используете только два...
  • Я бы не стал использовать tabular*окружение table, по-моему, результат не очень.
  • В качестве решения вашей проблемы я помещаю заголовки столбцов в pстолбцы шириной, равной половине ширины текста.
  • В моем MWE я удаляю весь ненужный код, исправляю определение Sтипа столбца и используюthreeparttablexупаковка:
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs, multirow}
\usepackage[referable]{threeparttablex}

\begin{document}
\begin{table}[h]
  \centering
  \caption{Transfer Entropy Results}
  \label{tab1:entropy}
  \begin{threeparttable}
\begin{tabular*}{\textwidth}{c 
                             S[input-open-uncertainty,
                               input-close-uncertainty,
                               table-space-text-pre=(,
                               table-space-text-post={**},
                               table-align-text-post=false,
                               table-format=-1.3]
                             }
    \toprule
\multicolumn{1}{>{\centering}p{0.5\linewidth}}{Causal test}    
    &  \multicolumn{1}{>{\centering\arraybackslash}p{0.5\linewidth}}{Regime 1}  \\
    \midrule
\multirow{2}{*}{Bitcoin $\rightarrow$ IPImicro} & 0.015     \\
                                                & (-4.71)   \\
    \addlinespace
\multirow{2}{*}{IPImicro $\rightarrow$ Bitcoin} & 0.091**   \\
                                                & (-4.710)  \\
    \addlinespace
\multirow{2}{*}{Bitcoin $\rightarrow$ IPImacro} & 0.007     \\
                                                & (-4.710)  \\
    \addlinespace
\multirow{2}{*}{IPImacro $\rightarrow$ Bitcoin} & 0.073**   \\
                                                & (-4.710)  \\
    \bottomrule
  \end{tabular*}
  \begin{tablenotes}[para,flushleft]\footnotesize
  \note: This table presents the Transfer Entropy estimation results.  
  Standard deviation in parentheses.
  \item[***] $p < 0.01$; 
  \item[**]  $p < 0.05$; 
  \item[*]   $p < 0.10$.
  \end{tablenotes}
  \end{threeparttable}
\end{table}
\end{document}

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

решение2

Опираясь наОтвет Зарко, вот вариант, который также выравнивает содержимое первого столбца относительно \rightarrow. Однако я заменил tabular*на tabular, поскольку в таблице довольно много горизонтального пустого пространства. Я добавил несколько \addlinespaceкоманд, чтобы придать таблице больше структуры.

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs, multirow}
\usepackage[referable]{threeparttablex}
\usepackage{calc}

\begin{document}
\begin{table}[h]
  \centering
  \caption{Transfer Entropy Results}
  \label{tab1:entropy}
  \begin{threeparttable}
\begin{tabular}{r@{}l 
                             S[input-open-uncertainty,
                               input-close-uncertainty,
                               table-space-text-post={**},
                               table-space-text-pre={(},
                               table-format=-1.3]
                             }
    \toprule
\multicolumn{2}{c}{Causal test}     &  {Regime 1}  \\
    \midrule
\multirow{2}{*}{Bitcoin} & \multirow{2}{*}{~\(\rightarrow\)~ IPImicro}  & 0.015     \\
                                               & & (-4.71)   \\     \addlinespace
\multirow{2}{*}{IPImicro} & \multirow{2}{*}{~\(\rightarrow\)~ Bitcoin} & 0.091**   \\
                                               & & (-4.710)  \\     \addlinespace
\multirow{2}{*}{Bitcoin} & \multirow{2}{*}{~\(\rightarrow\)~ IPImacro} & 0.007     \\
                                               & & (-4.710)  \\     \addlinespace
\multirow{2}{*}{IPImacro} & \multirow{2}{*}{~\(\rightarrow\)~ Bitcoin} & 0.073**   \\
                                               & & (-4.710)  \\
    \bottomrule
  \end{tabular}
  \begin{tablenotes}[para,flushleft]\footnotesize
  \note: This table presents the Transfer Entropy estimation results.  
  Standard deviation in parentheses.
  \item[***] $p < 0.01$; 
  \item[**]  $p < 0.05$; 
  \item[*]   $p < 0.10$.
  \end{tablenotes}
  \end{threeparttable}
\end{table}
\end{document}

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

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