OpTeX: the LuaTeX format based on Plain TeX and OPmac

Author:    Petr Olsak, <petr@olsak.net>

Co-author: Michal Vlasák, <lahcim8@gmail.com>
           (Lua code, colors by attributes, interface to tikz, minim)

This software is in public domain.

See http://petr.olsak.net/optex

Files:

base/  ... basic set of macro files used when optex.fmt is generated
           and more basic macros loaded on demand during document processing.
demo/  ... examples: short document: op-demo.tex, short letter: op-letter.tex,
           presentation slides: op-slides.tex.
pkg/   ... external macros. Maybe, they can be created by other authors if 
           the macro file conforms to the rules given in the section 2.2.5 
           in the OpTeX documentation.
doc/   ... PDF version of the OpTeX documentation and sources.

History:

<1.06> Mar. 2022:
       \transparency selector using attributes implemented.
       Interface to minim (minim-mp.opm, minim-pdf.opm) introduced.
       Interface to TikZ (tikz.opm) improved.
       PDF page resources: management by Lua code implemented.
       Possibility of preloading no fonts to the format by \let\fontspreload=\relax.
       hisyntax-lua.opm introduced.
       plain-at.opm macros included to the format.
       Language/hyphenations macros reimplemented, phrases file introduced.
       Font selection: low level macros reimplemented, \fontsel introduced.
<1.05> Jan. 2022:
       \_par used internally instead \par if \partokenname is available.
       Extended format \ref[label]{text} and \pgref[label]{text} introduced.
       Fixed a few bugs.
<1.04> Aug. 2021:
       Color handling reimplemented, LuaTeX's attributes are used now.
       Loading Unicode math fonts reimplemented, (s)script size given by font.
       Better compatibility with TikZ using tikz.opm package.
       .ref file: consistency checking added.
       Versions of .opm files printed only to .log.
       \tracingmacros=3 or 4 enabled.
       Bugs fixing.
<1.03> Jun. 2021:
       mte: Package for MicroTypographic Extensions released.
       Erewhon: font family support added.
       \rgbcmykmap for RGB-CMYK mapping introduced.
       \table: sum of \tsizes allowed different from one.
       doc: hyperlinks from Index created.
       \url and \link macros re-written.
       Bugs fixing.
<1.02> Apr. 2021
       Location CTAN:macros/luatex/optex moved to CTAN:macros/optex (similarly for TDS).
       NewComputerModern font support added.
       Microtypography support added.
       Various colors for links can be declared by \def\_<type>linkolor.
       unimath-codes: \nabla math-code set similar as \Delta.
       Up to date version of UnicodeData.txt read during format generation.
       Reading mathclacss.opm improved.
       slides: hyperlink destinations allowed in \slideshow mode too.
       \bibpart allows to create independent bib-lists in single document.
       \setwordspace: format of the parameter improved.
<1.01> Mar. 2021
       Minor code fixes (thanks to reports from users).
       LibreCaslon font file added.
       two new callbacks from new LuaTeX 1.13 added to optex.lua
       active * (in lists) works as normal in math mode.
       f-heros(\slides): additional font XITSMath loaded (to the base FiraMath font).
       \_xhsize seting added to \margins.
<1.00> Feb. 2021
       The OMLS (OpTeX Markup Language Standard) was developed. It helps to create
       convertors from/to OpTeX documents and similar applications.
       \pdfunidef re-imeplemted.
       \thisoutline introduced.
       \verbchar introduced instead \activettchar.
       Bugs fixing.
<0.19> Jan. 2021
       emoji support as pkg/emoji.opm.
       non-braakable places generated by luavlna, suported as pkg/vlna.opm.
       \begblock...\endblock introduced.
       comment character allowed after \begtt.
       more robust macros: \replstring, \table.
       complete revision of documentation, spelling corrections.
       Several bugs fixed.
<0.18> Dec. 2020
       Font support for next 9 families added.
       Font selection system improved.
       Documentation (especially about font selection system) corrected.
       Macros supporting key=value included to the format.
       \foreach macro improved.
       Concept of multilang in bib rewritten.
       \opwarning format changed (line numbers are printed too).
       Several bugs fixed.
<0.17> Nov. 2020
       optex.lua introduced (instead external ltluatex.lua)
       hyph.patterns are loaded directly by \patterns, not using lua code
       \commentchars introduced (comments which are able to interrupt verbatim mode)
<0.16> Oct. 2020
       callback.register_x introduced, namespaces for packages corrected
       kerkis and EBGaramond fontfiles added
       little corrections
       optex-math manual: Index added 
<0.15> Jun. 2020
       Release for Overleaf - TL2020.
       More vertical space above in \chap and \secc.
<0.14> Jun. 2020
       Typeseting Math with OpTeX: new document added.
       Math macros corrected.
       In-line verbatim in section titles allowed.
       \eqbox implemented.
       "\mnote up", "\displaylines to" (new features implemented)
<0.13> May 2020
       \table have more features: \tabskip, \table to, \table pxto, \vspan
       The \eqalign reimplemented to be more flexible.
       The boundary character ":" introduced in the \table.
       \| undefined in 8bit math: bug fixed.
       \isnextchar: \let\tmp=#1 -> \let\tmp= #1 
<0.12> May 2020
       The external macro qrcode.opm introduced
       New directory structure: base/, demo/, pkg/, doc/ introduced.
       \load macro introduced 
       \newif: bug fixed, other bug fixed.
<0.11> Apr. 2020
       \phi, \varpi in Unicode: bug fixed
       \mathstyles introduced.
<0.10> Apr. 2020
       Technical documentation added
       \_famdecl instedad \_fontdecl in font family files (incompatible change).
<0.09> Syntax highlighting implemented.
<0.08> \numberedpar implmented. \emergencystretch=20pt added as default. 
       \inoval, \incircle, \clipinoval, \clipincircle imlemented. 
       \puttext, \putpic x,y instead -y,x (incompatible change!) 
       footnotes have separated color stack now. 
       \fnotelinks implemented.
       Lists by \begitems...\enditems improved (\novspaces \_vspacehalf, \ilevel).
<0.07> demos: op-letter.tex and op-slides.tex added.
       \inkinspic, \transformbox, \slides added.
       documentation improved and updated.
<0.06> tables re-implemented, opmac-rest removed.
       footnotes, marginal notes reimplemented.
       sections.opm, graphics.opm, colors.opm, languages re-implemented
       Cite-bib re-implemented.
       Index, sorting re-implemented.
<0.05> \boldmath reimplemented
       \fontcolor, \letterspacing implemented
       font catalogue improved
<0.04> references.opl, hyperlinks.opl re-implemented.  
       \fontfam, f-* rewritten: no usage of boundary "..." in \_fontnamegen
       \fnote{...} corrected: (parameter is not really parameter)
       verbatim.opl re-implemented + doc added
       file-ref.opl implemented (new \_Xrefversion{3})
       bugfixing
<0.03> optex-doc optex.1 included,
       verbatim.opm re-implmented,
       math-unicode implemented,
       usebib.opm + bib-style.opm included
       \catcodetable stack implemented
       bugfixing of macros.
       catcodes.opl: removed, one can use \catcodetable, ... primitives,
       pdfuni-string: lua code for lua5.3 fixed.
<0.02> Released.
