diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/latexconfig/lualatexiniconfig.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/latexconfig/lualatexiniconfig.tex | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/latexconfig/lualatexiniconfig.tex b/Master/texmf-dist/tex/latex/latexconfig/lualatexiniconfig.tex new file mode 100644 index 00000000000..dcca3a3cecf --- /dev/null +++ b/Master/texmf-dist/tex/latex/latexconfig/lualatexiniconfig.tex @@ -0,0 +1,64 @@ +% $Id$ +% Enable and prefix LuaTeX primitives for LaTeX-based formats +% Assumes LuaTeX 0.39.x or greater. +% Manuel Pégourié-Gonnard, 2009. Public domain. +\begingroup +\catcode`\{=1 +\catcode`\}=2 +\directlua{ + % etex and pdftex primitives are enabled without prefixing + tex.enableprimitives('', + tex.extraprimitives('etex', 'pdftex')) + % other primitives are prefixed with luatex (see below) + tex.enableprimitives('luatex', + tex.extraprimitives('core', 'omega', 'aleph', 'luatex')) + } +\endgroup +\endinput + +% Rationale for primitives prefixing. +% +% 1. All current macro packages run smoothly on top of pdf(e)TeX, so those +% primitives are left untouched. +% 2. Other non-TeX82 primitives in LuaTeX may cause name clashes with existing +% macros in macro packages, especially when the use very "natural" names +% such as \outputbox, \mathstyle etc. Such a probability for name clashes is +% highly undesirable if LuaTeX is to replace pdfTeX as the default engine +% some day, and still undesirable even if it does not, anyway, since some +% level of compatibility never hurts. +% 3. The LuaTeX team doesn't want to apply a systematic prefixing policy, but +% kindly provided a tool allowing to apply it. So we chose to use it. +% Previously, we even disabled the extra primitives, but now we feel it's +% better to enable them with systematic prefexing, in order to avoid that +% each and every macro package (or user) enables them with various and +% inconsistent prefixes (including the empty prefix). +% 4. The 'luatex' prefix was chosen since it is already used as a prefix for +% some primitives, such as \luatexversion: since way, those promitive don't +% end up with a double prefix (see tex.enableprimitive in the luatex manual +% for details). +% 5. The \directlua primitive is provided both with its natural name (allowing +% to easily detect LuaTeX-besed formats) and a prefixed version +% \luatexdirectlua (for consistency with \luatexlatelua). +% 6. Various remarks +% (a) The obvious drawback of such a prefixing policy is that the names used +% by LaTeX or generic macro writer won't match the names used in the +% manual. We hope this is compensated by the gain in backwards +% compatibility. +% (b) All primitives dealing with Unicode math already begin with \U, and +% maybe will match the names of XeTeX primitives some day, so maybe +% prefixing was not necessary/desirable for them. However, we tried to +% make the prefixing rule as simple as possible, so that point (a) doesn't +% get too annoying. +% (c) The final name of some primitive may sound strange, namely those +% already containing the name of an engine, such as \luatexOmegaVersion. +% However, since LuaTeX is not a drop-in replacement for Omega/Aleph, we +% felt it wrong to provide \OmegaVersion. +% (d) Maybe some day we'll realise that it is better to provide all +% primitives without prefixing at all, after all. If this happens, it will +% be easy to add the unprefixed primitives in the format while keeping the +% prefixed names for compatibility. It wouldn't work the other way round +% (ie, realising that we should not provide the unprefixed primitives +% would cause huge compatibility problems for all LuaTeX-specific macro +% packages). + + |