如何修改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
相关产品推荐
相关产品推荐

