我遇到了一些我认为很简单的问题。我正在学习 LaTeX,目前使用 STATA 输出我的大部分 LaTeX 代码,然后将其插入 TeXworks 以生成 PDF。
每当我尝试输出此特定代码时,都会收到错误:
“扫描 \multicolumn 的使用情况时文件结束。”
以下是我使用的代码:
\documentclass{article}
\begin{document}
\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{Closing Date Effects}
\begin{tabular}{l*{1}{cc}}
\hline\hline
&\multicolumn{2}{c}{(1)} \\
&\multicolumn{2}{c}{Voter Turnout (%)}\\
\hline
Registration Closing Date& -0.226\sym{**} & (0.001)\\
Southern State & -8.900 & (0.142)\\
Close x South (Interaction)& 0.0928 & (0.674)\\
Constant & 77.20\sym{***}& (0.000)\\
\hline
Observations & 51 & \\
\hline\hline
\multicolumn{3}{l}{\footnotesize \textit{p}-values in parentheses}\\\
\multicolumn{3}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \ (p<0.001\)}\\
\end{tabular}
\end{table}
\end{document}
我最好的猜测是,我在\multicolumn
部分中缺少一些括号,但我找不到在哪里。我想也许在最后一行:
\multicolumn{3}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \ (p<0.001\)}\\
但无论我使用多少个括号,它仍然会出错。
答案1
存在错误:
%
,之前缺少反斜杠- 您在某些行的末尾使用了三个
\\\
而不是,而在最后一行使用了 。\\
\
- 根据 egreg 的建议,我将数字设置为数学模式。这对于负数尤其重要——否则你会得到短跑而不是负号。
- 而
\textit{}
您应该使用$p$
原样p
数学变量。
笔记:
- 我也使用了
$...$
数学模式,而不是\(
和\)
。但是,后者是推荐的对于数学模式来说,\( 和 \) 是否比美元符号更可取?
代码:
\documentclass{article}
\begin{document}
\begin{table}[htbp]\centering
\def\sym#1{\ifmmode{}^{#1}\else\({}^{#1}\)\fi}
\caption{Closing Date Effects}
\begin{tabular}{l*{1}{cc}}
\hline\hline
&\multicolumn{2}{c}{(1)} \\
&\multicolumn{2}{c}{Voter Turnout (\%)}\\ % <--- Missing a backslash
\hline
Registration Closing Date & $-0.226\sym{**}$ & $(0.001)$\\ % <--- Negative numbers should be in math mode
Southern State & $-8.900$ & $(0.142)$\\
Close x South (Interaction)& $0.0928$ & $(0.674)$\\
Constant & $77.20\sym{***}$ & $(0.000)$\\
\hline
Observations & $51$ & \\
\hline\hline
\multicolumn{3}{l}{\footnotesize $p$-values in parentheses}\\ % <-- had extra backslash
\multicolumn{3}{l}{\footnotesize \sym{*} $p<0.05$, \sym{**} $p<0.01$, \sym{***} $p<0.001$}\\ % <-- missing backslash
\end{tabular}
\end{table}
\end{document}
答案2
使用threepartable
、siunitx
和booktabs
包,需要更少的代码(定义sim
不再有用)以获得更好的效果(中间列的小数点垂直对齐):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[para]{threeparttable}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{siunitx}
\newcolumntype{T}{S[table-figures-decimal = 4,table-figures-integer = 2]}
\begin{document}
\begin{table}[htbp]
\centering
\begin{threeparttable}
\caption{Closing Date Effects}
\begin{tabular}{@{}lT@{\qquad}c@{}}
\toprule
\midrule
&\multicolumn{2}{c}{Voter Turnout\hfill (\%)\tnote{1}}\\
\midrule
Registration Closing Date& -0.226{\tnote{**}} & (0.001)\\%
Southern State & -8.900 & (0.142)\\
Close x South (Interaction)& 0.0928 & (0.674)\\
Constant & 77.20{\tnote{***}}& (0.000)\\
\midrule
Observations & {51} & \\
\midrule
\bottomrule
\end{tabular}
\footnotesize
\begin{tablenotes}
\item[1] $ p $-values in parentheses\\
\item[*] $ p < 0.05 $
\item[**] $ p < 0.01 $
\item [***] $ p<0.001 $
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}