Biblatex:向期刊投稿

Biblatex:向期刊投稿

假设我从 BibTeX 转到biblatex。使用 BibTeX 时,我只需将文件的内容复制.bbl到论文的最终版本中,然后再将其提交给期刊。在同一阶段,我应该如何处理.bbl由 生成的文件biblatex?它的格式完全不同。

答案1

这是一个众所周知的问题,但是最近已经创建了一个小解决方法: 氯化三乙胺GitLab

用法

在序言中,biblatex通过以下方式加载包后\usepackage[...]{biblatex}

\usepackage{biblatex2bibitem}

在文档的最后:

\printbibitembibliography

所需的bibitem内容将直接写入 PDF 文件。

当需要切换到bibitems 时(例如在将论文发送到期刊之前),只需将它们复制到您的.tex文件中,删除biblatex命令并加载cite包。

也可以看看

答案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),那么还有另一个简单的选项可用(也可能是预期的选项):

  1. 像往常一样使用 biber 编译原始文档。这将生成一个文件“article.bcf”。
  2. 创建一个仅包含引用参考文献的 .bib 文件:

      biber --output-format=bibtex article.bcf 
    

    输出文件应命名为“article_biber.bib”。

  3. 输入“article_biber.bib”作为 bibresource,而不是“article.tex”中的完整库。
  4. 将“article_biber.bib”与其他文件一起发送给期刊。

请注意,已知 biber 版本 2.9 在上述输出选项中存在错误。此问题已在 biber 版本 2.10 中修复。二进制文件可在以下位置找到这里

Biblatex 已经存在很长一段时间了,并且已经有些成熟,所以我认为要求期刊/存储库能够处理它是合理的。

相关内容