向外部表添加标题

向外部表添加标题

我有一个由统计包 Stata 生成的外部表,如下所示:

sysuse auto
estimates clear
eststo, title("OLS"): reg price mpg
esttab using "~/Desktop/table.tex", replace title(My OLS Model)

该文件table.tex如下所示:

\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{My OLS Model}
\begin{tabular}{l*{1}{c}}
\hline\hline
            &\multicolumn{1}{c}{(1)}\\
            &\multicolumn{1}{c}{price}\\
\hline
mpg         &      -238.9\sym{***}\\
            &     (-4.50)         \\
[1em]
\_cons      &     11253.1\sym{***}\\
            &      (9.61)         \\
\hline
\(N\)       &          74         \\
\hline\hline
\multicolumn{2}{l}{\footnotesize \textit{t} statistics in parentheses}\\
\multicolumn{2}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{table}

我将其输入到 LaTeX 主文档中,如下所示:

\documentclass{article}
\usepackage{booktabs}
\begin{document}
\input{table.tex}
\end{document}

我有两个问题:

  1. 是否可以在主文档中此表的底部添加可在主文件中编辑的注释(而不是修改table.tex文件)?
  2. 是否可以从主文档覆盖标题?

答案1

您没有使用\label内部的table来引用它,也没有使用可选参数来\caption引用不同的 LoT 条目。因此,我们可以重新定义\caption以执行任何您想要的操作,包括提供新的标题。

此外,我们使用etoolbox通过以下方式修补\end{tabular}以插入任意内容\AfterEndEnvironment{tabular}

在此处输入图片描述

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{table.tex}
\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{My OLS Model}
\begin{tabular}{l*{1}{c}}
\hline\hline
            &\multicolumn{1}{c}{(1)}\\
            &\multicolumn{1}{c}{price}\\
\hline
mpg         &      -238.9\sym{***}\\
            &     (-4.50)         \\
[1em]
\_cons      &     11253.1\sym{***}\\
            &      (9.61)         \\
\hline
\(N\)       &          74         \\
\hline\hline
\multicolumn{2}{l}{\footnotesize \textit{t} statistics in parentheses}\\
\multicolumn{2}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{table}
\end{filecontents*}

\usepackage{booktabs,etoolbox}

\AfterEndEnvironment{tabular}{\tabularendstuff}
\newcommand{\tabularendstuff}{}

\begin{document}

% Update the \caption
\begingroup
\let\oldcaption\caption
\renewcommand{\caption}[1]{\oldcaption{A new caption}}
\renewcommand{\tabularendstuff}{\par {\footnotesize This is some arbitrary stuff added after \texttt{tabular}.}}
\input{table.tex}
\endgroup

% Original table
\input{table.tex}

\end{document}

所有更改均被分组以将其范围限制在当前table/内tabular

相关内容