我即将开始做一件我从未做过的事情(至少是认真的):为大约 200 页的文档准备索引。我已经开始了,但我感觉“有些不对劲”。
我知道我必须做索引当我写文件的时候——这只是为了帮助我制定自己的基本规则。
以下是一些典型的疑问:
- 我是否应该尝试识别主要参考文献(使用粗体或彩色的页码)?(我有自己的
\ixmain
命令。) - 我应该投入多少精力来生成页面范围?(我有自己的
\ixstart
和\ixend
这个。) - 我应该在多大程度上依赖“see”构造,尤其是对于缩写和(常用或本地)首字母缩略词?:
\index{session identifier|see{session id}}
\index{session identifier|see{\textsc{sid}}}
\index{process identifier|see{\textsc{pid}}}
- 我应该将索引冗余到什么程度?例如,我应该将以下哪些索引条目设置为冗余?不是使用?:
\index{session identifier}
\index{identifier!session}
\index{session!identifier}
\index{session id}
\index{sid@\textsc{sid}}
问题是:遵循哪些指导原则可以使指数变得用户友好?
欢迎提供详细解释或参考
答案1
将其作为答案发布,因为它对于评论来说太长了,但我的目的不是详尽无遗(事实上也不是客观性)。
我的第一个建议是,无论您如何选择要索引的术语,都要使用和滥用|
索引命令中的语法(手动或通过创建自己的命令来执行此操作):
它适用于页面范围,通过连续索引:
\index{something|(} ... \index{something|)}
它也适用于您可能想要添加到页码的任何格式命令。本质上,您可以在后面放置任何控制序列名称|
,前提是其最后一个参数(如果有)是隐式页码。
例如,当某些内容位于脚注中时,我定义:
\newcommand{\note}[1]{#1~(\emph{n.})}
然后我可以使用:\index{something|note}
– 没有反斜杠 – 输出:
某物,36(n.)
这可以用来将页码以粗体显示,或诸如此类。标明主要参考文献对我来说是个好主意,尽管这取决于个人喜好(有些人这样做,有些人不这样做)。
现在,关于您的问题本身,一般的想法是您应该在最有意义的地方和/或读者最有可能寻找它们的地方索引术语。
对我来说,这意味着如果你有一个包含名词和形容词的表达式,比如“英国帝国主义”,你会索引:
帝国主义,英国,39
和最终(形容词通常不应该是索引标题):
英国帝国主义,参见帝国主义
关于缩写,同样的逻辑也适用。由于缩写代表完整表达,因此将读者重定向到那里似乎是合乎逻辑的,有点像词汇表。因此,与你在问题中提出的观点不同,我会善待读者(如果他严格来说不是你的领域人士,那么他很可能不记得所有的缩写),并建议:
EIC,请参阅东印度公司 (英国)
东印度公司(英国),45
但可能存在许多变体;例如,同样有效的构造可能是:
东印度公司(EIC),45
然后,还有一些复杂的情况,即有两个名词(或单词)的语义权重大致相等,并且不清楚应该对哪一个进行索引。我想,在这种情况下,这取决于上下文。
如果您认为读者可以合理地查找任一术语,那么请使用“查看”结构对两者进行索引。
如果由于其他原因(可能带有子条目),两个术语本身都已经被编入索引,那么用“参见”结构来重定向读者几乎总是值得的。
回到我的第一个例子,虽然我不一定(只是最终) 单独索引“英国帝国主义”只是为了“查看”构造,如果我已经有两个关于“英国”和“帝国主义”的重要条目,我肯定会写:
英国,2,18-29,23:经济,5,33-39;帝国主义(见帝国主义)
帝国主义:英国,37;荷兰,74;法国,82
我发现,尽可能创建匹配的索引标题是一种很好的做法;我真正指的是一致性。如果你有两件具有相似逻辑结构的事情,请以相同的方式对它们进行索引。比如,如果你正在索引人名以引导读者查看传记信息,请尝试以相同的方式为每个人构建子条目。我并不是说它们应该完全相同,而是当(在子条目中)确实出现相似之处时,你应该确保它们在你的索引中以相同方式出现。
说,不要索引:
史密斯,约翰:《伦敦岁月》,46
后面还有几条记录:
特纳,杰克:住在曼彻斯特,32岁
这是不一致且尴尬的。
这里是芝加哥格式手册对“参见”引用的立场:
例如,参考文献引导读者从非正式术语到专业术语、从假名到真实姓名、从倒置术语到非倒置术语。它们还用于变体拼写、同义词、别名、缩写等。
这牛津风格指南在这个问题上大体相似。这两本书都没有提供关于缩写和其他复杂问题的非常精确的信息,但它们有关于索引专有名词和标点索引条目的精彩章节。
最后,关于索引过程,虽然我同意目前为止的大多数评论——大多数工作都是在你几乎完成写作时进行的——但我认为有些东西你可以在旅途中索引,作为“标记”。如果一个词如此重要以至于可以成为章节标题,或者你以精确的方式定义它,那么它将要无论如何都会被编入该标题下,因此您不妨在写作时这样做。
这将为您提供索引的基本框架,您可以在完成其他所有工作后对其进行改进。我发现打印索引(使用 MakeIndex 或打印在纸上)很有帮助,然后我可以确定哪些条目是多余的,哪些是缺少的,哪些可以合并或重新排列,并相应地修改我的文档。
答案2
(考虑到问题中发现的索引示例,这可能并不重要,但也许对在这里寻找想法的其他人会有所帮助。这是一个针对特定案例的潜在最佳实践的示例---所以我不确定是否应该保留这个答案。对于更一般的观察,应该看看@ienissei的答案。)
索引名称尤其成问题,对于有词形变化的语言来说,情况会更糟。这是我为索引此类名称想出的解决方案。它假设存在某种多重索引设置(memoir
在我的情况下是)和xparse
,并且大多数页面上都有多个脚注,因此需要特定的脚注引用。
本例中的名字是 Augustine,它需要在索引中显示为“Augustine, Saint”,但在文本中可能显示为“Augustine”、“Augustinus”、“Augustinum”或“Augustini”(可能还有其他几个,但这将涵盖 99% 的情况)。不过,大多数情况下,将使用英语版本。因此,您可以执行以下操作:
\newcommand{\nnn}[2]{#2n#1}% for 3n39 in index
\NewDocumentCommand {\augustine} {s o}
{\IfNoValueTF {#2}%
{\IfBooleanTF {#1}% -- with no optional argument
{\index[indexmain]{Augustine, Saint|nnn{\thefootnote}}}%
{\index[indexmain]{Augustine, Saint}}%
}%
{\IfBooleanTF {#1}% -- with optional argument
{\index[indexmain]{Augustine, Saint!#2|nnn{\thefootnote}}}%
{\index[indexmain]{Augustine, Saint!#2}}%
}%
}%
\newcommand\Augustine{Augustine\augustine}%
(请注意,我有一个不同的索引\newcommand{\nn}[2]{{\itshape#2n#1}}
,它用于另一个索引以斜体显示某些类型的参考资料。)
无论如何,现在您可以简单地写“Augustine”,当您不想将他编入索引时,\Augustine
当您确实想将他编入索引时,而 an\augustine*
将为索引提供页码和脚注编号。并且您仍然可以在需要时使用可选参数;例如,
\augustine[just war theory of|(]% opens a page ranged entry, which must be closed
无论如何,这种方法的缺点是书中出现的所有人都需要自己的命令,但当他们的名字以多种不同形式出现时,这似乎是最灵活的解决方案。(不过,我很高兴被证明是错的。)