Latex宏包gbt7714的格式问题:去掉OL

2024-01-03 09:31:39

问题

采用bibtex来格式化文献,文献的格式采用gbt7714宏包来格式化。感谢宏包的作者和一种贡献者,效果非常好,用起来也很方便。

唯一一个我自己的问题,看不得文献索引后面[J/OL]中的OL。

网上搜索一圈,有一些办法,但是不多。

办法一:干掉OL

有一个很简单的解决方法就是格式化bib文件。

当使用zotero或者其他软件输出bib文件时,把什么URL/DOI全部干掉,这样最终编译出来就没有OL标识,但是也没有DOI标识。

也可以写个脚本或者做个替换,把bib文件中的对应链接全部去掉。虽然简单,但是……我又喜欢文档中有DOI或者URL方便找文章。

方法二:不显示OL

最终在帮助文档中第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文件中干一些嘿嘿嘿……

总结

  1. 找到gbt7714-numerical.bst
  2. 改变对应的值
  3. #1代表是,#0代表否

文章来源:https://blog.csdn.net/withstand/article/details/135354426
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。