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/esttabssc install estout, replace.ster files) using Stata’s estimates save command; this supercedes the older estwrite packageoutreg2ssc install outreg2, replaceoutreg packagetaboutFor descriptive statistics and tabulations, not regression results
ssc install tabout, replaceorth_outFor summary statistics and orthogonality tables, not regression results
ssc install orth_out, replacefrmttable"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/coeftableCalculated values are saved as json and then inserted into an external tex template
stata-texCalculated values are saved as csv and then inserted into an external tex template
texresultsCalculated values are saved as a set of tex macros
ssc install texresults, replaceregsave/texsaveCalculated values are saved as Stata datasets and then exported as tex
ssc install regsave, replace and ssc install texsave, replacesortobs package can help with ordering variables for tex outputtexdocCalculated values are inserted directly into a tex template included in the do file
ssc install texdoc, replacewrite_matsCalculated values are saved as .ster files, desired values are arranged as a Stata matrix, and then exported as tex
listtabTables are set up as a Stata dataset and then exported as tex
ssc install listtab, replacelisttex 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.