使用 biber 与 gedit + rubber

使用 biber 与 gedit + rubber

biblatex我在尝试从 切换到biber时遇到了很多问题bibtex,解决了几个问题后,我不知所措。现在的情况:

  • biblatexbiber不作为后端使用时有效
  • biber已安装(当我运行时,biber --version我得到biber version: 0.9.8
  • 当使用 latex 插件在以 as 为后端的文档上运行的时候rubbergedit什么biber都没有发生。我没有收到任何错误,文档正在持续编译但从未完成。

以下是 MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
\usepackage{geometry}

\addbibresource[datatype=bibtex]{bilbliography}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

我正在运行 Fedora 16 和 Gnome 3。有人知道我做错了什么吗?

答案1

几件事:

  1. 您不需要添加该[datatype=bibtex]选项\addbibresource- 这是默认的
  2. 您需要完整的文件名,例如\addbibresource{bibliography.bib}。可选参数对此没有帮助。
  3. Biber 不是在文件上运行,而是在您使用biblatex 选项时生成的文件.bib上运行。您可以在带或不带文件扩展名的文件上调用 biber。.bcfbackend=biber.bcf

答案2

免责声明:这个答案可能被认为是一种黑客攻击,因此不能保证适用于每个文档。:)

我和 egreg 正在交谈TeX、LaTeX 及其朋友rubber聊天室讨论扩展使用的可能性biber。这个答案只有通过他的洞察力才有可能。非常感谢,例如。:)

首先,请注意,它rubber似乎不再被维护。最新的稳定版本是1.1在 2006 年发布的。在我看来,开发版本远远不够用。

rubber可以通过模块进行扩展。简单来说,rubber模块是遵循某些规则的 Python 脚本。不幸的是,这些模块相当“罕见”。

我写了一个在我们的社区博客上发帖关于rubber。模块有一个很好的用法。例如,rubber不提供开箱即用的 XeLaTeX 支持,但值得庆幸的是,Wouter Bolsterlee 通过为其编写模块提供了一个优雅的解决方案。

话虽如此,为了完整起见,我会记录我所做的过程。

rubber有一个rules/latex目录,您可以在其中找到其他模块。我也在 Fedora 16 上,此目录的位置是:

/usr/lib/python2.7/site-packages/rubber/rules/latex

我在这里的方法是使用类似的模块并根据我们的目的进行调整。如果我们列出rules/latex,我们会在那里找到一个在- 这意味着默认假设bibtex.py中注册的文件。__init__.pyrubberbibtex

我所做的是复制bibtex.py到一个新文件biber.py。由于这两个程序似乎工作方式相似,我认为这只是一个用另一个替换的问题。同样,我没有时间检查文件,所以它远非稳定或万无一失!此外,biber可能还有一些其他特殊之处,这种方法没有涵盖。

我打开了biber.py- 这是 的精确副本,bibtex.py并搜索了 的出现bibtex,将其替换为biber,包括消息和系统调用。我保留了函数名称的完整性 - 但适当的重构无法解决任何问题。

好的,现在我有了模块。现在我需要一个测试文档。我biber以前从未使用过,所以我不得不依靠以下 MWE如何使用 biber

\documentclass[]{article}

\usepackage[autostyle]{csquotes}

\usepackage[
    backend=biber,
    style=authoryear-icomp,
    sortlocale=de_DE,
    natbib=true,
    url=false, 
    doi=true,
    eprint=false
]{biblatex}
\addbibresource{mybib.bib}

\usepackage[]{hyperref}
\hypersetup{
    colorlinks=true,
}

\begin{document}
    Lorem ipsum dolor sit amet~\citep{kastenholz}.
    At vero eos et accusam et justo duo dolores et ea rebum~\citet{sigfridsson}.
    \printbibliography 
\end{document}

现在,在我的终端中,我使用和导航到我的测试目录document.texmybib.bib我调用了以下命令:

$ rubber --module=biber document

也可以rubber在文件顶部添加指令.tex来调用该模块:

% rubber: module biber
\documentclass[]{article}
...

输出:

带橡胶的跑步裤

我检查了结果document.pdf,所有参考资料均正确显示。

这种肮脏的攻击方式需要更多的测试,但到目前为止它似乎是有效的。:)

答案3

可以在主 tex 文件中定义橡胶规则,以便在编译文件并且生成/更改辅助文件时触发 biber 命令。

我的 main.tex 文件顶部有这个:

% rubber: watch main.acn
% rubber: onchange main.acn 'makeglossaries main'

% rubber: watch main.bcf 
% rubber: onchange main.bcf 'biber main'

前两行与词汇表包(我用它来生成首字母缩略词)相关,后两行是调用 biber 而不是常规 bibtex 所必需的。

请不要忘记,为了实现此功能,biblatex 中需要 backend=biber 选项。

\usepackage[backend=biber]{biblatex}

我希望这有用!

相关内容