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}
二重線と空白行を削除しました。また、「例のパネル」は(1)、(2)、(3)よりも上位レベルにあるため、最初の2行を入れ替えました。
マイナス記号を中央揃えにせず、*
ではなく単に入力したい場合も\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
もしあなたがタブラックスセットアップでは、書式設定の目的を達成する1つの方法は、マクロを使用することです\rlap
。または、その数式モードのいとこ\mathrlap
(数学ツールパッケージ (package) --それぞれ、**
およびを包みます***
。
非常に基本的な機能しか使用していないため、3つの部分から成るテーブル機械(例えば、\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}