# [dev-context] Enhancements to core-des for theorems

Sun Jun 3 18:46:03 CEST 2007

```On Sun, 3 Jun 2007, Hans Hagen wrote:

>>
>> I had a look at \wordright. The trouble is that \wordright makes no attempt
>> to prevent a page break if it is on a line of its own. It it can be
>> enhanced to take that into account, that is fine with me. The placed of
>> endofproof symbol is complicated. amsthm, does something similar to
>> qed.sty, while ntheorem goes into a two pass mechansim to get the placement
>> right.
> i never tested it but in pdftex we can add a "\vadjust pre {\nobreak}" ; the
> problem with tricks is that it will break other things; the only work in
> controlled situations

Maybe then also add an option for \endsymbolcommand. Let the core
implement the safest way to do things; the adventurous user (or a
module) can change the placement mechanism to whatever he/she wants.

>> Yes, but that is doing a lot of work simply to inherit the number.
> well, as long as tex is doing the work ... the advantage is that other number
> related things also inherit

such things.

There is another thing, which is more important from a style writer's
point of view, rather than the user's. Suppose I am writing a module
for IEEE journals, and they want their theorms in a particular style.
Suppose there are two styles, one for theorems and propositions (say
stlyeA), and one for definitions and remarks (say styleB). In the
module I can define four enumerations, with appropriate styles.

\defineenumeration[theorem]
\defineenumeration[proposition]

\setupenumerations[theorem,proposition][settings for styleA]

and similar for styleB.

Now suppose a user wants to have a new enumeration, called lemma, in
styleA. How does he do that? The options are:

1. Looks into the IEEE module and copies settings for styleA.
2. does something like

\definenumber[lemma]
\defineenumeration[lemma][theorem][number=lemma]

An alternative approach is to define a new object called
enumerationalternative. So that things can be

\defineenumerationalternative[styleA][settings for styleA]

\defineenumeration[theorem][alternative=styleA], etc.

This is roughly what LaTeX does, and most math users have come to
expect something like this. This should not be too difficult to
implement. \defineenumerationalterative can simply do
\getvariables[\??dd\c!alternative#1]

and \defineenumeration can see if alternative is something and copy
parameters from \??dd\c!alternative.

Do you think it makes sense to add this in the core?