在论文里添加索引(二)

那么上一篇部落格讲了在论文里添加简单的索引的入门方法。问题就来了,你是一个优秀的语言学家,你的论文里不可能只有一种语言的词汇。你想把所有引用过的词汇都放到索引里,并且按它们所属的语言分开。这样读者就可以轻松找到每一种语言的某个词汇在哪一页了。

如果你有这样的野心,最能帮到你的package就是splitidx了。赶紧点进去下载放好。使用它,在preamble里果断:

1
\usepackage{splitidx}

好了以后,我们把上次编的command改一下。主要是把原来的\index改成\sindex,sindex就是split index的缩写。假设我们要做三种语言的index,分别是Bragdbar, Khroskyabs和Japhug,那么我们就要写下三个command:

1
2
3
\newcommand{\bw}[2]{\ipa{#1} `#2'\sindex[bragdbar]{{\textit{#1} `#2'}}}
\newcommand{\jp}[2]{\ipa{#1} `#2'\sindex[japhug]{{\textit{#1} `#2'}}}
\newcommand{\khr}[2]{\ipa{#1} `#2'\sindex[khroskyabs]{{\textit{#1} `#2'}}
}

这些command应该都能看懂了吧,看不懂也不要紧,把里边能自定义的都改成你自己的那些就好。

改完command以后。我们在preamble里加上要生成的索引(们)。我们希望所有Bragdbar的单词都归在一起,所有Khroskyabs的单词都在一起,同样所有Japhug的单词都在一起。各得其所。所以我们给每一个都整一个\newindex

1
2
3
4
\makeindex
\newindex[Bragdbar]{bragdbar}
\newindex[Japhug]{japhug}
\newindex[Khroskyabs]{khroskyabs
}

中括号里是index的名字。大括号里是你刚刚加上的newcommand的名字。

然后在你需要index出现的地方,写:

1
\printindex*

最后这个星号可不能小看,它可以print出所有的index。

这样,准备工作都做好了。

好!那我们来Terminal。请打开你的Terminal或者命令提示符或者类似的东西,cd空格你.tex的文件夹:

1
cd .../.../你的.tex文件的文件夹(而不是文件本身)

回车,然后编译(比如我的.tex文件叫doindx.tex):

1
xelatex doindx.tex

编译好了以后呢,我们就要开始拆分不同语言的索引了。继续在Terminal中输入:

1
splitindex doindx

这时你会得到三个新文件。因为你有三种语言:doindx-bragdbar.idx, doindx-japhug.idx, doindx-khroskyabs.idx。这三个文件就是每个语言的索引之源!现在我们要继续在Terminal中分别对它们makeindex。

1
makeindex doindx-bragdbar.idx

回车

1
makeindex doindx-japhug.idx

回车

1
makeindex doindx-khroskyabs.idx

再回车。

做完了这几部以后,我们再度编译.tex文件:

1
xelatex doindx.tex

回车,成功了。

打开一看,哇,居然有三种语言的索引嘢!你可以做更多的语言!太好了。

现在我把我的实例,doindx.tex和生成出来的结果doindx.pdf上传供大家下载,点击文件名就可以下载了。有了索引,博士论文居然看起来更专业了!

Author: Lai, Yunfan

目前是马克斯普朗克协会人类历史科学研究所(Max-Planck Institut für Menschheitsgeschichte)的博士后。

评论