TeXRocks, a minimal (La)TeX distribution
TeXRocks is a minimal (La)TeX distribution powered by Luarocks/Lux and LuaTeX.
It has the following features:
- virtual environment: all TeX packages are installed to
.lux/5.3/XXXXX-package_name@version/, like nodejs'snode_modules/and python's.venv/. After development of PDF, You can delete it safely, and it will not affect your next development of PDF. - minimal: we only install required packages
- package version control: when you declare
latex-base == "2025.06.01-1", it will install https://luarocks.org/modules/freed-wu/latex-base/2025.06.01-1 not other versions! pin the version like nodejs'spackage.jsonand python'srequirements.txt - package installation in parallel: install many packages at the same time
- a server to host compiled TeX packages: https://ustctug.github.io/texrocks/
- use lua to develop TeX packages: https://luarocks.org/m/texmf
We also provide some related TeX tools, like kpsewhich and texdef written in lua. See official website https://texrocks.readthedocs.io/
Quick Start
First coming?
- tutorial: the steps to build a TeX project
- install and configure: read it before all examples
- draw a graph: an example for LaTeX
- use bibliography: another example for LaTeX
- write markdown: try markdown!
TeX Dialects
Which TeX do you want to use?
- plainTeX: first TeX
- LaTeX: most people needed TeX
- TeXinfo: GNU's TeX
- sdLuaTeX: speedata's TeX
- A toy TeX: how to create a new TeX dialect?
TODO:
- ConTeXt
TeX Tools
Some useful tools for development!
Developed by others
- l3build: a tool to test/build/pack TeX packages developed by LaTeX 3 team
- texdoc: a tool to search document of any TeX package developed by TeX Live team. It needs an extra configuration.
- luafindfont: a simple tool to search fonts
Developed by ours
- tlua: a texlua more like lua
- lua-open: view your PDF
- texdef: which TeX package defines
\macro? - kpsewhich: where is TeX package XXX?
- epstopdf: call ghostscript to convert eps to pdf
- texcat: a new syntax highlight system to replace minted based on python's pygments
- luarocks-build-l3build: Luarocks build backend for l3build.
TODO:
- latexmk: read XXX.log to decide if rerun TeX compiler. So far you have to rerun lualatex by yourself.
Learn More
Know what is under the hood.
- How to pack a TeX package: More TeX packages are needed: CTAN ~3000 v.s. https://ustctug.github.io/texrocks/ ~100. Welcome to pack!
- How texrocks work: see its principle.
- Roadmap: which features texrocks have supported and will support?
Others
- manifest: list all current TeX packages
- rocks: some packages cost many time to build. We provide compiled packages for them!
- repository: git repository, also include this website.
- CTAN: CTAN homepage
Modules
API reference for developers| texrocks | library for luatex, lualatex, luatexinfo and texlua |
| epstopdf | library for epstopdf |
| kpathsea | library for kpsewhich |
| open | library for lua-open |
| sdluatex | library for sdluatex |
| texcat | library for texcat |
| texdef | library for texdef and latexdef |