西班牙语的 Makeindex 和 Hyperref

西班牙语的 Makeindex 和 Hyperref

下列的我得到的答案是关于如何使用西班牙语的 Babel 在索引中添加小写罗马数字,我遇到了一个新问题。使用 hyperref 包时,链接无法转到带有这些罗马数字的正确页面。它们总是转到文档的第一页。

目录的链接可以正常工作,索引中带有阿拉伯数字的单词也可以正常工作,但是索引中带有罗马数字的单词则不行。

梅威瑟:

\documentclass[a4paper,openright,10pt]{book}
\usepackage[spanish,es-nosectiondot,es-preindex,es-noquoting]{babel}
\usepackage{hyperref}
\usepackage{makeidx}
\makeindex

\title{Example }

\author{Me}

\begin{document}

\frontmatter
\maketitle


\chapter{Introduction}

Hello casa \index{casa} .....

\mainmatter

\chapter{Blaaaaaaaaaaaa}

Words \index{m\'{e}dico}.

\renewcommand{\indexname}{\'{I}ndice de Materias}

\printindex


\end{document}

结果是:

我应该怎么做才能修正链接?

编辑:显示一条警告信息:

0Warning:\040Replacing\040`OT1/cmr/m/n'\040by\040\\MessageBreak\040faked\040sma
ll\040caps\040on\040input\040line\0403.\012}\\endgroup\040\\uppercase\040{iii}}
} has been referenced but does not exist, replaced by a fixed one
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/
share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb></usr/share
/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texliv
e/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf
-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/f
onts/type1/public/amsfonts/cm/cmsl10.pfb>

答案1

事实上有两个问题。这两个问题都可以通过软件包提供的钩子轻松修复。

首先,索引条目被 修改hyperref,它无法识别 定义的宏spanish。此问题已在 之前使用以下行修复\printindex

\def\esromanindex#1{\hyperindexformat{\textsc}}

其次,中有一个小错误hyperref,它错误地重新定义了一个内部宏,因为要创建它映射的目标名称小写小写字母转为大写字母。但幸运的是,还有一个钩子,因此在加载hyperref(和babel)后写入:

\makeatletter
\addto\pdfstringdefPreHook{\def\es@roman#1{\romannumeral#1 }}
\makeatother

它对我有用,当然这并不意味着它对每个人都有用 ;-)。我希望它也对你有用,如果是这样,我会修改spanish它以使其与 一起工作hyperref

相关内容