[luatex] macros to invoke lua in LaTeX

Heiko Oberdiek oberdiek at uni-freiburg.de
Fri Mar 6 09:07:34 CET 2009


On Fri, Mar 06, 2009 at 01:08:53AM +0100, Reinhard Kotucha wrote:

> On 5 March 2009 Heiko Oberdiek wrote:
> 
>  > On Thu, Mar 05, 2009 at 11:07:51PM +0100, Reinhard Kotucha wrote:
>  > 
>  > > Regarding namespaces: It's a good idea at first glance.  But I don't
>  > > think there is any need to be concerned about macro packages people
>  > > write in the future.  Macro writers have to read the specifications
>  > > anyway.  They have to read the TeXbook if they want to support Knuth's
>  > > tex, they have to read the pdfTeX manual if they want to support
>  > > pdftex, and they have to read the LuaTeX manual if they want to support
>  > > Luatex.  Same for e-TeX, XeTeX, Omega, and derivates.
>  > 
>  > Another reason for prefixes. As package author I wouldn't want
>  > to check all engines for name clashes.
> 
> You have to check anyway.  At least if you want to support all
> engines.  e-TeX provides new primitives, why can't luatex do the same?

I had to write package `etexcmds' to deal with the clashes.

>  > Also it's quite difficult to check future name clashes, especially
>  > for user land macro names.
> 
> Please try LaTeX's \newcommand .

It doesn't fix anything.

>  > > Hans already explained why new primitives don't break old macro
>  > > packages.  So, where is the problem?
>  > 
>  > Mixing old with new packages.
> 
> Forget the old stuff.  Nobody forces anyone to process old documents
> with luatex.

You think, development stops at version 1.00?

> You can't expect any progress if you insist on compatibility with
> stuff written three decades ago.

The price is low. There is also a benefit, if prefixing is used.
At first glance it can be seen where the command comes from
(primitive, macro package, ...).

With unprefixed command names in userland it seems to me as
requirement that the format (as "operating system") renames
the primitive commands using its naming conventions (e.g. prefixes)
to prevent name clashes. Then only this renaming module needs
an update if a new version with new primitives is released.
Then there is also no point in having unprefixed primitives
in the first place, because they can never be reliably used in
this form.

Yours sincerely
  Heiko <oberdiek at uni-freiburg.de>


More information about the luatex mailing list