采用bibtex来格式化文献,文献的格式采用gbt7714宏包来格式化。感谢宏包的作者和一种贡献者,效果非常好,用起来也很方便。
唯一一个我自己的问题,看不得文献索引后面[J/OL]中的OL。
网上搜索一圈,有一些办法,但是不多。
有一个很简单的解决方法就是格式化bib文件。
当使用zotero或者其他软件输出bib文件时,把什么URL/DOI全部干掉,这样最终编译出来就没有OL标识,但是也没有DOI标识。
也可以写个脚本或者做个替换,把bib文件中的对应链接全部去掉。虽然简单,但是……我又喜欢文档中有DOI或者URL方便找文章。
最终在帮助文档中第7节自定义样式找到,这个OL原来是载体类型。
在对应的bst文件中,可以自由设置这个选项。
我是用的bibtex,那么这个文件就在C:\texlive\2022\texmf-dist\bibtex\bst\gbt7714
这样的位置,你要使用哪个样式就编辑对应的bst文件。
比如我就想编辑gbt7714-numerical.bst,就在对应的函数load.config
这个地方。把前面的#1改成#0就行。
对应的代码:
FUNCTION {load.config}
{
#2 'citation.et.al.min :=
#1 'citation.et.al.use.first :=
#4 'bibliography.et.al.min :=
#3 'bibliography.et.al.use.first :=
#1 'uppercase.name :=
#0 'terms.in.macro :=
#0 'year.after.author :=
#1 'period.after.author :=
#0 'italic.book.title :=
#1 'sentence.case.title :=
#0 'link.title :=
#1 'title.in.journal :=
#0 'show.patent.country :=
#1 'show.mark :=
#0 'space.before.mark :=
#0 'show.medium.type :=
"slash" 'component.part.label :=
#0 'short.journal :=
#0 'italic.journal :=
#0 'bold.journal.volume :=
#0 'show.missing.address.publisher :=
#1 'space.before.pages :=
#0 'only.start.page :=
#0 'wave.dash.in.pages :=
#1 'show.urldate :=
#1 'show.url :=
#1 'show.doi :=
#1 'show.preprint :=
#0 'show.note :=
#0 'show.english.translation :=
#1 'end.with.period :=
}
并且,作者已经设计了一大堆可以设置的选项。
如果我们在系统文件夹里修改,那么所有以后的使用全部都要被影响。
好消息是,latex和bibtex会优先使用当前目录下的bst文件。
所以,把gbt7714-numerical.bst拷贝一份到tex同文件夹,然后任意修改上表的选项……或者,干脆在bst文件中干一些嘿嘿嘿……
gbt7714-numerical.bst