Directory systems/texrocks
README.md
TeXRocks
A minimal (La)TeX distribution powered by lux/luarocks and luaTeX.
Tutorial
- Create a project
# answer some questions of lx lx new my-thesis cd my-thesis
A lux.toml
will be created:
package = "my-thesis" version = "0.1.0" lua = "==5.3" [description] summary = "My thesis" maintainer = "A TeX user" labels = ["thesis"] license = "GPL-3.0"
- Add some dependencies
# LaTeX support lx add -b lualatex # \usepackage{hyperref} lx add -b hyperref # \usepackage{graphicx} lx add -b graphics-cfg # \usepackage{tikz} lx add -b pgf # lua-open main.pdf lx add -t lua-open # lx add -b more packages ...
lux.toml
:
# ... [build_dependencies] lualatex = "X.Y.Z-1" hyperref = "X.Y.Z-1" graphics-cfg = "X.Y.Z-1" pgf = "X.Y.Z-1" [test_dependencies] lua-open = "X.Y.Z-1"
- Edit your document
$EDITOR main.tex
- Tell
lx
how to build, install and open your document
lux.toml
:
# ... [build] type = "command" build_command = "lualatex --interaction=nonstopmode main.tex" [build.install.conf] '../doc/main.pdf' = 'main.pdf' [test] type = "command" command = "lua-open" flags = ["main.pdf"]
- Build and view your document
lx build lx test
This is your project structure:
$ tree -a . ├── .lux # like node_modules/ or .venv/ :) │ ├── .gitignore │ └── 5.3 # pdf's dependencies are build dependencies not runtime │ ├── bin │ ├── build_dependencies │ │ ├── .gitignore │ │ └── 5.3 │ │ ├── bin │ │ │ ├── lualatex # LaTeX compiler │ │ │ └── texlua # Lua interpreter │ │ ├── 1a043a1a092206fb664a8dd394bdf99e526af762fe7282c6ccf49bc0ec23521e-latex-base@2024.11.01-2 │ │ │ ├── etc │ │ │ │ ├── conf │ │ │ │ ├── doc │ │ │ │ │ └── latex │ │ │ │ │ └── base │ │ │ │ │ ├── ... │ │ │ │ │ ├── usrguide.pdf # RTFM │ │ │ │ │ └── ... │ │ │ │ └── tex │ │ │ │ └── latex │ │ │ │ └── base │ │ │ │ ├── ... │ │ │ │ ├── article.cls # \documentclass{article} │ │ │ │ └── ... │ │ │ ├── lib │ │ │ ├── package.rockspec │ │ │ └── src │ │ │ └── ltluatex.lua │ │ ├── 6fcffa0eeadc4a75dc246d6869dcfe79594d6e0114ece5b260b9216a3d40cdfb-amsfonts@3.04-1 │ │ │ ├── etc │ │ │ │ ├── conf │ │ │ │ ├── doc │ │ │ │ │ └── fonts │ │ │ │ │ └── amsfonts │ │ │ │ │ ├── ... │ │ │ │ │ └── README │ │ │ │ ├── fonts │ │ │ │ │ ├── afm │ │ │ │ │ │ └── public │ │ │ │ │ │ └── amsfonts │ │ │ │ │ │ ├── cm # computer modern fonts │ │ │ │ │ │ │ └── ... │ │ │ │ │ │ ├── ... │ │ │ │ │ │ └── symbols # math symbol fonts │ │ │ │ │ │ └── ... │ │ │ │ │ └── ... # more font types │ │ │ │ └── tex │ │ │ │ ├── latex │ │ │ │ │ └── amsfonts │ │ │ │ │ ├── amsfonts.sty # \usepackage{amsfonts} │ │ │ │ │ └── ... │ │ │ │ └── plain │ │ │ │ └── amsfonts │ │ │ │ ├── amssym.def │ │ │ │ ├── amssym.tex # \input{amssym} │ │ │ │ └── cyracc.def │ │ │ ├── lib │ │ │ ├── package.rockspec │ │ │ └── src │ │ ├── ... # more TeX packages │ │ └── lux.lock │ ├── XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-my-thesis@0.1.0-1 │ │ ├── etc │ │ │ ├── conf │ │ │ └── doc │ │ │ └── main.pdf │ │ ├── lib │ │ └── src │ ├── lux.lock │ └── test_dependencies │ ├── .gitignore │ └── 5.3 │ ├── ... │ └── bin │ ├── lua-open │ └── texlua ├── lux.lock # like package-lock.json or requirements.txt ├── lux.toml # like package.json or pyproject.toml └── main.tex
See documents to know more.
Download the contents of this package in one zip archive (38.1k).
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'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 exactly latex-base and no 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: TeXRocks
- use lua to develop TeX packages: texmf
We also provide some related TeX tools, like kpsewhich and texdef written in lua. See official website TeXRocks
Package | TeXRocks |
Home page | https://texrocks.readthedocs.io/ |
Support | https://github.com/ustctug/texrocks/discussions |
Repository | https://github.com/ustctug/texrocks |
Developers | https://github.com/ustctug/texrocks/pulls |
Version | 0.3.6 |
Licenses | GNU General Public License, version 3 |
Maintainer | Zhenyu Wu |
Topics | Distribution |
