如何给 markdown 书稿添加索引 | How to make an index page for a book
缘由
《Steem 指南》编辑部今天收到一个建议,是 @vandadream 搜集来的,原文在这里,大意是,@wentong-syhhae 建议在书稿末尾增加一项索引(index),并且说,索引在中文书里不常见的,但是很有用。
啥是索引?就是这个:
简单来说,索引就是列出书里对读者比较重要的关键词,以及他们在书里出现的页码。
在网页格式的电子书里,索引其实没多大必要。想搜哪个关键词,ctrl + f 就行了。不过,在 pdf 和纸质书里还是很有帮助的。
那么,如何往 pdf 和纸质书里添加索引呢?难道要手动挨个找页码吗?
方法
不用愁,我们的书稿协作平台,从一开始就具备轻松添加索引的能力,因为我们选择的是 markdown!在幕后,pandoc 会将 markdown 格式转成 LaTeX 格式,然后编译成 pdf,而 LaTeX 是轻松支持索引的。
作为书稿的作者,如果想添加索引,很简单:
在需要索引的地方加入\index{条目名称}
就行了。书后会自动添加索引条目,页码自动生成!
现在来书稿的pdf 文件里看,已经有索引了。
示例
举个栗子。《Steem 指南》第 15 章“Steem 十讲”里有这样的文字:
Steem 其实在 HF19 之前的设计其实是鼓励 users 在 SP 的存放上集中到单一 account 的,……
HF19 这个关键词比较重要。为了方便读者找到书里哪里出现了 HF19,可以这样添加索引:
Steem 其实在 HF19 \index{HF19} 之前的设计其实是鼓励 users 在 SP 的存放上集中到单一 account 的,……
条目名称 HF19 就是出现在书尾里的名称。我添加了三处。这样一来,编译得到的书后面就自动出现了索引页,显示了条目名称和出现的页码:
条目名称也可以写成别的:
Steem 其实在 HF19 \index{硬叉19} 之前的设计其实是鼓励 users 在 SP 的存放上集中到单一 account 的,……
这样,书末的索引页出现的关键词就成了“硬叉19”。
在多位作者的初稿编写阶段,不宜各自添加索引。你想啊,很多人都用到了 HF19 这个词,有的添加了索引,有的没添加;作者甲用的条目是\index{硬叉19}
,作者乙用的是\index{HF19}
,作者丙用的是\index{HF 19}
,最后就出现了三个不同的关键词,容易混乱。
添加索引这一步,我的建议是到统稿时完成。到时候,只需将全文的 HF19
查找替换成HF19 \index{HF19}
就行了。
进阶
上面讲的是简单索引。我们还可以添加多级索引。下面是我的《学 R ——零基础学习 R 语言》一书的索引:
添加方法也很简单,在需要插入索引的地方,用一个惊叹号把父子两级索引分隔即可。例如,上图里“作图”下面的abline 条目是这样生成的:
\index{作图!abline}
总结
- 往 markdown 书稿里添加索引,只需在相关位置加入
\index{条目名称}
就行了。多级索引则添加\index{父条目!子条目}
。 - 在多位作者的初稿编写阶段,不宜各自添加索引,容易带来混乱。添加索引这一步,我的建议是到统稿时完成。
这才明白了索引的用处。
就相当于ctrl + f。
支持这点,感觉应该等都定稿了,大家提出自己的关键字+页码,汇总到一人那里,统一做索引。虽说众人拾柴火焰高,但有时候线路多了反而乱了阵脚
不用管页码。页码是自动生成的。
good effort
Thanks.
技术小白看懂了一半,继续琢磨
这个不用懂……
这不就是英语课本最后的单词表嘛!
正解
good luck with your good friends. hopefully my friends are successful
Thanks.
You are welcome my friend
@dapeng, 世界上有一种人叫作家,你就是其中之一!
Congratulations @dapeng! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of posts published
Click on any badge to view your own Board of Honor on SteemitBoard.
To support your work, I also upvoted your post!
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP