Sender: |
|
Subject: |
|
From: |
|
Date: |
Mon, 20 Oct 1997 12:56:39 -0400 |
In-Reply-To: |
Your message of "Mon, 20 Oct 1997 17:02:16 +0200."
<v03110700b0711f81fa4e@[130.237.37.46]> |
Reply-To: |
|
Parts/Attachments: |
|
|
> I get the following variations; all should check \@ifdefinable without
> \@ifundefined, but differ in the other respects:
> define
> new If undefined, then define, else error.
> renew If defined, then define, else error.
> provide If undefined, then define, else do nothing.
> override If define, then define, else do nothing.
I don't have an opinion on cleaning up the internals of \@ifdefinable;
I have been able to write a large number of defining commands without
running into any problems in this regard (the moredefs package). But
I would add the following to your list. The first is already in the
kernel, the second is in moredefs:
check Compare given with existing definition;
warn if not identical.
require If undefined, define, else check.
When considering new defining commands, there are also (at least) four
Boolean variations:
1) "robust" or not "robust"
2) \long or not \long
3) \global or not \global
4) advanced syntax that lets you compute the macro name and/or write a
complex parameter specification.
I've organized and normalized some new defining commands to a small
extent in moredefs, but certainly not with the completeness and
efficiency that might be achieved by starting from scratch.
|
|
|