Stata workflows for generating LaTeX output
Stata Table Gallery (sample tables with code; contributions welcome!)
A variety of packages (and manual techniques) are available for programmatically generating LaTeX output using Stata.
Generally, more automated approaches such as estout
/esttab
make it easy to quickly generate nearly-production-ready output, but make it more difficult (if not impossible) to implement significant customization. (That is, costs may be convex.) Automated approaches may also work best with interactive and exploratory analysis, since attractively formatted results can also be displayed as Stata output or exported as simple text or csv files.
Semi-automated approaches such as json-this
/coeftable
and stata-tex
generally require manually creating LaTeX code to generate even simple tables, but their output is fully customizable. (That is, costs may be concave.)
Semi-automated approaches often involve saving calculated values in an external file before generating LaTeX output. (This is also possible with automated approaches using Stata’s estimates save
command.) While slightly more complicated, this separation of analysis from table generation has real advantages. For example, saving calculated values
These packages generate tex files (and perhaps other formats) with customization via Stata command options.
estout
/esttab
ssc install estout, replace
.ster
files) using Stata’s estimates save
command; this supercedes the older estwrite
packageoutreg2
ssc install outreg2, replace
outreg
packagetabout
For descriptive statistics and tabulations, not regression results
ssc install tabout, replace
orth_out
For summary statistics and orthogonality tables, not regression results
ssc install orth_out, replace
frmttable
"A programmer's command to write formatted Word or TeX tables from a matrix of statistics," frmttable
is the command that underlies outreg
, but can also be used directly to generate more customized output
These packages typically fill in a manually created tex template with calculated values.
json-this
/coeftable
Calculated values are saved as json and then inserted into an external tex template
stata-tex
Calculated values are saved as csv and then inserted into an external tex template
texresults
Calculated values are saved as a set of tex macros
ssc install texresults, replace
regsave
/texsave
Calculated values are saved as Stata datasets and then exported as tex
ssc install regsave, replace
and ssc install texsave, replace
sortobs
package can help with ordering variables for tex outputtexdoc
Calculated values are inserted directly into a tex template included in the do file
ssc install texdoc, replace
write_mats
Calculated values are saved as .ster
files, desired values are arranged as a Stata matrix, and then exported as tex
listtab
Tables are set up as a Stata dataset and then exported as tex
ssc install listtab, replace
listtex
packageparmest
package can produce Stata datasets of estimated parametersThese approaches are usually used to more fully integrate analysis into document creation, but can also be used to generate LaTeX output (perhaps requiring a tool like pandoc to convert from markdown or HTML to LaTeX).
dyntext
command (text, including tex source) or dyndoc
command (markdown)markstat
package by Germán Rodríguezoutsheet
(per Damon Jones’ Twitter thread)file write
(per Paul Goldsmith-Pinkham’s example)extract-from-stata
(package page)stargazer
package for LaTeX output)I created this page in response to Twitter discussions suggesting there’s interest in learning more about the wide range of techniques researchers use to work with Stata and LaTeX. I also wanted to learn more about how to use github (where this page is hosted).
I added the resources I was aware of, and quickly characterized them as best I could. Please feel free to suggest additions or updates, either by submitting pull requests to the github respository (if you know how to do so), or by contacting me directly.