On Mon, Sep 28, 2026 at 08:03:06PM +0200, [email protected] wrote:
> The probable reason why it is not DEL-quoted in Info is because
> this is a valid external manual, therefore it is hard to detect that
> it should be quoted in menu or as a node direction. A possible rule
> would be that if a node with the same name exists, the node should be
> quoted. If a manual with the same name exists, it will prevent
> references in menus and node directions to that manual, but it is not so
> bad, I think.
I think it should depend on the syntax at the use site.
For explicit node directions (which are unusual), it should follow
the same rules for menu entries: a leading parenthesised component
always refers to an external manual:
@node thisnode, (next), (prev), (up)
This refers to external manuals called "next", "prev" and "up",
regardless of whether there are nodes in the manual called
"(next)", "(prev)" or "(up)".
If the user really needs to reference a node in the same manual
called "(next)", etc., then they need to use @asis or some other
construct:
@node thisnode, @asis{(}next), @asis{(}prev), @asis{(}up)
Note I'm just saying what I think would make the most sense - I haven't
looked at any details of implementation. However, this does seem to match
the current implementation:
@node thisnode, (next), (prev), (up)
@xrefname thisnode
This outputs the node directions as specified.
@node thisnode2, @asis{(}next), @asis{(}prev), @asis{(}up)
@xrefname thisnode2
This attempts to reference nodes by these names in the same manual,
with errors like:
test.texi:24: Next reference to nonexistent `@asis{(}next)'
test.texi:24: Prev reference to nonexistent `@asis{(}prev)'
test.texi:24: Up reference to nonexistent `@asis{(}up)'
Presumably menu entries should behave the same way.
The Texinfo manual does recommend using @asis to protect special characters
in node names:
If you insist on using these characters in node names, in order not
to confuse the Texinfo processors you must still escape those
characters, by using either special insertions (*note Inserting a
Comma::) or ‘@asis’ (*note @asis::). For example:
@node foo@asis{::}bar@comma{} baz
(Info node "(texinfo)Node Line Requirements".)