[tex-eplain] Position of optional argument

Rodolfo Medina rodolfo.medina at gmail.com
Mon Apr 27 18:03:20 CEST 2009

On Sun, Apr 26, 2009 at 07:16:55PM +0100, Rodolfo Medina wrote:

>> I've been using the eplain \@getoptionalarg and \@optionalarg commands in a
>> certain macro.  It turns out to me that the optional argument must be put
>> *before* the non optional argument.
>> How can I set things - if possible - so to put it after it?

Oleg Katsitadze <olegkat at gmail.com> writes:

> Try this:
>     \input eplain
>     \makeatletter
>     \def\test#1{%
>       \def\test at arg{#1}%
>       \@getoptionalarg\@test
>     }
>     \def\@test{%
>       \message{^^JArg: \test at arg}%
>       \message{^^JOptional arg: \@optionalarg}%
>     }
>     \makeatother
>     \test{text}
>     \test{text}[optional text]
>     \bye

Thanks, but when I process the file I get error message:

$ tex test
This is TeX, Version 3.141592 (Web2C 7.5.5)
(./test.tex (/home/rodolfo/macros/eplain-3.2.tex)
Arg: text
Optional arg:
! Use of \test doesn't match its definition.
l.18     \test{
               text}[optional text]
? h
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.


Besides, it's not clear to me how I can use that to add an optional argument
to, say, such a macro:

  Hallo, #1!

Thanks again

More information about the tex-eplain mailing list