我想为索引中的每个条目提供章节标题和诗节编号。这很不寻常,但我正在写的书需要这样的格式。
在输出中,我希望章节标题出现在索引文本和诗句编号之间。对于诗句,我使用环境,verse
但这里不显示。
在下面显示的输出中,第一行是标题,在索引的每一页上重复。然后,根据三个示例经文,得到所需的输出:
索引文本、章节名称、诗节编号。
最公平...第一...1
死亡...秒...1
你的... 第三... 4
我想隐藏索引中的页码。
\documentclass[12pt,a4paper]{book}
\usepackage{index}
\usepackage{idxlayout}
\makeindex
\begin{document}
\printindex
\chapter*{First}
From \index*{fairest} creatures we desire increase,
That thereby beauty's rose might never die ... |1|
\chapter*{Second}
But as the riper should by time \index*{decease},
His tender heir might bear his memory ... |1|
\chapter*{Third}
But thou contracted to \index*{thine} own bright eyes,
Feed'st thy light's flame with self-substantial fuel ... |4|
\end{document}
答案1
或许:
\documentclass[12pt,a4paper]{book}
\usepackage{splitidx}\makeindex
\newindex[Index of Verses]{vrs}
\AtWriteToIndex{vrs}{\let\thepage\theverse}%
\newcounter{verse}
\newcommand*{\vindex}[2]{%
\setcounter{verse}{#2}%
\sindex[vrs]{#1, \currentchapter}%
}
\newcommand*{\xchapter}[1]{%
\chapter*{#1}\renewcommand*{\currentchapter}{#1}%
}
\newcommand*{\currentchapter}{}
\begin{document}
\xchapter{First}
From \vindex{fairest}{1} creatures we desire increase,
That thereby beauty's rose might never die ... |1|
\xchapter{Second}
But as the riper should by time \vindex{decease}{1},
His tender heir might bear his memory ... |1|
\xchapter{Third}
But thou contracted to \vindex{thine}{4} own bright eyes,
Feed'st thy light's flame with self-substantial fuel ... |4|
\printindex[vrs]
\end{document}
请注意,您必须将 的调用替换makeindex
为splitindex
。因此您应该
latex foo.tex
splitindex foo
latex foo.tex
使用 获得结果Index of Verse
。TeX Livesplitindex
有一个链接splitindex.pl
。如果您使用的是 Windows 和 MiKTeX,您可以安装 Perl 或使用splitindex.exe
。
如果运行splitindex
对您来说是个问题,您可以尝试选项split
加载包splitidx
:
\usepackage[split,makeindex]{splitidx}
在这种情况下,您必须使用文件运行 makeindex <foo>-vers.idx
:
latex foo.tex
makeindex foo-vers
latex foo.tex
请更换foo
。请参阅手册分裂指数有关运行该程序的几种变体splitindex
以及包的选项和宏的更多信息splitidx
。
您不需要在定义时使用第二个参数\vindex
,而是可以通过设置计数器诗句来设置诗句编号,例如使用环境或命令来设置诗句。