下列的我得到的答案是关于如何使用西班牙语的 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
。