10 biblatex使用不同的backend实际效果不同的疑问

发布于 2024-10-06 01:26:44

在测试使用gb7714-2015的中文文献引用格式时出现下面的情况。
CASE1: backend=bibtex 不符合GB7714格式规范

\documentclass{ctexart}
\usepackage[%backend=biber,
            backend=bibtex,
            citestyle=gb7714-2015,
            bibstyle=gb7714-2015]{biblatex}
\addbibresource{testbibtex.bib}
\begin{document}
    我能吞下玻璃而不伤身体\cite{新质生产力2023}。我能吞下玻璃而不伤身体。我能吞下玻璃而不伤身体。我能吞下玻璃而不伤身体。
    \printbibliography
\end{document}

出现警告信息

Package biblatex: Using fall-back bibtex backend:
(biblatex)    functionality may be reduced/unavailable.
Package biblatex: Please (re)run BibTeX on the file(s):
(biblatex)    mwe
(biblatex)    and rerun LaTeX afterwards.

image.png

CASE2:backend=biber 符合GB7714格式规范

\documentclass{ctexart}
\usepackage[backend=biber,
            %backend=bibtex,
            citestyle=gb7714-2015,
            bibstyle=gb7714-2015]{biblatex}
\addbibresource{testbibtex.bib}
\begin{document}

    我能吞下玻璃而不伤身体\cite{新质生产力2023}。我能吞下玻璃而不伤身体。我能吞下玻璃而不伤身体。我能吞下玻璃而不伤身体。
    \printbibliography
\end{document}

image.png

CASE3.使用gbt7714宏包+bibtex

\documentclass{ctexart}
\usepackage{gbt7714}
\bibliographystyle{gbt7714-numerical}
\begin{document}
    我能吞下玻璃而不伤身体\cite{新质生产力2023}。我能吞下玻璃而不伤身体。我能吞下玻璃而不伤身体。我能吞下玻璃而不伤身体。
    \bibliography{testbibtex.bib}
\end{document}

image.png

CASE1效果不正常,CASE2/CASE3效果正常...
有以下的问题:

  1. CASE1出现问题的原因是什么?是否是因为biblatex使用backend=bibtex调用的.bst样式不正确/已经过时?
  2. 在有名的elegantbook系列模板中,默认使用的即是biblatex宏包,并且在文档中显性说明了可以指定bibend=bibtex,但会出现CASE1中的问题,除了更换默认的bibend=biber是否有更好的处理方式?

下面是MWE压缩包。
bibmwe.zip

查看更多

关注者
0
被浏览
915
啸行
啸行 2024-10-07
这家伙很懒,什么也没写!

biblatex 最好就用 biber,用 bibtex 的话,功能依旧受限。

2 个回答
huzhen
huzhen biblatex 超级专家 2025-03-13
这家伙很懒,什么也没写!

gb7714-2015 利用了动态数据修改功能,来生成文献类型标记,并使用正则表达式来判断文献或其部分内容的语言类型,而这都需要借助biber来实现。所以使用biber能获得完整的功能。

而当使用bibtex后端时,biblatex给它传递了两个bib文件,一个是文档的参考文献库,一个是biblatex能提供给它的参数的设置文件,而这里不能传递太复杂的信息,比如正则表达式处理信息等等,所以无法实现相关的功能。

关于利用bibtex来作为后端来生成正确的文献格式的问题,理论上也是可以的,只是要用tex宏来实现一些替代,避免使用bibtex无法实现的功能。

而且我做gb7714-2015的时候,没有充分考虑bibtex后端的情况,所以出现一些问题是正常的。

而gbt7714使用bibtex的逻辑是不同的,bibtex的输入也是两个文件,一个bst文件,一个文献库bib文件。与biblatex中使用bibtex是不一样的。这种方式下,bibtex利用bst文件来生成最终的文献表信息和natbib能解析引用标注信息,然后由natbib和一些自定义的宏,生成符合格式的文献表和引用标注。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览