#492210 texinfo: makeinfo adds a spurious period for @pxref before closing parenthesis

Package:
info
Source:
texinfo
Description:
Standalone GNU Info documentation browser
Submitter:
Vincent Lefevre
Date:
2026-02-23 16:45:02 UTC
Severity:
normal
Tags:
#492210#5
Date:
2008-07-24 12:23:16 UTC
From:
To:
The texinfo manual says:

8.7 `@pxref'
============

The parenthetical reference command, `@pxref', is nearly the same as
`@xref', but it is best used at the end of a sentence or before a
closing parenthesis.  The command differs from `@xref' in two ways:

  1. TeX typesets the reference for the printed manual with a lower case
     `see' rather than an upper case `See'.

  2. The Info formatting commands automatically end the reference with a
     closing colon or period, if necessary.

However if there's a period after a closing parenthesis, makeinfo adds
a second one before. For instance, gmp.texi from GMP 4.2.2 contains:

Libtool is used to build the library and @samp{-version-info} is set
appropriately, having started from @samp{3:0:0} in GMP 3.0 (@pxref{Versioning,
Library interface versions, Library interface versions, libtool, GNU
Libtool}).

and makeinfo generates:

   Libtool is used to build the library and `-version-info' is set
appropriately, having started from `3:0:0' in GMP 3.0 (*note Library
interface versions: (libtool)Versioning.).

makeinfo should be able to handle this case to generate instead:

   Libtool is used to build the library and `-version-info' is set
appropriately, having started from `3:0:0' in GMP 3.0 (*note Library
interface versions: (libtool)Versioning).

Note that this is correct typography according to some manuals, such
as the Chicago Manual Of Style, 14th Ed.

#492210#10
Date:
2011-05-22 16:47:58 UTC
From:
To:
forwarded 492210 https://savannah.gnu.org/bugs/index.php?33373
stop

On 24.07.08 Vincent Lefevre (vincent@vinc17.org) wrote:

Hi,
<snip>
Seen in the C implementation of makeinfo and one perl implementation
of it -> forwarded to upstream.

H.

#492210#19
Date:
2013-08-01 15:13:24 UTC
From:
To:
Control: tags -1 - fixed-upstream
Control: reassign -1 info
Control: found -1 4.11.dfsg.1-4
Control: found -1 5.1.dfsg.1-4

According to what has been said here, "the Info reader requires
a punctuation mark to end a node", and they don't seem to want to
change that.

Now, since the punctuation mark is just a marker for the Info reader,
it should normally not be output! So, this should be seen as a bug in
the Info reader. But since in practice, such a punctuation mark has a
double usage (this is poor design!), I suggest not to output it only
when it is immediately followed by a parenthesis.

For instance, with

  *note GNU Libtool: (libtool.info)Top.

the period should be output, but not with:

  Test (*note Library interface versions: (libtool)Versioning.).

Parsing should not be too difficult as only the next character would
be used to determine whether the punctuation mark should be output or
not.

#492210#38
Date:
2018-04-14 00:19:46 UTC
From:
To:
It is marked as fixed in the upstream BTS, but they did not change
anything and don't seem to want to fix the Info reader to get a
proper fix of this bug.

Perhaps the bug should be reassigned to gmp-doc, as this means that
GMP misuses texinfo.

#492210#51
Date:
2018-12-30 23:03:23 UTC
From:
To:
notforwarded 492210
stop
Upstream refused the bug. Marking as notforwarded.

H.

#492210#58
Date:
2026-02-23 16:43:01 UTC
From:
To:
Control: retitle -1 info should detect ".)" followed by punctuation due to @pxref and output just ")"
Control: found -1 7.2-5
Control: found -1 7.2.92-1

So, for instance, if the info file contains

  Test: (*note Library interface versions: (libtool)Versioning.).

(where the first period is used for parsing), then Info readers
should output

  Test: (*note Library interface versions: (libtool)Versioning).

But if the closing parenthesis is not followed by a punctuation
character, the period before the closing parenthesis should not
be removed. Testcase attached.

BTW, the period is not present in the description in the Texinfo
manual.