Gerben Wierda wrote:
Hey Gerben,


Now what turns out to solve this? Empty lines before \description and
\stopdescriptions

Things that were defined using \definedescription rely on \par as a delimiter.


Though I like ConTeXt if I look at certain design aspects, behaviour
that
depends on whitespace before a command frightens me.

Just the way it works :-) Nothing to worry about.


What this introduces is that the working of the ascii file depends on its
layout. I can understand that an empty line does a \par (it is convenient
after all) but I would see that kind of behaviour kept to a minimum. That
is, now I have this 'invisible' element that is needed to close my
structure. It is something quite unexpected for me in a TeX workflow.
Different layout because of a missing empty line, fine. But an error
message and a halt really surprises me. Another part of a learning curve
which if you want adoption you should try to avoid. But maybe it is
impossible to make ConTeXt more 'forgiving'.

The alternative is \startdescription\stopdescription which is logically
nicer, but adds inconvenience to the typing/editing

IMO LaTeX here does a better user-interface job (not just because I happen
to know LaTeX). Withing the description environment \item starts a new
item and the item ends with the start of another item or the end of the
environment. Completely independent of the layout of the ascii file.

It would IMO be a lot friendlier if my \stopdescriptions and \description
commands would take care of this and I could do things like:

\startdescriptions
\description{Foo} Bar bar bar
\description{Foo} Bar bar bar
\description{Foo} Bar bar bar
\stopdescriptions

without triggering an error.

this could be made working to some extend, but it would complicate the code; this mechanism actually is implemented so that it can handle:


\starttext

\definedescription[test]

\test oeps whow \par

\test oeps

whow

\test {oeps} whow \par

\test {oeps} whow \par

\starttest {oeps} whow \stoptest

\stoptext

nowadays i tend to more verbose coding; anyhow, we can add something

\unprotect

\def\startdescriptions
  {\dosingleempty\dostartdescriptions}

\def\dostartdescriptions[#1]%
  {\begingroup
   \def\item{\getvalue{#1}}%
   \let\dostoppairdescription \donothing
   \let\@@description         \dostartpairdescription
   \let\@@startsomedescription\dostartsomedescription}

\def\stopdescriptions
  {\dostoppairdescription
   \endgroup}

\def\dostartpairdescription[#1][#2]%
  {\dostoppairdescription
   \def\dostoppairdescription{\@@stopdescription{#1}}%
   \bgroup
   \def\currentdescription{#1}%
   \doifelse{\descriptionparameter{\s!do\c!state}}\v!start
     {\@@makedescription{#1}[#2]{}}
     {\@@makedescription{#1}[#2]}}

\def\dostartsomedescription % #1[#2]#3%
  {\bgroup
   \@@makedescription} % {#1}[#2]{#3}}

\protect

\starttext

\definedescription[test]

\startdescriptions
\test{Foo} Bar bar bar
\test{Foo} Bar bar bar
\test{Foo} Bar bar bar
\stopdescriptions

\startdescriptions
\starttest{Foo} Bar bar bar \stoptest
\starttest{Foo} Bar bar bar \stoptest
\starttest{Foo} Bar bar bar \stoptest
\stopdescriptions

\startdescriptions[test]
\item{Foo} Bar bar bar
\item{Foo} Bar bar bar
\item{Foo} Bar bar bar
\stopdescriptions

\stoptext

for those who have problems adapting; so, what does the general context public think of such an extension?

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to