昨天看了连玉君老师写的一篇Stata与LaTeX结合的文章,正好最近在学习LaTeX,整理了一下相关代码。Stata是Stata 16,LaTeX是TeX Live 2021。[Stata code]为在Stata里运行的代码,[LaTeX code]为在LaTeX里运行的代码。(TeX Live 2021需要安装的小伙伴也可以私信我哈)

  1. 下载sjlatex.sty文件

[Stata code]

// 输入代码

findit sjlatex

// 点击第3个链接

stata安装命令显示 Java installation not found stata 安装命令代码_交互


// 点击"click here to install",下载文件

stata安装命令显示 Java installation not found stata 安装命令代码_TeX_02


// 找到路径C:\ado\plus\s,查看sjlatex.ado文件位置

// 安装sjlatex.sty

sjlatex install using C:\ado\plus\s\sjlatex

// 安装完毕

stata安装命令显示 Java installation not found stata 安装命令代码_交互_03


// 将文件夹C:\ado\plus\s\sjlatex下的sjlatex文件夹复制到LaTeX安装文件F:\LaTeX\texlive\2021\texmf-dist\tex\latex下(导入stata.sty),这个目录存放了LaTeX的.tex文件,这里我用了自己的路径,小伙伴们可以找一下相应的路径

// win+R输入cmd,在cmd中输入texhash更新texlive宏包(载入stata.sty),防止之后usepackage{stata}时发生报错

// 如果没有texhash更新宏包也可以直接用路径进行导入,如下面注释行里的F:/LaTex/texlive/2021/texmf-dist/tex/latex/sjlatex/stata

// 更新宏包完毕,可以开始运行了

  1. 复现Stata帮助文件

[LaTeX code]

\documentclass{article}
% \usepackage{F:/LaTex/texlive/2021/texmf-dist/tex/latex/sjlatex/stata}
\usepackage{stata}
\begin{document}
\begin{stsyntax}
\dunderbar{reg}ress {\it depvar}
\optindepvars\
\optif\
\optin\
\optweight\
\optional{,
\underbar{noc}onstant
\underbar{h}ascons tsscons vce({\it vcetype\/}) \underbar{l}evel(\num)
\underbar{b}eta
\underbar{ef}orm(\ststring)
\underbar{nohe}ader plus
\dunderbar{dep}name(\varname) mse1}
\end{stsyntax}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_交互_04

  1. 复现Stata命令代码

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{stlog}
sysuse auto, clear 
sum price 
list price if foreign == 1 
reg price mpg weight length
\end{stlog}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_Stata_05

  1. 复现Stata储存结果文本

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{stresults}
\stresultsgroup{Scalars} \\
\stcmd{e(N)} & number of observations & \stcmd{e(F)} & $\scriptstyle F$ statistic\\
\stcmd{e(mss)} & model sum of squares & \stcmd{e(rmse)} & root mean squared error \\
\stcmd{e(df\_m)}& model degrees of freedom& \stcmd{e(ll\_r)}& log likelihood \\
\end{stresults}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_下载文件_06

  1. 复现Stata [list] 命令结果

[Stata code]

/*Install package listtex*/
ssc install listtex
/*Use listtex code*/
sysuse auto, clear 
#delimit;
listtex make price mpg foreign in 1/6 using listex1, type rstyle(tabular) head("\begin{tabular}{rrrr}"
"\textit{Make}&\textit{Price}&\textit{Mpg}&\textit{Foreign}\\") foot("\end{tabular}");
#delimit cr

// 上述命令运行之后会在Stata结果窗口生成如下LaTeX代码

stata安装命令显示 Java installation not found stata 安装命令代码_交互_07


// 将生成的LaTeX代码粘贴至"begin{document}"与"end{document}"之间进行运行即可

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{tabular}{rrrr}
\textit{Make}&\textit{Price}&\textit{Mpg}&\textit{Foreign}\\
AMC Concord&4,099&22&Domestic\\
AMC Pacer&4,749&17&Domestic\\
AMC Spirit&3,799&22&Domestic\\
Buick Century&4,816&20&Domestic\\
Buick Electra&7,827&15&Domestic\\
Buick LeSabre&5,788&18&Domestic\\
\end{tabular}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_Stata_08

  1. 复现Stata结果窗口原始结果

// 用sysuse auto,clear导入auto.dta数据,将Stata结果窗口的原始回归结果导出

[Stata code]

sjlog using output1, replace
sysuse auto, clear 
regress mpg weight length 
sjlog close, replace nolog

// 生成output1.log.tex文件,注意Stata生成的output1.log.tex文件的路径应当与texlive当前工作路径一致,不一致时要按output1.log.tex文件当前所在路径进行导入

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{stlog}
\input{output1.log.tex}\nullskip
\end{stlog}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_TeX_09

  1. 输出相关系数表

[Stata code]

// 生成corrtex1.tex

/*Install package corrtex*/
ssc install corrtex
/*Use corrtex code*/
corrtex price mpg weight length gear_ratio, file(corrtex1) /// 
title(\texttt{corrtex}) key(tab:corrtex1) sig replace

[LaTeX code]

// 调用corrtex1.tex

\documentclass{article}
\begin{document}
\input{corrtex1.tex}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_交互_10

  1. 输出回归结果表

// 生成esttab1.tex

[Stata code]

*esttab1.tex
qui gen mpg2 = mpg^2
qui reg price mpg length weight 
est store model1 
qui reg price mpg mpg2 length weight 
est store model2 
qui reg price mpg mpg2 length weight foreign 
est store model3
esttab model1 model2 model3 using esttab1.tex, replace

// 调用esttab1.tex

[LaTeX code]

\documentclass{article}
\usepackage{amsmath, stata}
\begin{document}
\input{esttab1.tex}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_Stata_11


// 生成esttab2.tex

[Stata code]

*esttab2.tex
#delimit;
esttab model* using esttab2.tex, replace 
       title("\stcmd{OLS Regression Output}"\label{tab:esttab2}) 
	   mtitle("Model A" "Model B" "Model C") b(%6.3f) t(%6.3f) 
	   star(* 0.1 ** 0.05 *** 0.01) ar2 coeflabels(mpg2 "mpg$^2$" _cons Constant); 
#delimit cr

// 调用esttab2.tex

[LaTeX code]

\documentclass{article}
\usepackage{amsmath, stata}
\begin{document}
\input{esttab2.tex}
\end{document}

// 结果如下

stata安装命令显示 Java installation not found stata 安装命令代码_Stata_12