Don Simons wrote:
> Thanks, David. With the code you suggested, running with tex produces
> 
> ==================================
> C:\DOCUME~1\Don\MYDOCU~1\PMX\musixtex115>tex bigjunq This is TeX, Version
> 3.141592 (MiKTeX 2.6) (bigjunq.tex (musixtex.tex
> MusiXTeX(c) T.115-beta2 <24 June 2010>
> maxinstruments=6 max128beams=6 maxgroups=3 maxslurs=6 maxtrills=6
> maxoctlines=6)
> ("C:\Documents and Settings\All Users\Application
> Data\MiKTeX\2.6\tex\generic\p mx\pmx.tex"
> PMX, a Preprocessor for MusiXTeX, Version 2.502a <29 March 04>
> )
> ! Sources compiled with PMX require e-TeX.
> \body ...{Sources compiled with PMX require e-TeX}
>                                                    \iftrue \iterate -
> >\body
>                  \let \next \iterate \else \let \next \relax \fi \next
> l.13   \repeat
> 
> ?
> ==================================
> 
> which I'm afraid is pretty ugly. If I leave out the loop and the repeat, I
> get
> 
> ==================================
> C:\DOCUME~1\Don\MYDOCU~1\PMX\musixtex115>tex bigjunq This is TeX, Version
> 3.141592 (MiKTeX 2.6) (bigjunq.tex (musixtex.tex
> MusiXTeX(c) T.115-beta2 <24 June 2010>
> maxinstruments=6 max128beams=6 maxgroups=3 maxslurs=6 maxtrills=6
> maxoctlines=6)
> ("C:\Documents and Settings\All Users\Application
> Data\MiKTeX\2.6\tex\generic\p mx\pmx.tex"
> PMX, a Preprocessor for MusiXTeX, Version 2.502a <29 March 04>
> )
> ! Sources compiled with PMX require e-TeX.
> l.11 ...e{Sources compiled with PMX require e-TeX}
> 
> ?
> ==================================
> 
> which is much closer to what I'd prefer, but still not quite it. It's
> probably good that it pauses, so if running from a batch script the
> operator would know the error had occurred. But can I (1) just have the
> message printed once, and (2) precede the message with a blank line?

Personally I wouldn't worry about the blank line, but \immediate\write16{} will 
add that for you. Getting rid of the duplicate error message is something I did 
in in a massively over-engineered piece of TeX for database processing a few 
years ago... although the code I had allowed you to define error messages using 
a key (so you could say \...@error{etex}{sources ...}{Consult ...} then later 
\error{etex}, for example) that's much more than you'd want here so I 
simplified it to give:

\ifx\undefined\eTeXversion
  \def\displayerror{\errmessage{\the\errormessage}}
  \toksdef\errormessage=0
  \def\etexerror{%
    \errhelp={Consult your Local Guide for details on using e-TeX}%
    \errorcontextlines=-1
    \escapechar=-1
    \errormessage={Sources compiled with PMX require e-TeX}%
    \loop
      \displayerror
    \iftrue
      \errormessage={Type X to quit and go and fix the problem}%
      \errhelp={No, really - do just that. There's nothing else you can do 
here.}%
    \repeat}
  \immediate\write16{}
  \etexerror
\fi

On the console that gives

This is TeX, Version 3.1415926 (MiKTeX 2.8)
(D:\PMX.tex

! Sources compiled with PMX require e-TeX.
displayerror ->errmessage {the errormessage }

l.16   \etexerror

?

Which I is about as good as you can make it I think.


David 

_______________________________________________
tex-mu...@icking-music-archive.org mailing list
If you want to unsubscribe or look at the archives, go to 
http://mailman.nfit.au.dk/mailman/listinfo/icking-music-archive.org-tex-music

Reply via email to