索引:在新列/页面上重复第一级项目?

索引:在新列/页面上重复第一级项目?

在我的家谱书中,我使用的是两级索引。第一级是姓氏,第二级是名字。索引项定义如下:

\index{Doe!John}

通常,第一级会包含许多第二级项目(一个姓氏,多个名字)。当第二级溢出到新列或页面时,我想重复第一级项目。这可以吗?

以下是默认行为的一个示例:

第 1 列:

Doe
    John, 3, 6, 9
    Melvin, 6, 14, 18
    Sally, 24, 32

第 2 列:

    Timothy, 11, 15, 27
    Victor, 5
Smith
    Gary, 7, 18

以下是我希望看到的:

第 1 列:

Doe
    John, 3, 6, 9
    Melvin, 6, 14, 18
    Sally, 24, 32

第 2 列:

Doe (continued)
    Timothy, 11, 15, 27
    Victor, 5
Smith
    Gary, 7, 18

请注意第一列开头的“Doe(继续)”。这结合了重新显示第一级名称和向其附加文本。

这可能吗?

编辑:这是一个最低限度的工作示例。

\documentclass[a4paper]{article}

\usepackage[paperwidth=8.5in,paperheight=3in]{geometry}

\usepackage{makeidx}
\makeindex

\begin{document}

Some text.

\index{Jones!Alvin}
\index{Jones!Billy}
\index{Jones!Carter}
\index{Jones!Dennis}

\index{Smith!Alex}
\index{Smith!Brian}
\index{Smith!Carrie}
\index{Smith!Dewey}
\index{Smith!Eric}
\index{Smith!Frank}
\index{Smith!Gary}
\index{Smith!Huey}
\index{Smith!Irma}
\index{Smith!Joey}
\index{Smith!Kevin}
\index{Smith!Louie}
\index{Smith!Martin}
\index{Smith!Ned}
\index{Smith!Opal}
\index{Smith!Paul}
\index{Smith!Quincey}
\index{Smith!Rosie}
\index{Smith!Steven}
\index{Smith!Thomas}

\index{White!Alice}
\index{White!Barney}

\printindex

\end{document}

我按照以下步骤进行操作:

pdflatex MWE.tex
makeindex MWE.idx
pdflatex MWE.tex 

这样会生成一个 PDF,其中索引在第一页的第一列和第二列以及第二页的第一列中都有“Smith”的名字。我希望第一页的第二列和第二页的第一列都以“Smith(续)”开头,但尚未找到任何方法来实现这一点。

答案1

repeatindex软件包(自 2001 年起)提供了此功能(请注意,它需要一种特殊.ind格式,可以使用附带的样式文件创建 repeatindex.ist)。但是,软件包 README 列出了一些已知问题:

  • 当重复某项时,后面两项后面会包含一个小的垂直空间
  • 如果最后一项是子项,并且是索引最后一页上的唯一条目,则省略​​重复

这两个问题都出现在您修改的示例中。第三个问题是,repeatindex似乎无法处理专门指向子项的索引项(即,没有至少一个自包含的条目),因此我不得不在您的示例中添加\item{Jones}\item{Smith}\item{White}

\documentclass[a4paper]{article}

\usepackage[paperwidth=8.5in,paperheight=3in]{geometry}

\usepackage{makeidx}
\makeindex

\usepackage{repeatindex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.mst}
item_0 "\n  \\item ["
delim_0 "], "
\end{filecontents}

\begin{document}

Some text.

\index{Jones}
\index{Jones!Alvin}
\index{Jones!Billy}
\index{Jones!Carter}
\index{Jones!Dennis}

\index{Smith}
\index{Smith!Alex}
\index{Smith!Brian}
\index{Smith!Carrie}
\index{Smith!Dewey}
\index{Smith!Eric}
\index{Smith!Frank}
\index{Smith!Gary}
\index{Smith!Huey}
\index{Smith!Irma}
\index{Smith!Joey}
\index{Smith!Kevin}
\index{Smith!Louie}
\index{Smith!Martin}
\index{Smith!Ned}
\index{Smith!Opal}
\index{Smith!Paul}
\index{Smith!Quincey}
\index{Smith!Rosie}
\index{Smith!Steven}
\index{Smith!Thomas}

\index{White}
\index{White!Alice}
\index{White!Barney}

\printindex

\end{document}

在此处输入图片描述

答案2

如果顶级项目没有页码,则可以通过添加item_x1到索引样式来编写分隔符。此外,添加花括号以防止项目名称中的方括号,样式变得

item_0 "\n  \\item [{"
delim_0 "}], "
item_x1 "}]\n    \\subitem "

相关内容