假设我从 BibTeX 转到biblatex
。使用 BibTeX 时,我只需将文件的内容复制.bbl
到论文的最终版本中,然后再将其提交给期刊。在同一阶段,我应该如何处理.bbl
由 生成的文件biblatex
?它的格式完全不同。
答案1
答案2
这也是可能的,但不像那么容易bibtex
。当你完成文档时,在已有的 biblatex 定义后写入序言:
\documentclass{...}
...
\usepackage[style=numeric-verb]{biblatex}% change it for your needs
\bibliography{examples}
%-------------- start insert modified commands ------------------
\makeatletter
\def\blx@bblfile@biber{%
\blx@secinit
\begingroup
\blx@bblstart
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%% copy here the contents of the created bbl file
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\blx@bblend
\endgroup
\csnumgdef{blx@labelnumber@\the\c@refsection}{0}}
\makeatother
%-------------- end insert modified commands ------------------
...
\begin{document}
...
\printbibliography
\end{document}
唯一的区别是,\printbibliography
现在不是从外部文件获取 bib 的内容,而是从插入的 bbl 内容中获取。
如果你运行bibtex
而不是biber
(顺便说一句:biber
是更好的选择)那么你必须以这种方式使用它:
\usepackage[...,backend=bibtex]{biblatex}
....
\def\blx@bblfile@bibtex{% instead of ...\blx@bblfile@@biber
\blx@secinit
\begingroup
\blx@bblstart
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%% copy here the contents of the created bbl file
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\blx@bblend
\endgroup
\csnumgdef{blx@labelnumber@\the\c@refsection}{0}%
\iftoggle{blx@reencode}{\blx@reencode}{}}
请注意不要插入bbl
文件的最后一行,即命令\endinput
。应将其删除或用前面的 注释掉%
。
答案3
对于期刊投稿,恐怕我的答案是“不要使用biblatex
'。参考书目由 生成于 LaTeX 端biblatex
,因此无法“粘贴格式化的结果”。大多数期刊希望您这样做或使用自己的 BibTeX 样式,因此这biblatex
是一个糟糕的选择。(这很遗憾,但除非/直到期刊更新其工作流程,否则情况就是这样。)
需要特别注意的一点是,您无法确定期刊系统上软件包或引擎的可用性。例如,美国化学学会的服务器上没有可用的 e-TeX 扩展(在撰写本文时)。这些扩展于 1999 年完成,因此时间滞后很大。biblatex
需要 e-TeX,因此无法将其用于向 ACS 提交。
第二个要记住的方面是期刊工作流程。根据期刊的不同,您的 LaTeX 源可能会被转换为其他格式以供发布。为此,出版商可能会使用写入文件的附加数据.bbl
(例如,在 XML“注释”中重复的数据)或某种形式的解析器来转换参考书目。除非他们已经设置了处理它的工作流程,否则.bbl
这将不起作用。biblatex
答案4
我自己也为此奋斗了很长时间,所以我认为其他人可能会受益:
如果日志/存储库在编译文档时实际上运行了 biber(例如通过 latexmk),那么还有另一个简单的选项可用(也可能是预期的选项):
- 像往常一样使用 biber 编译原始文档。这将生成一个文件“article.bcf”。
创建一个仅包含引用参考文献的 .bib 文件:
biber --output-format=bibtex article.bcf
输出文件应命名为“article_biber.bib”。
- 输入“article_biber.bib”作为 bibresource,而不是“article.tex”中的完整库。
- 将“article_biber.bib”与其他文件一起发送给期刊。
请注意,已知 biber 版本 2.9 在上述输出选项中存在错误。此问题已在 biber 版本 2.10 中修复。二进制文件可在以下位置找到这里。
Biblatex 已经存在很长一段时间了,并且已经有些成熟,所以我认为要求期刊/存储库能够处理它是合理的。