在直接导出表格方面,我是 stata 和 latex 的新手。在阅读了一些文档后,我使用了以下代码(标记变量后):
eststo: quietly regress defgh hello, robust
eststo: quietly regress defgh hello lnGDP, robust
esttab using abc.tex, replace alignment(D{.}{.}{-1}) width(1\hsize) se ar2 title("abc") label addnotes("blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla")
eststo clear
(因为有些人问:不,abc、defgh、hello 和 blablabla……不是真正的回归。我只是用这些替换了我的真名!)
我插入表格如下:
\input{Tables/abc.tex}
我主要有 3 个问题:
1)表格太宽(可能由于 hsize)(我怎样才能告诉 latex 它应该只考虑第一行的宽度?)
2)第二次回归的标题移动到了其他地方(也向左移了一点,但仍然没有到达它原来的位置)
3)我的桌上便签没有被包装起来……也可以把它们放在漂亮的盒子里吗?
感谢您的帮助!
生成的 tex 文件(代码):
\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{abc}
\begin{tabular*}{1\hsize}{@{\hskip\tabcolsep\extracolsep\fill}l*{2}{D{.}{.}{-1}}}
\hline\hline
&\multicolumn{1}{c}{(1)}&\multicolumn{1}{c}{(2)}\\
&\multicolumn{1}{c}{defgh}&\multicolumn{1}{c}{defgh}\\
\hline
Hello Everybody & -0.493\sym{***}& -0.317\sym{***}\\
& (0.106) & (0.0403) \\
[1em]
ln(GDP per capita) & & 6.466\sym{***}\\
& & (0.349) \\
[1em]
Constant & 39.75\sym{***}& 26.45\sym{***}\\
& (1.188) & (0.801) \\
\hline
Observations & 146 & 145 \\
Adjusted \(R^{2}\) & 0.146 & 0.780 \\
\hline\hline
\multicolumn{3}{l}{\footnotesize Standard errors in parentheses}\\
\multicolumn{3}{l}{\footnotesize blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla}\\
\multicolumn{3}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular*}
\end{table}
答案1
使用 的分数
\linewidth
而不是\hsize
。如果您不知道表格的大致宽度,请使用普通tabular
-environment 而不是tabular*
。然后 LaTeX 将计算表格宽度。另外,我已经更正了 的设置extracolsep
。加载标题包以正确格式化标题。我还建议将表格包装在三部分表-环境,这是将标题宽度调整为表格宽度的最简单方法。额外的好处是您可以更好地控制表格注释。
您必须将
multicolumns
包含长文本的定义为p{<wd>}
与表格宽度大致相同的列。此外,blablabla
是一个长单词,而 LaTeX 无法将其拆分。您必须设置断点(空格等)或使用可以自动拆分长单词的包,例如序列分割。
如果你的“blabla”是一个句子,只需使用以下命令:
\multicolumn{3}{@{}p{0.70\linewidth}@{}}{\footnotesize Write your sentence
here, and it can be many words as you desire. The problem with no-breakable
long word is not there in a sentence of words.}\\
- 我已经加载书签并将 改为
hline
、\toprule
和\midrule
。bottomrule
这样可以在规则上方和下方留出更多空间。此外,我还用 增加了文本和规则之间的空间。此外,我还通过在列声明的开头和结尾\setlength{\extrarowheight}{1pt}
添加 来删除左右侧边距。@{}
\documentclass{article}
\usepackage{array, dcolumn, seqsplit, booktabs, threeparttable}
\usepackage[format=hang, justification=raggedright, textfont=it]{caption}
\setlength{\extrarowheight}{1pt}
\begin{document}
\noindent\begin{table}[tbp]
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\begin{threeparttable}
\caption{Abc - some more text to see if the captiontext wraps as I assumed}
\begin{tabular*}{0.75\linewidth}{@{}l@{\extracolsep{\fill}}*{2}{D{.}{.}{-1}}@{}}
\toprule
&\multicolumn{1}{c}{(1)}&\multicolumn{1}{c}{(2)}\\
&\multicolumn{1}{c}{defgh}&\multicolumn{1}{c}{defgh}\\
\midrule
Hello Everybody & -0.493\sym{***}& -0.317\sym{***}\\
& (0.106) & (0.0403) \\
[1em]
ln(GDP per capita) & & 6.466\sym{***}\\
& & (0.349) \\
[1em]
Constant & 39.75\sym{***}& 26.45\sym{***}\\
& (1.188) & (0.801) \\
\midrule
Observations & 146 & 145 \\
Adjusted \(R^{2}\) & 0.146 & 0.780 \\
\bottomrule
\multicolumn{3}{@{}l@{}}{\footnotesize Standard errors in parentheses}\\
\multicolumn{3}{@{}p{0.70\linewidth}@{}}{\framebox{\parbox{\linewidth
{\footnotesize
\seqsplit{blablablablablablalablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablabla}}}}\\
\multicolumn{3}{@{}l@{}}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular*}
\end{threeparttable}
\end{table}
\end{document}