在R Markdown中修改参考文献样式遇阻,求助alphadin.bst使用问题
嘿,我来帮你搞定这个参考文献样式的问题~
解决R Markdown参考文献去掉最后一位作者前"and"的问题
1. 先搞定alphadin.bst的路径和YAML配置
首先得确认你的alphadin.bst文件放对地方了——直接把它扔到和你的.Rmd文件同一个文件夹(项目根目录)里,这样R Markdown才能直接找到它。
然后修正YAML里的biblio-style参数:不需要带.bst后缀,改成下面这样就好:
biblio-style: alphadin
完整的YAML配置应该是这个样子(把你之前截断的部分补全,别留- \...这种占位符):
--- output: pdf_document bibliography: literatur.bib biblio-style: alphadin header-includes: - \usepackage{graphicx} - \usepackage{float} - \usepackage[ngerman]{babel} - \usepackage{fancyhdr} - \usepackage{hyperref} ---
2. 如果还是有"and",就得修改alphadin.bst文件本身
要是上面的步骤做完,参考文献里还是出现"and",说明这个bst文件默认就带这个规则,得手动改一下:
- 用记事本或者VS Code这类文本编辑器打开
alphadin.bst - 搜索
FUNCTION {format.names}这个函数,找到里面处理最后一位作者的代码段(大概是下面这个样子,不同版本可能略有差异):{ numnames #1 > { "," * } 'skip$ if$ t "others" = { " et~al." * } { " and " * s #2 "{vv~}{ll}" format.name$ * } if$ - 把代码里的
" and "改成空字符串"",或者结合你用的德语环境,改成", "(德语参考文献里最后一位作者前一般用逗号分隔) - 保存修改后的bst文件,然后重新编译你的R Markdown(记得清空缓存,让系统重新生成参考文献)
3. 最后再检查两个小细节
- 确认你的
literatur.bib里作者格式是对的:必须用and分隔每个作者(这是BibTeX的标准写法),比如:@article{sample, author = {Doe, John and Smith, Jane and Miller, Bob}, title = {Ein Beispielartikel}, journal = {Zeitschrift für Beispiele}, year = {2024} } - 编译的时候要跑全流程:R Markdown生成LaTeX文件后,得再跑一次BibTeX,然后再编译两次LaTeX,这样参考文献才能正确更新(大部分编辑器会自动帮你做,但手动编译的话别漏了步骤)
内容的提问来源于stack exchange,提问作者TobiSonne
相关产品推荐
相关产品推荐

