\addbibresource 和 \bibliography 与 biblatex 的 ids 字段之间的差异

\addbibresource 和 \bibliography 与 biblatex 的 ids 字段之间的差异

到底什么才是\addbibresource真正有用的\bibliography?我知道上面提到的优势这里例如,它涉及可选参数的使用以及指定远程资源的可能性。但是,到目前为止,我还没有遇到任何可以真正解释以下内容的内容。

该手册为biblatex想要在不破坏现有文档的情况下更改引用键的用户解释了一个听起来很有用的功能:

ids 字段(以逗号分隔的 entrykeys 列表)

主引文键的引文键别名。条目可以通过其任何别名引用,biblatex 将把该引文视为使用了主引文键。这是为了帮助那些更改引文键但拥有使用旧键的旧文档的用户。此字段由后端处理使用,不会出现在 .bbl 中。

我认为这意味着ids在我的文件中重命名的条目中添加一个包含旧密钥的字段.bib将使我能够使用旧密钥或新密钥引用该条目。

但是,我无法让它工作。下面是一个显示该问题的最小示例。

\documentclass{article}

\usepackage{filecontents}
\usepackage[backend=biber]{biblatex}
  \bibliography{my}

\begin{filecontents}{my.bib}
    @article{somebody-sgt,
      ids       =   {someone-sgt},
      author    =   {Somebody, Someone},
      title     =   {Some Great Title},
      journal   =   {Best Journal},
      year      =   3019,
      pages     =   {32--39},
      volume    =   3,
      number    =   4}
\end{filecontents}

\begin{document}

Here is some text with a citation \autocite{somebody-sgt}. Here is some more text using the old key \autocite{someone-sgt}.

\printbibliography

\end{document}

pdflatex当我通过、、、运行此命令时,biber我在输出中收到以下错误消息:pdflatexpdflatex

LaTeX Warning: There were undefined references.

Package biblatex Warning: Please (re)run Biber on the file:
(biblatex)                question
(biblatex)                and rerun LaTeX afterwards.

重新运行编译序列对错误和输出都没有影响:

错误输出

我时不时地会回过头来思考这个问题,但就是想不出任何办法让它工作。我也没有找到任何合理的手册解读,表明该功能的设计目的完全不同。

这个问题困扰了我很久。所以我决定问这个问题。然而,事实证明,与我最初的代码不同,以下代码的工作方式与我预期的一样:

\documentclass{article}

\usepackage{filecontents}
\usepackage[backend=biber]{biblatex}
  \addbibresource{my.bib}

\begin{filecontents}{my.bib}
    @article{somebody-sgt,
      ids       =   {someone-sgt},
      author    =   {Somebody, Someone},
      title     =   {Some Great Title},
      journal   =   {Best Journal},
      year      =   3019,
      pages     =   {32--39},
      volume    =   3,
      number    =   4}
\end{filecontents}

\begin{document}

Here is some text with a citation \autocite{somebody-sgt}. Here is some more text using the old key \autocite{someone-sgt}.

\printbibliography

\end{document}

生成结果:

正当的输出

ids所以现在我很好奇。除了使用的要求外,文档中没有提到使用的具体要求biber。但是,它似乎需要\addbibresource。但是,在这种情况下,发生的事情比我上面提到的问题的答案中指出的要多。这不是远程数据库,不需要可选参数。真的,设置再简单不过了。

我也希望我能了解为什么\addbibresource使用 比 使用 更烦人bibliography!这基本上就是我继续使用后者的原因——我读到的所有内容都表明前者的优点不是我目前需要的,所以使用后者的易用性胜过一切。我有一个复杂的设置,涉及加载相当多的.bib文件。这意味着一次指定一个文件会非常麻烦。(我还没有决定是否值得让 ids 功能发挥作用。)

相关内容