如何让bookdown生成的Gitbook所有参考文献列表按字母排序?
解决bookdown Gitbook中split_bib模式下每章参考文献按字母排序的问题
我之前也碰到过这个情况——默认开启split_bib = TRUE时,每章末尾的参考文献是按引用先后顺序排列的,只有全书末尾的汇总参考文献会自动按字母排序。要让所有参考文献列表(包括每章的)都统一按字母排序,有两种简单可行的方法:
方法1:在输出配置文件中指定CSL样式
CSL(Citation Style Language)文件定义了参考文献的格式与排序规则,绝大多数标准CSL样式(比如APA、芝加哥作者日期格式)默认都是按作者姓氏字母排序的。
操作步骤:
- 找一个你需要的CSL文件(比如
apa.csl),把它放到你的bookdown项目根目录下。 - 修改项目中的
_output.yml文件,在gitbook的配置项里添加csl参数:
bookdown::gitbook: split_bib: TRUE csl: apa.csl
方法2:在主Rmd文件的YAML头中设置CSL
如果你更习惯把配置集中在主文件(比如index.Rmd)的YAML头部,也可以直接在这里指定CSL:
--- title: "你的书名" author: "你的名字" output: bookdown::gitbook: split_bib: TRUE csl: apa.csl ---
原理说明
默认情况下,split_bib = TRUE时bookdown会让pandoc按引用顺序生成每章的参考文献,而全书汇总的参考文献则是合并后按字母排序。通过指定CSL样式,我们强制pandoc遵循样式中定义的排序规则(通常是作者姓氏字母顺序),这样每章和全书的参考文献就都会统一按字母排序了。
内容的提问来源于stack exchange,提问作者Martin Smith
相关产品推荐
相关产品推荐

