LuaTeX format with extended plainTeX macros
Petr Olsak, 2020, 2021, 2022, 2023, 2024, 2025, 2026
Cesky
optex-doc.pdf
tex-nutshell.pdf
optex-math.pdf
omls.pdf
op-catalog.pdf
op-slides.pdf
Tugboat articles
[1]
[2]
[3]
Discussion forum for users
Packages documentation:
math,
mte,
minim-mp,
pdfextra
OpTeX at github (current)
Releases:
optex-120.zip (21 May 2026)
optex-119.zip (24 Feb 2026)
optex-118.zip (26 May 2025)
optex-117.zip (25 Feb 2025)
optex-116.zip (10 Dec 2024)
optex-115.zip (28 Jun 2024)
optex-114.zip (14 Feb 2024)
optex-113.zip (16 Nov 2023)
optex-112.zip (24 May 2023)
optex-111.zip (9 Mar 2023)
optex-110.zip (9 Feb 2023)
optex-109.zip (3 Dec 2022)
optex-108.zip (4 Aug 2022)
optex-107.zip (17 May 2022)
optex-106.zip (11 Mar 2022)
optex-105.zip (28 Jan 2022)
optex-104.zip (26 Aug 2021)
optex-103.zip (03 Jun 2021)
optex-102.zip (25 Apr 2021)
optex-101.zip (18 Mar 2021)
optex-100.zip (09 Feb 2021)
optex-19.zip (14 Jan 2021)
optex-18.zip (21 Dec 2020)
older
Links:
Tips, tricks, howto
OpTeX at github
OpTeX mailing list
FTP site, history
CTUstyle for OpTeX
OpTeX is a LuaTeX format (LuaHBTeX format since 2025) based on Plain TeX macros
(by Donald Knuth). The main features are:
OpTeX should be a modern plain TeX with power from OPmac (fonts selection
system, colors, external graphics, references, hyperlinks...) with Unicode
fonts.
- OpTeX keeps the simplicity (like in plain TeX and
OPmac macros).
- There are no old obscurities concerning various 8-bit encodings and
various engines. We are using only Unicode and only LuaHBTeX.
- OpTeX provides a powerful font selection system (for Unicode font
families, of course).
- OpTeX supports hyphenations of all languages installed in your TeX system.
- All features from OPmac macros are copied (for example, you can see
opmac-prospectus.pdf)
- Macros are documented in the same place where code is.
- Documentation of all features is at single place.
- The user namespace of control sequences is separated from internal
namespace of OpTeX and primitives (\foo versus \_foo).
TeXlive includes OpTeX in its last version released at CTAN. You
can process your document by optex document. Try
optex op-demo for example. If the optex command
is not present, try to run luahbtex -fmt optex op-demo.
You can run OpTeX on-line at Overleaf: you can start from
this project.
If you have (an old) TeX distribution without OpTeX, you need LuaHBTeX in version
1.10.0 (2019) or later, luaotfload package 3.12 or later, and you can install OpTeX manually:
unzip optex-(version).zip
cd optex/base
luahbtex -ini optex.ini
The format file is generated. Copy the optex.fmt file somewhere to
your TeX system where format files can be read by LuaHBTeX. Copy *.opm files
to a directory where LuaHBTeX can read them.
You can process your document by
luahbtex -fmt optex document.tex
or you can create an alias with name optex (to luahbtex -fmt
optex) in your system.
Documents
Announcement of version 1.00
February 2021
I published OpTeX for the first time a year ago.
Intensive developmnet took place during that time.
I collected many reports from users and implemented new features.
Thanks for all that reports.
Now, OpTeX has reached a stable state, in my opinion.
I wish to offer users the certainty of the immutability of basic principles of OpTeX
so that they can create their macros. This is time to release version 1.00 of OpTeX and
to remove the word "beta" from the name of the version.
I plan to continue fixing bugs but I will be very careful not to violate basic features
on which users can build their macros. Before I add eventually a new feature,
I will think about the change in detail with regard to this principle.
Enjoy!
License
Public domain. More precisely, it is the same as for
OPmac macros.
Other relevant software by various authors
- unibidi-lua
implements bidi algorithm of the ConTeXt to OpTeX, LuaTeX, LuaLaTeX
(by Udi Fogiel).
- lua-widow-control
Automatically remove widows and orphans from any document
(by Max Chernoff).
- Interface for minim
and tikz packages (by Michal Vlasák).
It is part of OpTeX files in pkg/ directory.
- lualineno
provides flexible line numbering (by Udi Fogiel).
- OpTeXcount
-- a basic python script that analyzes OpTeX source code and counts
words (by Richard Hartmann).
- PanOpTeXum
-- converting documents to OpTeX by pandoc (by Jan Martínek).
- Language definition
file for the GNOME environment
for OpTeX syntax highlighting in text editors (by Hlaváč Jan).
- OpTeX
Sublime Package
for OpTeX syntax highlighting in Sublime Text editor (by Pilař Daniel).
- pdfextra
-- a macro package which enables more special PDF features: audio,
video, transitions, ... (by Michal Vlasák).
- Background grid
for OpTeX documents (by Adam Barla).
- Another slides style
for OpTeX \slides (by Filip Rund).
- OpTeX
for VSCode enables syntax highlithing of OpTeX sources in VSCode and
Snippets (by Filip Spelina).
|