texinfo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Patch updating Info format specification


From: Karl Berry
Subject: Re: Patch updating Info format specification
Date: Thu, 24 Jul 2014 18:07:59 GMT

    There is a similar question for whether you need punctuation after a
    short-form cross-reference, e.g. from the texinfo manual "*Note
    Tropical Storms::, for more info." It says that "it's a common mistake
    to follow an '@xref' command with a space, but this is never correct."
    I don't see why this is necessary because the name of the referenced
    node is terminated here with a colon, not a comma or a full stop.

It's not because of Info format/parsing, but because of the TeX output,
which looks like
  See Tropical Storms, p.6, for more info.
Because of the "p.N", the @ref has to be followed by some kind of
punctuation, not a space, or it's grammatically wrong.

But we don't have to embed this rule into the Info format.  People who
don't care about the TeX output don't have to follow it.

    Main use of not having a tag table would be writing Info files by
    hand.

I agree ("rare but occasionally useful").  So we can leave the tag table
as optional.

    It's worth mentioning this because otherwise it would mean that we
    were looking for a node that was actually called "(dir)" within the
    same file.

Sure, no question.

    I have a UTF-8 manual installed that is
    unusable in an ISO-8859-1 locale

Yes, it's a fundamental problem.  As you say, nothing we can do about
the past releases, of course.  It's great that you have it working now.

    * Does anyone know how this would affect menus in texinfo source,
    which are info menus in a @menu block? (Same question for @direntry)?

By "this" I presume you mean the node quoting?  makeinfo would have to
generate the quoted form when needed, of course.  (Plus see below.)
Patrice, are you there?

    * Are cross-references like *Note (file)node:: allowed? 

Yes, that's always been the standard way to make a reference to another
manual.

    I have seen them in several files. They seem to work at the moment
    but there could be some confusion with a node actually called
    "(file)node" in the same file.

Indeed, a same-manual node named "(file)node" would have to be
DEL-quoted at the Info level to get the right interpretation by the Info
readers.  The same is true for a node named "Foo:" or "Foo," or any of
the other myriad ambiguous cases that arise once any character is
allowed in node names.

Whether we need something at the user level to disambiguate ... I don't
know.  Maybe we have to, but I'd rather not, for simplicity.  What comes
to mind is that if a local node exists, it gets used.  If a user wants
to have a local node named "(file)node" *and* refer to "node" in the
external "file", well, they can't.  Rename the local node.  This does
not seem like an onerous burden to me.

I think whether there are any practical cases that require user-level
quoting will become clear when Patrice (I hope) implements this in
makeinfo.

    * I noticed that in the "info.info" file there was a section about how
    to write an Info file by hand (which has been removed now). 

We could add it back into the Texinfo manual if you think it'd be useful.
I have always been underwhelmed by that section.

    Most of it is covered in the texinfo spec, but I noticed that it
    mentioned that node separators could contain form feed characters:

Ah yes.  I surmise that rms did that because when he was writing Info
files by hand, he wanted each node to be a separate page in Emacs
(delimited by C-l) and didn't want to change the default page-delimiter :).

  /* A node is started by [^L]^_[^L]\n.  That is to say, the C-l's are
     optional, but the DELETE and NEWLINE are not.  

I agree that the C-l's are probably not used nowadays, but as long as
Info accepts them, I think we should mention it in the reference.
That's what references are for, after all ...

Thanks,
Karl



reply via email to

[Prev in Thread] Current Thread [Next in Thread]