On Tue, Sep 20, 2022 at 04:31:08PM -0700, Raymond Toy wrote:
> Is it possible to customize what @var does (for info files) without
> redefining @var?
> Maxima redefines @var to
>
> @macro var {expr}
> <\expr\>
> @end macro
This is not recommended, and could even be forbidden, in my opinion, to
redefine existing Texinfo @-commands.
That puts the maxima docs in a precarious position. I don't know the full history but someone wanted @var{foo}) to be <foo> instead of FOO. It's been that way for quite some time now.
> This breaks things like
>
> @table @var
>
> So I'm curious if there's some way to customize @var without defining it.
There is @definfoenclose, but it is deprecated. I just tested that it
leads to a warning, but otherwise formats the output as you expected,
I think.
This works fine. I used @definfoenclose var,<,> and @var{foo} now produces <FOO> instead of <foo>. Perhaps that's ok to whoever redefined @var. He also suggested using
@table @asis
@item @var{foo}
AFAIK, there was only once case for @table @var which was quickly changed to @table @code, which is good enough for me, even if it's not really quite right.
However, we're kind of stuck if you disallow redefining @var and also deprecate and remove @definfoenclose.
As a side note, this is documented:
The '@table' command works with other commands besides those
explicitly mentioned here. However, you can only use predefined Texinfo
commands that take an argument in braces. You cannot reliably use a new
command defined with '@macro', although an '@alias' (for a suitable
predefined command) is acceptable.
It does not seems to me to be a good thing to accept @-commands defined
by @macro as @table argument, for two reasons
* it would not be possible to know if the command should be expanded
immediatly like macro defined command usually are, or be expanded later
* the use of commands in argument to @table to format table @item is
done during conversion, and not during parsing, at wihch time
@-commands defined by @macro have all been expanded.
--
Pat