Hi, (This post actually belongs to dev-context, but I do not know if everyone interested in this reads dev-context, so I am posting it to this list). I have been looking at what is the best way to do theorems etc with ConTeXt. There are ways to handle most of the requirements, but some of them are not possible out of the box with ConTeXt. I have searched the archives and this questions about theorems and proofs keep on coming on and off. I want to see what is the requirements for theorems, what all is possible right now, and what needs to be done. Below I am writing my requirements of theorem. Does anyone have anything more to add? 1. They should be numbered, it should be possible to control the numbering mechanism, for example way=bysection, bychapter, etc.
Can be done using enumerations.
2. It should be possible to have two different types of theorems have the same number. For example, \definetheorem[theorem] \definetheorem[lemma][number=theorem] should follow the same number as theorems.
Is possible using enumerations
3. It should be possible to get a list of theorems. It should be possible to say which types of theorems go to the list and which do not.
Is possible using enumerations
4. The theorem should have a title. The title should be optional.
Is partially implemented
5. There should be a mechanism to do end-of-proof marks. The end-of-proof marks should also work with itemizations, and formulas.
Not implemented at all.
6. Anything more...? Requirement 4 is not completely implemented. With \defineenumeration[theorem][title=yes] I always have to give a title. Normally, while writings theorems, there are only a few theorems that have a title. The rest of them do not. Right now, I can work around this restriction, by either having two different theorems (titledtheorem and nontitledtheorem) or always adding {} at the beginning of each theorem. I want the behaviour closer to title=maybe. I do not understand why \@@startdescription contains \dowithwargument{\@@startsomedescription{#1}[#2]} I would prefer it to contain \dosinglegroupempty{\@@startsomedescription{#1}[#2]} (well this will of course not work, but I hope the idea is clear) So that I can do \defineenumeration[theorem][title=yes] \starttheorem A silly theorem not worth a title \stoptheorem as well \starttheorem {My Fancy Theorem} A fancy theorem that needs to be given a title \stoptheorem I do not think that changing this will break anything. I am not even sure why dowithwargument is there. I cannot imagine anyone writing \startthoerem Title this is a theorem \stoptheorem instead of \starttheorem {Title} this is a theorem \stoptheorem The title also needs some more attributes. Right now, only titlestyle, titlecolor and titledistance are there. To be more flexible, you would also need something like titleleft, and titleright, which should not be too difficult. The last things, that is the end of proof marker, is right now not possible in ConTeXt. There are a lot of things that need to be taken care of while having a end-of-proof marker: basically, you need to ensure that there is no page break between the proof and the marker. Also the marker needs to be moved up or down, depending on how the proof ends. At the very least, ConTeXt should have something that ensures that the end of proof marker does not go onto a page of its own. Finally, my question is: Does it make sense to include all these functionality into enumerations, or have them in a separate module? Aditya