%% This is part of OpTeX project, see http://petr.olsak.net/optex %% OpTeX ini file %% Petr Olsak % Basic catcodes: \catcode `\_=11 \catcode `\{=1 \catcode `\}=2 \catcode `\#=6 \catcode `\^=7 % OpTeX version \def\optexversion{Alpha 0.02 Feb 2020} % Engine testing: \newlinechar=`\^^J \ifx\directlua\undefined \message{This format is based only on LuaTeX, use luatex -ini optex.ini^^J} \endinput \fi \ifx\bgroup\undefined \else \message{This file can be used only for format initialisation, use luatex -ini^^J} \endinput \fi % Basic \_codedecl / \_endcode pair: \let\_endcode =\endinput \def \_codedecl #1#2{% \ifx #1\undefined \message{#2^^J}% \else \expandafter \endinput \fi } % Initialization: \message{OpTeX (Olsak's Plain TeX) initialization <\optexversion>^^J} \input prefixed.opm % prefixed primitives and code syntax \input luatex-ini.opm % luaTeX initialization \input catcodes.opm % catcode setting \input basics-macros.opm % basic macros \input alloc.opm % allocators for registers \input if-macros.opm % special \if-macros, \is-macros and loops \input logos.opm % standard logos \input parameters.opm % parameters setting \input fonts-preload.opm % preloaded Computer Modern fonts \input fonts-resize.opm % font resizing (low-level macros) \input fonts-select.opm % font selection system \input math-preload.opm % math fams CM + AMS preloaded \input math-macros.opm % basic macros for math plus mathchardefs \input plain-macros.opm % plainTeX macros \input fonts-opmac.opm % font managing macros from OPmac \input outlines.opm % PDF outlines \input pdfuni-string.opm % PDFunicode strings for outlines \input output.opm % output routine \input margins.opm % macros for margins setting \input uni-lcuc.opm % Setting lccodes and uccodes for Unicode characters \input hyphen-lan.opm % initialization of hyphenation patterns \input opmac-rest.opm % TODO: needs to be re-implement \input csplain-params.opm % compatibility with CSplain \_everyjob = {% \_message{This is OpTeX (Olsak's Plain TeX), version <\optexversion>^^J}% \_mathsbon % replaces \int_a^b to \int _a^b \inputref % inputs \jobname.ref if exists } \let\loadmathfonts=\relax % TODO: unicode-math \_dump \_endcode % ------------------------------ TODO: - re-implement macros from opmac-rest.opm - add unicode math support (from uni-math.tex from csplain) - add modules support (for example opmac-bib) - write more documentation - ... DOC: - about Font selection system: ....... files: fonts-select.opm, fonts-opmac.opm, fonts-resize.opm, f-heros.opm, f-lmfonts.opm fams-ini.opm - about user/internal name spaces .... files: prefixed.opm, math-macros.opm - additional doc is in more files... NOTES FOR TESTERS: - We don't want to keep absolutely backward compatibility. For example obscurities like \z@, \p@, \f@@t are not supported. - The page origin is at left upper corner of the paper (no at 1in, 1in coordinates). - The default papersize is A4 with 2cm margins (no letter with 1in margins]. Use \margins macro to change these parameters. - Only few 8bit fonts are preloaded in format. Use \fontfam[LMfonts] (or select another fonts family by \fontfam[?]) at beginning of document. Unicode fonts will be loaded. - The accents macros \v, \' are undefined, Use native characters š,č,é, etc. If you expicitly needs this old feature, use \oldaccents macro. - The font switchers like \_tenrm, \_tenbf have only internal names, i.e \tenrm, \tenbf are undefined.