![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
Heiko Oberdiek wrote:
On Fri, Jul 01, 2005 at 09:11:13AM +0200, Pawel Jackowski wrote:
Heiko: And what about packages, macros that are not released? Documents are allowed to contain macro definitions. Thus existing documents can break because of added new primitives[...]
Nope, since macros defined in the document will always override the primitive meaning. The document will NOT crash and won't need a primitive meaning of the clashed command, since was prepared before the command was implemented.
Examples with a new primitive: \match
Szenario A: User defines macro: \newcommand{\match}{Hello World} ==> Error message, \match already defined.
Szenario B: \def\match!#1!#2!#3{...}
Some package (hyperref, ...) uses the new primitive: \match{...}{...} ==> Document fails with: Use of \match doesn't match its definition.
so, for latex the solution would be (in the latex specific initialization file): \let\pdfmatch\match \let\match\undefined That way you get (1) a prefix (one that will not clash with other prefixes) and (2) we keep tex prefix-clean Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------