zepinglee / gbt7714-bibtex-style

GB/T 7714-2015 BibTeX Style
LaTeX Project Public License v1.3c
1.16k stars 197 forks source link

如何改变bst文件,使得文中显示参考文献的所有作者为:A,B和C #85

Closed Cindy2022 closed 2 years ago

Cindy2022 commented 2 years ago

请教一下,使用\citet*{} 想显示所有作者,但是不希望显示为A,B and C,而是希望显示为A,B和C。

已善用搜索,搜到类似的问题如下: https://github.com/mohuangrui/ucasthesis/issues/44

但是其中的回复: “那个 and 要改的话只能你自己手动去修改 Biblio 里的 bst 文件了,或者可以考虑求助 zepinglee https://github.com/zepinglee/gbt7714-bibtex-style https://github.com/zepinglee/gbt7714-bibtex-style 。 ” 现在的问题是,请教这里的大神,该如何修改 Biblio 里的 bst 文件?(如果过程不太麻烦的话,感恩!)

补充一下,调用的是super的样式 \usepackage[super,list]{Style/artratex}

zepinglee commented 2 years ago

我没处理过 \citet* 这类所有作者的姓名格式,所以改起来比较复杂。

需要问一下你这里的“and”/“和”是取决于文献本身的中/英文还是引用的上下文的中/英文?

Cindy2022 commented 2 years ago

我没处理过 \citet* 这类所有作者的姓名格式,所以改起来比较复杂。

需要问一下你这里的“and”/“和”是取决于文献本身的中/英文还是引用的上下文的中/英文?

我发现一概显示的都是“and”: 因为上下文为中文环境,同时\citet*{}括号内部,中文的文献的时候,显示为and;当然中文环境+英文文献的时候,也是and

p.s. 如果过于麻烦就不用了哈,只是正好有这个需要,想着看看会不会可能快速有办法搞定。如果绕一圈浪费您时间就不值当啦,很谢谢大神回复!

hushidong commented 2 years ago

实现应该是能够实现的,只不过要在natbib原有的机制上改是比较麻烦的,所以这个时候最快的方式还是换一个更适合的工具。UCAS是提供biblatex选项的,使用biblatex的话,你只需要添加如下代码到导言区即可。

\DefineBibliographyStrings{english}{
        andincitecn = {和},%
        andincite   = {and}}

\DefineBibliographyExtras{english}{\def\finalandcomma{}}%

具体的示例见:https://github.com/hushidong/biblatex-gb7714-2015/issues/96

Cindy2022 commented 2 years ago

实现应该是能够实现的,只不过要在natbib原有的机制上改是比较麻烦的,所以这个时候最快的方式还是换一个更适合的工具。UCAS是提供biblatex选项的,使用biblatex的话,你只需要添加如下代码到导言区即可。

\DefineBibliographyStrings{english}{
        andincitecn = {和},%
        andincite   = {and}}

\DefineBibliographyExtras{english}{\def\finalandcomma{}}%

具体的示例见:hushidong/biblatex-gb7714-2015#96

明白了,原来是natbib源头的问题,所以不容易很快修改。 我大概试了一下在UCAS里面如果换成使用biblatex又确实会出现一些编译问题,所以暂时短期还是不花时间了,以后时间充裕一些的时候再尝试。也谢谢大神费心解惑啊!

Cindy2022 commented 2 years ago

p.s. 看到了关于ucasthesis选用了bibtex而没选择用biblatex的说明引用一个帖子里面看到的回复,供后续有类似问题的人作为参考:

“biblatex 确实更为可控,特别是局部调整的能力,当初尝试了在 bicaption 环境中做局部设定,但bibtex无法响应。可惜biblatex还需一定时间才能被广泛接受,特别是期刊排版上,博士论文往往是从期刊文章转移过来的,所以ucasthesis选用了bibtex。”

https://github.com/mohuangrui/ucasthesis/issues/167

p.s.. 这个issue可以关闭啦,感谢!

mohuangrui commented 2 years ago

@Cindy2022 你引用了一个过时的信息。ucasthesis已经完全支持 @hushidong 所开发的 biblatex 样式了。

忘记biblatex确实可以很轻松的实现你的要求。具体操作见:

https://github.com/mohuangrui/ucasthesis/wiki/%E6%96%87%E7%8C%AE%E6%A0%B7%E5%BC%8F#biblatex-%E5%90%AF%E7%94%A8

记得采用正确的编译方式:biber而非bibtex。然后记得修改默认的最大作者显示数目。

mohuangrui commented 2 years ago

对了,使用biblatex时,无需使用 \citet*{},而是直接用 \citet{}