【latex】使用natbib+gbt7714包时如何不显示参考文献DOI号
latex使用natbib+gbt7714包时如何不显示参考文献DOI号?
1. 说明
最近在弄毕业设计,个人不太喜欢用word写这种包含大量图片的东西,每次用word排版图片的时候都要抓狂了,经常乱跑。好在我对markdown比较了解,也听说过latex,于是搜索我们学校的latex毕设论文模板,还真找到了学长开源的github模板,便拿来使用。
现在学校的毕设论文要求有一定更新,参考文献中不需要显示DOI号了,所以需要想办法将其隐藏。
2. 问题查看
2.1. 原始模板
原始模板中采用了如下语句定义了参考文献部分的格式,使用的是natbib和gbt7714的格式。
1 | % 使用gbt7714 |
2.2. 咨询AI
由于我在网上直接搜索没有找到解决方案,于是问起来AI,他们给出了下面两种方案
1 | \usepackage[nodoi, sort&compress]{gbt7714} |
经过测试,这两种方案都不行,虽然编译没有报错,但是DOI号还是显示出来了。
AI还给出了一个方案就是从natbib切换成biblatex,但是这个模板并不是我编写的,我不太清楚biblatex要怎么定义成现在这个样式,所以还是不做这种大规模修改了。
3. 问题解决
3.1. 方法一:取巧办法
首先说个取巧办法,那就是在参考文献列表的bib文件中把所有的doi =
都给替换成note =
(或者直接注释掉doi =
),让它们直接不被当作DOI号,也就不会渲染出来,问题解决。
1 | % 原始 |
3.2. 方法二:修改bst文件
最开始我没有理解原始模板中\bibliographystyle{gbt7714-numerical}
的含义,在搜索相关资料的时候无意间看到了一篇博客里面提到了\bibliographystyle
会引用一个bst文件,果然,在模板目录中找到了gbt7714-numerical.bst
文件,并在里面找到了输出DOI号的部分。
1 | FUNCTION {output.doi} |
这里面有一个判断条件是show.doi
,它是一个整形变量,当这个变量为1,而且满足doi empty$ not
即DOI字段不为空的时候才会去显示DOI信息。
要做的就是在bst文件的开头针对show.doi
变量的赋值部分,将原本赋值的1改成0就可以了!
1 | FUNCTION {load.config} |
修改后如下,将#1
改成#0
,即不显示DOI号。
1 | FUNCTION {load.config} |
经过测试,确实不显示DOI号了!
这种方法肯定比把bib文件里面的doi =
全都改成note =
更好!