셀의 모든 기호가 아닌 숫자를 기준으로 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}