---ldoc config ---@diagnostic disable: lowercase-global -- luacheck: ignore 111 project = "texrocks" title = "TeXRocks, a minimal (La)TeX distribution" format = "markdown" pretty = 'lxsh' dir = "_readthedocs/html" template = "assets/html" readme = { "README.md", "docs", "_readthedocs/markdown", -- for build.lua [0] = [[ 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's `node_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 not other versions! pin the version like nodejs's `package.json` and python's `requirements.txt` - package installation in parallel: install many packages at the same time - a server to host compiled TeX packages: - use lua to develop TeX packages: We also provide some related TeX tools, like kpsewhich and texdef written in lua. See official website ]] } file = { "lua", "_readthedocs/lua", } description = title full_description = readme[0] .. [[ ## Quick Start First coming? - [tutorial](topics/README.md.html): the steps to build a TeX project - [install and configure](topics/install.md.html): read it before all examples - [draw a graph](topics/demo-tikz.md.html): an example for LaTeX - [use bibliography](topics/demo-bib.md.html): another example for LaTeX - [write markdown](topics/demo-markdown.md.html): try markdown! - [write a thesis for ieeetran](topics/demo-ieeetran.md.html): a complex project. ## TeX Dialects Which TeX do you want to use? - [plainTeX](topics/luatex.md.html): first TeX - [LaTeX](topics/lualatex.md.html): most people needed TeX - [TeXinfo](topics/luatexinfo.md.html): GNU's TeX - [sdLuaTeX](topics/sdluatex.md.html): [speedata](https://www.speedata.de/)'s TeX - [A toy TeX](topics/initex.md.html): 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 - light-latex-make: read XXX.log to decide if rerun TeX compiler. - texdoc: a tool to search document of any TeX package developed by TeX Live team. It needs an extra [configuration](topics/texdoc.md.html). - luafindfont: a simple tool to search fonts ### Developed by ours - [texdef](topics/texdef.md.html): which TeX package defines `\macro`? - [epstopdf](topics/epstopdf.md.html): call ghostscript to convert eps to pdf - [texcat](https://tree-sitter-highlight.readthedocs.io/en/latest/resources/texcat.html): a new syntax highlight system to replace [minted](https://github.com/gpoore/minted) based on python's [pygments](https://pygments.org/) - [luarocks-build-l3build](topics/luarocks-build-l3build.md.html): Luarocks build backend for packing TeX packages. More TeX packages are needed: CTAN ~3000 v.s. ~100. Welcome to pack! ## Learn More Know what is under the hood. - [Structure](topics/structure.md.html): What does it consist of? - [Principle](topics/principle.md.html): How does it work? - [Roadmap](topics/roadmap.md.html): which features TeXRocks have supported and will support? ## Others - [manifest](https://luarocks.org/m/texmf): list all current TeX packages - [rocks](https://ustctug.github.io/texrocks/): some packages cost many time to build. We provide compiled packages for them! - [repository](https://github.com/ustctug/texrocks): git repository, also include this website. - [CTAN](https://ctan.org/pkg/texrocks): CTAN homepage ## Related Projects - [mmTeX](https://github.com/vlasakm/mmtex): the earliest plainTeX distribution. - [aplTeX](https://github.com/RadioNoiseE/apltex): inspiration source - [TinyTeX](https://yihui.org/tinytex): a small customized TeX Live fork. - [TeX Live](https://tug.org/texlive): official (La)TeX distribution - [MikTeX](https://miktex.org): another famous (La)TeX distribution ]]