索引标题中的特殊字符问题

索引标题中的特殊字符问题

我是一名使用 LaTeX 写作的法国学生。我使用 来创建多个具有不同名称的索引splitidx。我希望我的索引出现在目录中,所以我使用了tocbibind。一切正常,但如果我的索引标题中有一个重音符,我会收到与编码相关的错误消息。这是一个 MWE(嗯,不工作可能更准确!)。你知道我该如何礼貌地要求tocbibind正确扩展目录中的索引标题吗?

多谢。

\documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[makeindex]{splitidx}
\usepackage{tocbibind}
\newindex[Index des journaux et séries]{jo}
\newindex[Index des noms de personnes]{np}

\begin{document}

\tableofcontents

Ici du texte avec des accents qui fonctionne : é, à ç, è. Une indexation pour jo\sindex[jo]{phenix@Phenix} et une pour np\sindex[np]{phenix@Phenix}.

\printindex[jo]
\printindex[np] 

\end{document}

我想我知道问题出在哪里了。如果我尝试使用重音符号的章节,它会被写入\IeC {\'e}toc 文件中,而我的索引标题始终保持其 é,即使我在文本中输入 \IeC {\'e}。

答案1

\xdef问题在于in的用法\newindex,而本应为\protected@xdef\xdef索引标题中几乎任何重音字符都会产生错误。tocbibind此问题与软件包无关。

这是一个应该由软件包作者修复的错误。

\documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[makeindex]{splitidx}
\usepackage{xpatch}
% let's use \protected@xdef instead of \xdef in \newindex
\makeatletter
% there are four occurrences
\xpatchcmd{\newindex}{\xdef}{\protected@xdef}{}{}
\xpatchcmd{\newindex}{\xdef}{\protected@xdef}{}{}
\xpatchcmd{\newindex}{\xdef}{\protected@xdef}{}{}
\xpatchcmd{\newindex}{\xdef}{\protected@xdef}{}{}
\makeatother

\usepackage{tocbibind}
\newindex[Index des journaux et séries]{jo}
\newindex[Index des noms de personnes]{np}

\begin{document}

\tableofcontents

Ici du texte avec des accents qui fonctionne : é, à ç, è. Une indexation pour 
jo\sindex[jo]{phenix@Phenix} et une pour np\sindex[np]{phenix@Phenix}.

\printindex[jo]
\printindex[np]

\end{document}

答案2

如果您不坚持splitindex尝试imakeidx,语法是类似的,并且没有关于特殊字符的错误,至少在这个例子中没有。

\documentclass[10pt,a4paper]{book}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[makeindex]{splitindex}
\usepackage[splitindex]{imakeidx}%
\usepackage{tocbibind}
%\newindex[Index des journaux et séries]{jo}
%\newindex[Index des noms de personnes]{np}

\makeindex[name=jo,title={Index des journaux et séries}]
\makeindex[name=np,title={Index des noms de personnes}]
\begin{document}

\tableofcontents

Ici du texte avec des accents qui fonctionne : é, à ç, è. Une indexation pour jo\index[jo]{phenix@Phenix} et une pour np\index[np]{phenix@Phenix}.

\index[jo]{é@letter é}


\printindex[jo]
\printindex[np] 

\end{document}

我随机地把一些索引条目放在那里,没有直接链接到正确的位置;-)

在此处输入图片描述

相关内容