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

如何修改LaTeX natbib的\bibliographystyle{dcu}样式以满足期刊要求?

嘿,针对你用natbib和dcu样式遇到的格式问题,我给你两个方向的解决方案——要么直接修改dcu的bst文件搞定细节,要么试试其他更贴近的样式,一起来看看:

一、修改dcu样式满足你的需求(去掉年份括号+期刊名非斜体)

因为你已经觉得dcu样式接近要求,直接修改它的bst文件是最高效的办法,步骤很清晰:

1. 复制自定义bst文件

找到你的TeX发行版里的dcu.bst(一般在texmf/bibtex/bst/natbib/路径下),把它复制到你的项目文件夹里,重命名为my-dcu.bst(别覆盖原文件,方便后续恢复)。

2. 去掉年份的括号

打开my-dcu.bst,搜索处理年份的函数:

  • 大概率能找到FUNCTION {format.date}或者FUNCTION {output.year.check},原代码可能长这样:
    FUNCTION {format.date}
    { year duplicate$ empty$
        { pop$ "" }
        { "(" swap$ ")" }
      if$
    }
    
    把里面的括号删掉,改成:
    FUNCTION {format.date}
    { year duplicate$ empty$
        { pop$ "" }
        { swap$ }
      if$
    }
    
    要是你看到的是"(" year * ")" *这种写法,直接把"("和")"这两个字符串删掉就行。

3. 将期刊名改为非斜体

继续在my-dcu.bst里找FUNCTION {article}函数,里面肯定有一行处理期刊名的代码,类似:

journal emphasize output

把emphasize去掉,改成:

journal output

emphasize在dcu里是用来生成斜体的(底层调用\textit),直接输出期刊名就会变成普通非斜体格式。

4. 启用自定义样式

把LaTeX文档里的\bibliographystyle{dcu}换成:

\bibliographystyle{my-dcu}

然后按「LaTeX → BibTeX → LaTeX ×2」的顺序重新编译,就能看到修改后的效果啦。

二、推荐其他贴近需求的natbib样式

如果不想手动改bst,你可以试试这些现成样式:

  • plainnat: 基础的natbib标准样式,年份默认带括号,但期刊名是斜体,修改年份部分的工作量很小;
  • agsm: 经典哈佛引用样式,年份不带括号(直接跟在作者名后),不过默认期刊名是斜体,同样只需小改bst就能去掉斜体;
  • unsrtnat: 和plainnat逻辑一致,但参考文献按引用顺序排序,年份带括号,改年份部分就能符合你的要求。

不过还是那句,既然你已经觉得dcu最接近需求,自定义修改它肯定是最省心的选择。

内容的提问来源于stack exchange,提问作者Qinrui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:53:04