Babel 中的“希腊语”导致罗马数字页面的“索引”失败

Babel 中的“希腊语”导致罗马数字页面的“索引”失败

以下 MWE 工作正常:

\documentclass{book}
\usepackage{makeidx}
% \usepackage[greek,english]{babel}
\makeindex
\begin{document}
\frontmatter
foo\index{foo}
\mainmatter
\printindex
\end{document}

但如果我取消注释,\usepackage[greek,english]{babel}我会得到一个错误(即使 MWE 不包含任何希腊文本)。我的.idx文件已经从

\indexentry{foo}{i}

\indexentry{foo}{{\fontencoding  {OT1}\selectfont  i}}

并且.ilg文件说

!! Input index error (file = test.idx, line = 1):
   -- Illegal space within numerals in second argument.

我怎样才能摆脱不需要的字体编码?

该文档是使用latexmkTexLive 2016(使用默认选项)编译的。

答案1

Christian Hupfer 的评论给出是否存在针对 babel 和索引罗马数字页码的当前解决方法?作为答案,但由于我从来不想在希腊文本中使用罗马数字,所以只需恢复 LaTeX 定义即可\@romanbabel增强”它也可以起作用:

\documentclass{book}
\usepackage{makeidx}

\makeatletter
\let\save@roman\@roman
\usepackage[greek,english]{babel}
\let\@roman\save@roman
\makeatother

\makeindex
\begin{document}
\frontmatter
foo\index{foo}
\mainmatter
\printindex
\end{document}

\@Roman当然,同样的想法也适用于。

相关内容