readthedocs pre-commit.ci status github/workflow
github/downloads github/downloads/latest github/issues github/issues-closed github/issues-pr github/issues-pr-closed github/discussions github/milestones github/forks github/stars github/watchers github/contributors github/commit-activity github/last-commit github/release-date
github/license github/languages github/languages/top github/directory-file-count github/code-size github/repo-size github/v
A minimal (La)TeX distribution powered by lux/luarocks and luaTeX.
- 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
lxhow 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 testThis 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.