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

Aditya Mahajan adityam at umich.edu
Sun Jun 3 18:46:03 CEST 2007


On Sun, 3 Jun 2007, Hans Hagen wrote:

> Aditya Mahajan 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

That is true. I had not thought about conversion, numberstyle, and 
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?

Aditya


More information about the dev-context mailing list