You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:51:42