用 æ ø 和 å 表示的索引

用 æ ø 和 å 表示的索引

我已经创建了我的文档的一个最小示例。我想创建一个索引,但字母 Æ、Ø 和 Å 被视为符号而不是字母,如下所示: 在此处输入图片描述

\documentclass[10pt,a4paper]{report}
 \usepackage[utf8]{inputenc}
 \usepackage[english]{babel}
 \usepackage{lmodern}
 \usepackage{imakeidx}
 \makeindex[columns=3, title=Index, intoc,options=-s Index.ist]
\begin{document}
\chapter{First Chapter}
\index{Børge}
\index{Børge!Hej med dig}
\index{Børge!Hey with you}
\index{A}
\index{hej}
\index{Cykel}
\index{wow}
\index{hn}
\index{$\sigma$}
\chapter{Second chapter}
\index{hesj}
\index{AA}
\index{Åse}
\index{æse}
\index{øse}
\index{Yrsa}
\index{Yrsa!Carla}
\index{hejsas}
\index{heASDASDj}

\printindex
\end{document}

我正在使用的名为 Index.ist 的 ist 文件是这样的:

 headings_flag 1
 heading_prefix "\\textbf\{\\color\{black\}"
heading_prefix "\n\\centering\\large\\sffamily\\textbf{\\color\{black\}}%
\\noindent\\textbf{"heading_suffix "}\\par\\nopagebreak\n"
heading_suffix "\}\\nopagebreak\n"
item_0 "\n \\item \\small \\color\{black\}"
delim_0 " \\dotfill "
delim_1 " \\dotfill "
delim_2 " \\dotfill "

知道如何解决这个问题吗

答案1

![ ]1xindy 不仅仅是一个包,你必须运行它。来自 CTAN 的简短描述:

Xindy 可用于处理使用 (LA)TEX、Nroff 系列和基于 SGML 的语言标记的文档的索引。

几年前,当我不使用 utf-8 时,我使用过一种解决方法,即将索引条目分成两部分,一部分是按字母顺序排序的 ansii 条目,另一部分是要打印的内容。例如,在法语或波兰语中

 \index{Conde-sur-l'Escaut@Cond\'e-sur-l'Escaut}
 \index{Dazbrowa Gornicza@D\cog abrowa G\'ornicza}

您可以在第二个条目中看到我在“Da”后添加了一个“z”,因为根据波兰字母表,ą 应该排在 az 之后。D\cog abrowa G\'ornicza 将打印为 Dąbrowa Górnicza。

这应该与 makeindex 一起使用,如果您的索引很短并且您没有时间学习 xindy,那么可能值得一试。确实非常(太?)过时了……

答案2

您必须使用 Xindy 作为索引处理器。不过,我无法理解如何让它处理符号。:-(

\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{lmodern}
\usepackage{imakeidx}
\makeindex[
  columns=3,
  title=Index,
  intoc,
  program=truexindy,
  options=-M texindy -C utf8 -L danish,
]
\begin{document}
\chapter{First Chapter}
Text
\index{Børge}
\index{Børge!Hej med dig}
\index{Børge!Hey with you}
\index{A}
\index{hej}
\index{Cykel}
\index{wow}
\index{hn}
\index{sigma@$\sigma$}

\chapter{Second chapter}
text
\index{hesj}
\index{AA}
\index{Åse}
\index{æse}
\index{øse}
\index{Yrsa}
\index{Yrsa!Carla}
\index{hejsas}
\index{heASDASDj}

\printindex
\end{document}

-shell-escape按照手册中的说明使用选项进行编译。要更改索引格式,您需要使用 Xindy 方法。

这就是结果;我可以看到 的错误条目æse,但这是 Xindy 的问题。

以下是让它发挥作用的一个技巧:

\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{lmodern}
\usepackage{imakeidx}
\makeindex[
  columns=3,
  title=Index,
  intoc,
  program=truexindy,
  options=-M texindy -C utf8 -L danish,
]

\makeatletter
\AtBeginDocument{%
  \renewcommand\index[2][\imki@jobname]{%
    \@bsphack
    \begingroup\edef\x{\endgroup\noexpand\@index[#1]{\detokenize{#2}}}\x
  }%
}
\makeatother


\begin{document}
\chapter{First Chapter}
Text
\index{Børge}
\index{Børge!Hej med dig}
\index{Børge!Hey with you}
\index{A}
\index{hej}
\index{Cykel}
\index{wow}
\index{hn}
\index{sigma@$\sigma$}

\chapter{Second chapter}
text
\index{hesj}
\index{AA}
\index{Åse}
\index{æse}
\index{øse}
\index{Yrsa}
\index{Yrsa!Carla}
\index{hejsas}
\index{heASDASDj}

\printindex
\end{document}

在此处输入图片描述

但实际上这并不是最好的。可能需要更好的清理方法。当然,使用 Unicode 引擎应该可以解决所有问题。

相关内容