我正在为一份大型科学手稿编制索引。我希望索引条目以脚注的形式出现在索引中,作为 page-n-footnote。感谢论坛中 brannerchinese 的代码,我几乎解决了这个问题。问题是脚注索引没有正确排序。索引中的“Tiger”条目输出为
老虎,我,1 老虎,in1
当应该
老虎,我,在1,1
.idx 条目的形式为
\indexentry{Tiger}{i}
\indexentry{Tiger@Tiger|pageandfn{1}}{i}
以及以下形式的 .ind 条目
\item Tiger, i, 1
\item Tiger, \pageandfn{1}{i}
代码如下:
\documentclass[10 pt,twoside]{memoir}
\chapterstyle{ell}
\usepackage{imakeidx}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\makeindex
\makeatletter
\let\latex@roman\@roman
\makeatother
\usepackage[russian,greek,english]{babel}
\makeatletter
\let\@roman\latex@roman
\makeatother
%these next two commands from
%https://tex.stackexchange.com/questions/328833/page-n-footnote-number-in-index-with-texindy
\newcommand{\pageandfn}[2]{#2n#1}
\newcommand{\indexfn}[1]{\index{#1@#1|pageandfn{\thefootnote}}}
\pagestyle{ruled}
\begin{document}
\frontmatter
\chapter{Preface}
Here's a page and a footnote for the front matter. Elephant.\index{Elephant} Tiger.\footnote{Tigers are ferocious!\indexfn{Tiger}}\index{Tiger}
\mainmatter
\chapter{First things first}
Here's a page and a footnote for the main matter.\footnote{Cobras are dangerous!\indexfn{Cobra}} Red panda \index{Red panda} \index{Tiger}
\indexprologue{\noindent\textbf{Bold} page numbers indicate where a term is defined; page numbers for entries occuring in a footnote are followed by an \emph{n} and the footnote number.}
\printindex
\end{document}
这是 .idx 文件:
\indexentry{Elephant}{i}
\indexentry{Tiger}{i}
\indexentry{Tiger@Tiger|pageandfn{1}}{i}
\indexentry{Red panda}{1}
\indexentry{Tiger}{1}
\indexentry{Cobra@Cobra|pageandfn{1}}{1}
And here's the .ind file:
\begin{theindex}
\item Cobra, \pageandfn{1}{1}
\indexspace
\item Elephant, i
\indexspace
\item Red panda, 1
\indexspace
\item Tiger, i, 1
\item Tiger, \pageandfn{1}{i}
\end{theindex}
我对自己很无知表示歉意,也非常感谢小组成员多年来的大力帮助!
答案1
我不太清楚makeindex
为什么
\indexentry{Tiger}{i}
\indexentry{Tiger@Tiger|pageandfn{1}}{i}
#1@#1
分成两个单独的条目。我想知道为什么在这个宏中使用
\newcommand{\indexfn}[1]{\index{#1@#1|pageandfn{\thefootnote}}}
事实上,如果我们将其改为
\newcommand{\indexfn}[1]{\index{#1|pageandfn{\thefootnote}}}
然后makeindex
将条目折叠成一只老虎。
我通常使用xindy
它进行索引,它会自动将两者折叠到同一个条目中(使用原始宏定义),但它会忽略该|pageandfn{1}
部分。我们可能能够让它在正确的xindy
配置下工作,但|xxx
支持xindy
非常有限