tabularx 환경에서 열의 수평 정렬

tabularx 환경에서 열의 수평 정렬

셀의 모든 기호가 아닌 숫자를 기준으로 tabularx를 사용하여 다음 표의 열을 가운데에 배치하려면 어떻게 해야 합니까? 지금은 별을 고려하여 중앙에 맞춰져 있지만 숫자만을 기준으로 중앙에 맞추고 싶습니다.

\documentclass{article}
\usepackage[flushleft]{threeparttable}
\usepackage{tabularx}

\newcolumntype{Y}{>{\centering\arraybackslash}X}

\begin{document}

\begin{table}[!htb]
\caption{Example table}
\footnotesize
\centering
\begin{threeparttable}
\begin{tabularx}{\linewidth}{lYYY} \hline \hline
& & & \\
& (1) & (2) & (3) \\
& & & \\
& \multicolumn{3}{c}{Example Panel} \\ \cline{2-4}
Coefficient             &  -10     &   -211** &   260*** \\
Standard Error          & (414)    &   (110)  &   (90)   \\
Observations            &  123,370 &  32,268  &  73,102  \\
Variation               &  0.08    &  0.08    &  0.06    \\
Statistics              &  13,115  &  12,826  & 14,031   \\
& & & \\
\hline \hline
\end{tabularx}
\begin{tablenotes}
\fontsize{9pt}{9pt}\selectfont
\item
\textit{Notes:}
Some table notes
\end{tablenotes}
\end{threeparttable}
\end{table}

\end{document}

답변1

여기 당신은 tabular*와 함께 있습니다 tabularx.

***의 너비가 약 4분의 1인 것을 눈으로 측정했습니다. 별표는 너비가 0인 상자에 조판되어 있습니다.

빼기 기호를 올바르게 표시하고(항목은 수학으로 조판됨) 쉼표를 일반 수학 기호로 표시하기 위해 더러운 속임수가 사용됩니다.

caption캡션과 표 사이에 적절한 간격이 적용되도록 하십시오 . 기본값은 article캡션을 배치하는 것입니다.아래에테이블.

\documentclass{article}
\usepackage[flushleft]{threeparttable}
\usepackage{booktabs,array,caption}

