[NTG-context] texmfstart fails silently on incorrect input

Aditya Mahajan adityam at umich.edu
Mon Jun 5 04:20:14 CEST 2006


On Mon, 5 Jun 2006, "Guðmundur J. Kristjánsson" wrote:

> Just a quick note regarding "silentness" in Context.
>
> I have on two occasions had problems with silent errors:
>
> 1) When using the bib module and putting spaces between citation
> variables and their value. For example, doing:
>
> \startpublication[k = ArcticCorsairTrawling,
> 		  t = misc]
>
> instead of
>
> \startpublication[k=ArcticCorsairTrawling,
> 		  t=misc]
>
> 2) When trying to define an abstract command:
> \definestartstop
>     [abstract]
>     [before={\midaligned{\bf Abstract} \startnarrower[2*middle]},
>      after={\stopnarrower \blank[big]}]
>
> In this case the command was defined when I used "...before = ..." but
> did not alter the text in any way.
>
> So after all this rambling I have two questions:
> 1) Is this silent mode intended?

No, this is the usual behaviour.

> 2) Is whitespace not allowed before or after when defining with or using
> the "=" sign?


Parially, space after = is fine, space before = is ignored silently.

This is because with

\dosetvalue {one}{a}{ b}

\onea is defined,

while with

\dosetvalue {one}{a }{ b}
\onea is undefined.

Hans, can \dosetvalue be defined to ignore the space of #2, something 
like

\unprotect
\def\dosetvalue#1#2#3%
   {\dodosetvalue{#1}[#2]#3}

   \def\dodosetvalue#1[#2#3]#4%
   {\doifelse{#3}{\space}
     {\@EA\def\csname#1#2\endcsname{#4}}
     {\@EA\def\csname#1#2#3\endcsname{#4}}}


With this

\dosetvalue {one}{a }{ b}
(\onea)

works, but this does not work for

\definestartstop
   [abstract]
   [before = {{\bf Abstract}}]


I do not know the implication in terms of speed. In case there is a 
heavy penality, one can have a switch to ignore spaces in value 
assignments.

Aditya





More information about the ntg-context mailing list