如何让 arara 与 bibtexu 一起工作?

如何让 arara 与 bibtexu 一起工作?

我需要提交一篇文章,所以我必须遵守期刊使用 PdfLaTeX 和 BibTeX 的规则。而且参考书目中的一条记录是俄文,所以对我来说唯一的选择就是使用bibtexu。如果我逐一运行这个链:pdflatex -> bibtexu -> pdflatex -> pdflatex一切顺利,我会得到一个正确的 PDF 文件。

如果现在我添加

% arara: pdflatex
% arara: bibtexu
% arara: pdflatex
% arara: pdflatex

在文件开头tex然后运行arara file.tex我得到<BibTeXu> ... FAILURE。在 Windows 7 上使用 TeXLive 2019 并进行最新更新。如果我删除该俄语记录并将一切都更改为,则% arara: bibtexu一切% arara: bibtex正常。好吧,在这种特殊情况下,我可以手动运行命令,但是是否可以使用 的良好自动化arara机制bibtexu

答案1

好的,我可能找到了解决方案。我在论坛上搜索了一下,找到了讨论如何在arara运行期间忽略命令中的错误。实际上,运行中没有真正的错误,它只是在每个名称和每个块之后bibtexu发出警告(我想这是因为我使用的文件):bst

This is BibTeXu: a UTF-8 Big BibTeX version 0.99d
Implementation:  Microsoft(R) C/C++ for Win32
Release version: 3.71 (04 mar 2019)
Compiled with:   ICU version 63.1

The top-level auxiliary file: file.aux
The style file: style.bst
Reallocated glb_str_ptr (elt_size=4) to 10 items from 0.
Reallocated global_strs (elt_size=20001) to 10 items from 0.
Reallocated glb_str_end (elt_size=4) to 10 items from 0.
Reallocated wiz_functions (elt_size=4) to 6000 items from 3000.
Database file #1: file.bib
Warning--Gardner S.
Warning--Haxton W.C.
Warning--Holstein B.R.
Warning--after block
Warning--Kistryn S.
Warning--Lang J.
Warning--Liechti J.
Warning--Maier T.
Warning--Muller R.
Warning--Nessi-Tedaldi F.
Warning--Simonius M.
Warning--Smyrski J.
Warning--Jaccard S.
Warning--Haeberli W.
Warning--Sromicki J.
Warning--after block
Warning--Нурушев С.Б.
Warning--Рунцо М.Ф.
Warning--Стриханов М.Н.
Warning--after block
...

Here's how much of BibTeX's memory you used:
 Cites:                10 out of 750
 Fields:              344 out of 5000
 Hash table:        99608 out of 100000
 Strings:            1200 out of 100000
 Free string pool:  12934 out of 65000
 Wizard functions:   4014 out of 6000
(There were 100 warnings)

因此,没有错误,bbl文件正确,但bibtexu由于某些原因,退出代码不为零。我遵循了参考主题的建议并添加exit: value > 0bibtexu.yaml

!config
# Arara, the cool TeX automation tool
# Copyright (c) 2018, Paulo Roberto Massa Cereda 
# All rights reserved.
#
# This rule is part of arara.
identifier: bibtexu
name: BibTeXu
authors:
- Marco Daniel
- Paulo Cereda
commands:
- name: An 8-bit implementation of BibTeX 0.99 with a very large capacity
  command: >
    @{
        return getCommand('bibtexu', options, getBasename(file));
    }
  exit: value > 0
arguments:
- identifier: options
  flag: >
    @{
        if (isList(parameters.options)) {
            return parameters.options;
        }
        else {
            throwError('I was expecting a list of options.');
        }
    }

好吧,也许这不是真正的解决方案,只是一种肮脏的黑客行为,但它对我有用。当然,我必须检查生成的参考书目是否正确,所有引用是否正确,它们都是正确的!

相关内容