LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Subject:
From:
Matthew Swift <[log in to unmask]>
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:
Mailing list for the LaTeX3 project <[log in to unmask]>
Parts/Attachments:
text/plain (30 lines)
>  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.

ATOM RSS1 RSS2