latex3 / latex3/hyperref

Hyperref + makeindex + entails problem

Open
#24 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TeX
Stars
205
Forks
41
PR merge metrics
No merged PRs in 30d

Description

I am not certain that this is a hyperref bug. If you can determine that it is not, please let me know and I will file this bug elsewhere.

I maintain the PVS package (http://pvs.csl.sri.com/) for the Fedora Linux distribution. A few years ago, after a TeXLive update, the build started failing while trying to make the user manual. Details are available here: https://bugzilla.redhat.com/show_bug.cgi?id=886158. The issue arises with this paragraph in the manual:

The \cmd{x-show-current-proof} command creates a window showing the
cur-rent proof tree. Every sequent in the tree is represented by a
$\vdash$ symbol\index{"|-@$\vdash$}. The proof commands used to create
the tree will also be shown between the $\vdash$ symbols. This tree will
be automatically updated after every proof command.

Prior to TeXLive 2012, that index command resulted in the following entry in user-guide.ind (the last entry in the section for symbols):

\item $\vdash$, \hyperpage{52}

With TeXLive 2012 and later, this is generated instead:

\item $\vdash$}, 52

The missing \hyperpage is annoying, but the extraneous right curly brace is fatal. The problem seems to be caused by hyperref deciding that the - in "|- might represent a page range and wrapping the whole thing in hyperindexformat, thereby hiding the escaping " from makeindex. If I have misdiagnosed the problem, pointers in the right direction would be appreciated. Thank you.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the manual paragraph containing the index entry and the generated user-guide.ind output. Reproduce the issue with TeXLive 2012 or later and makeindex, then inspect how hyperref processes the symbol entry and page-range marker. Done means the index contains no extraneous right brace and restores the expected hyperpage link.

Written by the indexing model from the issue text.

Assessment

Tech stack
latex, tex
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.