我正在创建包含一本很长的书的引文列表的文档,每个引文都与页码(来自书本)相关联。我想为包含书本本身页码的文档创建一个索引,而不是我正在创建的文档的页码。以下代码生成一个带有索引的文档,所有条目自然指向页码 1。我希望它们指向第 5、14 和 17 页。
\documentclass[10pt]{article}%
\usepackage{marginnote}
\usepackage[margin=1.5in]{geometry}
\usepackage{changepage}
\usepackage{imakeidx}
\makeindex[columns=2]
\setlength{\marginparsep}{-0.4em}
\setlength{\marginparwidth}{3em}
\setlength{\parindent}{0em}
\setlength{\parskip}{0.5\baselineskip}
\newcommand{\nt}[1]{\reversemarginpar\marginpar{\begin{footnotesize}#1 \end{footnotesize}}}
\begin{document}
\begin{footnotesize}
Truly man is a marvelously vain, diverse, and undulating object.\nt{5}\index{Diversity}
I am almost ready to vow irreconcilable hatred against all democratic
rule.\nt{14}\index{Democracy}
What causes do we not invent for the misfortunes that befall us?\nt{17}\index{Causes}
\end{footnotesize}
\cleardoublepage
\printindex
\end{document}
答案1
您可以定义个人的 MakeIndex 样式;如果名称与主文档的扩展名相同,.mst
则会自动使用。
在样式文件中,我们更改delim_0
(针对第一级索引项),并将delim_t
其添加到每个条目的末尾。
最后,我定义了一个包装器,\index
使用给定的书页作为参数。我重复使用\nt
,但如果您想要没有相应索引条目的注释,则可以使用其他命令。
\begin{filecontents*}{\jobname.mst}
delim_0 "\\ignore"
delim_t "\\ignore"
\end{filecontents*}
\documentclass[10pt]{article}%
\usepackage{marginnote}
\usepackage[margin=1.5in]{geometry}
\usepackage{changepage}
\usepackage{imakeidx}
\makeindex[columns=2]
\setlength{\marginparsep}{-0.4em}
\setlength{\marginparwidth}{3em}
\setlength{\parindent}{0em}
\setlength{\parskip}{0.5\baselineskip}
\newcommand{\nt}[2]{%
\reversemarginpar\marginpar{\footnotesize #1}%
\index{#2@#2\bookpage{#1}}
}
\protected\def\bookpage#1{,~#1}
\protected\def\ignore#1\ignore{}
\begin{document}
Truly man is a marvelously vain, diverse, and undulating object.\nt{5}{Diversity}
I am almost ready to vow irreconcilable hatred against all democratic
rule.\nt{14}{Democracy}
What causes do we not invent for the misfortunes that befall us?\nt{17}{Causes}
\printindex
\end{document}
该.ind
文件将
\begin{theindex}
\item Causes\bookpage {17}\ignore1\ignore
\indexspace
\item Democracy\bookpage {14}\ignore1\ignore
\item Diversity\bookpage {5}\ignore1\ignore
\end{theindex}
所以您可以看到排版是如何工作的:\bookpage
扩展到, <number>
并且之间的部分\ignore...\ignore
被忽略。
避免\begin{footnotesize}
。