Frank Mittelbach wrote: > Achim Blumensath writes: > > > for the theoremstyle template type a good name could then be > > > something like \EndThisTheorem. > > > > I think it would be a good idea to uniformly call those commands > > \EndThisEnvironment. > > the problem with this and perhaps the problem with the whole mechanism > is that a lot of people have learned to write environments like this: > > \newenvironment{foo}{...\quote ...}{ ... \endquote ...} > > ie without using \begin/\end internally. > > if all such things like \quote internally use \EndThisEnviornment then > guess what happens. so this needs some thoughts. > > a) do not allow above usage IMHO such hacks as above shouldn't be allowed anyway. If someone directly accesses internals of some package instead of using the defined interface he deserves his code breaking when the implementation is changed. Besides, what happenes if someone uses two nested lists in the above way? So you have the problem regardless of whether all templates share a common name or each uses its own one. One way to allow hacks like this could be to define \newenvironment as \newenvironment <name> <begin-code> <end-code> := \def\<name>{ \begingroup <begin-code> } \def\end<name>{ <end-code> \endgroup } that is, to move the \begingroup, \endgroup from \begin and \end into the \foo, \endfoo commands. > b) do implement your independent stack handling for these things > c) do provide your own groups already at the environment-template level > d) ...? Achim ________________________________________________________________________ _ | \_____/ | // Achim Blumensath | \ _ \O/ \___/\ | // [log in to unmask] |-< /_\ =o= \ /\ \| \X/ (p^2 - m^2)\psi = 0 |_/ \_ /"\ o----| ____________________________________________________________________\___|