\newcommand{\st}[1]{\makebox[0pt][l]{#1}}
\newcommand{\decimalcomma}{\mathcode`,=\inteval{\mathcode`,-"6000}}

\begin{document}

\begin{table}[!htbp]
\centering

\caption{Example table}

\begin{threeparttable}
\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l
  *{3}{>{$\decimalcomma}c<{$}}
  @{\quad}}
\toprule
& \multicolumn{3}{c}{Example Panel} \\
\cmidrule(l){2-4}
& (1) & (2) & (3) \\
\midrule
Coefficient             &  -10     &   -211\st{**} &   260\st{***} \\
Standard Error          & (414)    &   (110)       &   (90)   \\
Observations            &  123,370 &  32,268       &  73,102  \\
Variation               &  0.08    &  0.08         &  0.06    \\
Statistics              &  13,115  &  12,826       &  14,031   \\
\bottomrule
\end{tabular*}
\begin{tablenotes}
\small
\item \textit{Notes:} Some table notes
\end{tablenotes}
\end{threeparttable}

\end{table}

\end{document}

이중 규칙과 빈 행을 제거했습니다. 또한 “Example Panel”이 (1), (2), (3)보다 상위 레벨에 있기 때문에 처음 두 줄을 바꿨습니다.

여기에 이미지 설명을 입력하세요

마이너스 기호가 센터링에 참여하지 않고 대신 입력되도록 하려면 그렇게 *\st{*}수 있습니다. 그러나 이것이 항상 작동하지 않더라도 나를 비난하지 마십시오.

\documentclass{article}
\usepackage[flushleft]{threeparttable}
\usepackage{booktabs,array,caption}

\newcommand{\st}[1]{\makebox[0pt][l]{#1}}
\newcommand{\decimalcomma}{\mathcode`,=\inteval{\mathcode`,-"6000}}
\newcommand{\zerowidthminus}{%
  \mathchardef\standardminus=\mathcode`-
  \begingroup\lccode`~=`-\lowercase{\endgroup\def~}{\llap{$\standardminus$}}%
  \mathcode`-="8000
}
\newcommand{\noteasterisk}{%
  \begingroup\lccode`~=`*\lowercase{\endgroup\let~}\zwast
  \mathcode`*="8000
}
\newcommand{\zwast}{\hbox to 0pt\bgroup*\checkast}
\newcommand{\checkast}[1]{*\futurelet\next\checkastaux}
\newcommand{\checkastaux}{%
  \ifx\next*%
    \expandafter\checkast
  \else
    \expandafter\hss\expandafter\egroup
  \fi
}
\newcolumntype{N}{>{$\decimalcomma\zerowidthminus\noteasterisk}c<{$}}

\begin{document}

\begin{table}[!htbp]
\centering

\caption{Example table}

\begin{threeparttable}
\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l
  *{3}{N}
  @{\quad}
}
\toprule
& \multicolumn{3}{c@{\quad}}{Example Panel} \\
\cmidrule(l){2-4}
& (1) & (2) & (3) \\
\midrule
Coefficient             &  -10     &   -211** &   260***\\
Standard Error          & (414)    &   (110)       &   (90)   \\
Observations            &  123,370 &  32,268       &  73,102  \\
Variation               &  0.08    &  0.08         &  0.06    \\
Statistics              &  13,115  &  12,826       &  14,031   \\
\bottomrule
\end{tabular*}
\begin{tablenotes}
\small
\item \textit{Notes:} Some table notes
\end{tablenotes}
\end{threeparttable}

\end{table}

\end{document}

여기에 이미지 설명을 입력하세요

유일한 "비자동" 부분은 별표의 수와 마지막 열의 위치를 ​​측정하여 별표가 테이블 밖으로 튀어나오지 않도록 하는 것입니다. 당신이 없으면 @{\quad}얻을 수

여기에 이미지 설명을 입력하세요

답변2

계속 고수하고 싶다면표 형식설정 시 서식 지정 목표를 달성하는 한 가지 방법은 매크로 \rlap또는 해당 수학 모드 사촌 \mathrlap(제공:수학 도구패키지) - 각각 **및 를 넣습니다 ***.

당신은 매우 기초적인 기능만 사용하기 때문에세 부분으로 나눌 수 있는기계(예: \tnote지시어 없음)라면 환경을 완전히 삭제하겠습니다 threeparttable. 그리고 \hline\hline지시문과 여러 개의 빈 줄을 \toprule, \cmidrule\bottomrule지침 으로 바꾸겠습니다 .책꽂이패키지. 마지막으로 자료 \footnotesize에는 필요하지 않습니다 tabularx.

여기에 이미지 설명을 입력하세요

\documentclass{article}
\usepackage{tabularx}  % for 'tabularx' env. and 'X' col. type
\newcolumntype{Y}{>{\centering\arraybackslash}X} % centered version of 'X'
\newcolumntype{Z}{>{$}Y<{$}} % automatic math mode

\usepackage{booktabs}  % for well-spaced horizontal rules
\usepackage{mathtools} % for '\mathrlap' macro
\usepackage{icomma}    % no special treatment of ',' in math mode

\begin{document}

\begin{table}[!htb]
\caption{Example table}

\smallskip
\begin{tabularx}{\linewidth}{@{} l ZZZ @{}}
\toprule
& (1) & (2) & (3) \\[1ex]
& \multicolumn{3}{c@{}}{Example Panel} \\ 
\cmidrule(l){2-4}
Coefficient    &  -10   & -211\mathrlap{^{**}} & 260\mathrlap{^{***}} \\
Standard Error & (414)    &   (110)  &   (90)   \\
Observations   &  123,370 &  32,268  &  73,102  \\
Variation      &  0.08    &  0.08    &  0.06    \\
Statistics     &  13,115  &  12,826  & 14,031   \\
\bottomrule
\end{tabularx}

\smallskip\small
\textit{Notes:} Some stuff \dots 
\end{table}

\end{document}

관련 정보