
私は論文をコンパイルするのにlatexmk
を使っています。 は参考文献用、バックエンドとして を使っています。 コンパイルは正常に行われ、正しい PDF 出力が作成されます。 ソース ファイルの変更によってエラーが発生した場合、 の最初の実行は失敗しますが、bcf ファイルが作成されます。 その後、biber の実行により、bcf ファイルの形式が正しくないことが報告され、最後の実行が失敗したためコンパイルが停止します。 ただし、エラーを修正した後、 は実行が正常であると判断して を呼び出しますが、bcf ファイルは依然として形式が正しくありません。 は、ファイルの変更があったことに気付かないようです。pdflatex
biblatex
biber
pdflatex
biblatex
latexmk
pdflatex
biber
latexmk
bcf ファイルを削除するか、 でクリーンアップすると、最初に が呼び出さlatexmk -C
れ、正しい bcf ファイルが再作成されます。 を手動で呼び出すこともできますが、 の目的が達成されません。をオプションとして使用しようとしましたが、機能しません。 の実行に失敗した後、次の試行で最初にが実行されると、TexLive 2014 では機能していたように思います。latexmk
pdflatex
pdflatex
latexmk
-halt-on-error
pdflatex
biber
latexmk
pdflatex
私はTexLive 2015を使用しています。バージョンはlatexmk
4.43aで、biber
バージョン2.3です。生成される出力は次のようになります。
Latexmk: This is Latexmk, John Collins, 5 February 2015, version: 4.43a.
Rule 'biber thesis': File changes, etc:
Non-existent destination files:
'thesis.bbl'
------------
Run number 1 of rule 'biber thesis'
------------
------------
Running 'biber "thesis"'
------------
Latexmk: applying rule 'biber thesis'...
INFO - This is Biber 2.3
INFO - Logfile is 'thesis.blg'
ERROR - thesis.bcf is malformed, last biblatex run probably failed. Deleted thesis.bbl
INFO - ERRORS: 1
Latexmk: Failed to find one or more biber source files:
NONE
Collected error summary (may duplicate other messages):
biber thesis: Could not find all biber source files for 'thesis'
Latexmk: Use the -f option to force complete processing,
unless error was exceeding maximum runs of latex/pdflatex.
Biber error: [33] Utils.pm:163> ERROR - thesis.bcf is malformed, last biblatex run probably failed. Deleted thesis.bbl
Latexmk: Errors, so I did not complete making targets
必須のmwe.tex:
\documentclass[paper=a4]{scrartcl}
\usepackage[backend=biber]{biblatex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\addbibresource{Bibliography.bib}
\begin{document}
\autocite{smith_pixel_1995}
\end{document}
参考文献.bib
@article{smith_pixel_1995,
title = {A Pixel Is Not A Little Square, A Pixel Is Not A Little Square, A Pixel Is Not A Little Square!},
volume = {6},
url = {http://ftp.alvyray.com/Memos/CG/Microsoft/6_pixel.pdf},
journaltitle = {Microsoft Computer Graphics, Technical Memo},
author = {Smith, Alvy Ray},
urldate = {2016-02-04},
date = {1995}
}
再現する手順:
- 走る
latexmk -pdf mwe
mwe.tex
未定義の制御シーケンスのようなエラーを引き起こす- 走る
latexmk -pdf mwe
- プロンプトが表示されたら、を押してコンパイルを中止します。
x
- エラーを修正
- 実行
latexmk -pdf mwe
-> ビバーエラー - 実行
latexmk -pdf mwe
-> 同じ biber エラーが消えない
そこで質問ですが、latexmk
手動でファイルを消去したり削除したりせずに、biber が使用できるように bcf ファイルを再作成するにはどうすればよいでしょうか?
答え1
すでにコメントで述べたように、解決策は、latexmk
現在入手可能な新しいバージョン(この回答を書いている時点では4.44)を使用することです。http://www.ctan.org/pkg/latexmk/
答え2
アップデート2019年5月2020年3月:
これはUbuntu(bionic)の18.04 LTSでも依然として問題です。なぜなら、4.41。
述べたようにジョンこれはバージョン 4.44 以降で修正されています。latexmk の新しいバージョンは、cosmic、disco、eoan、focal などに提供されています。
アップグレードには少なくとも 3 つの方法があり、そのうちの 1 つを選択してください。
a).deb
パッケージを手動でダウンロードしてインストールします。例:https://packages.ubuntu.com/focal/all/latexmk/downloadそして、これ以上の依存関係をアップグレードする必要がないことを願っています。
b) 一時的に cosmic リポジトリを使用することで、自分のマシンでこの問題を修正しました。
- /etc/apt/sources.listのuniverse repoの行をbionicからcosmicに変更して保存します。
- 適切なアップデート
- apt をインストールします。
- /etc/apt/sources.list の変更を元に戻す
- 適切なアップデート
どちらも一般的には推奨されませんが、latexmk は依存関係の少ない非常にシンプルなアプリ/スクリプトです。メンテナーが 4.41 と 4.44 の間のバージョンを選択しないことが期待されるため、ピン留めは必須ではありません。cosmic の現在のバージョンは 4.59 です。
c) 別の方法としては、最新のパッケージをロードすることです。CTANドキュメントにあるようにインストールし、基本的には権限を置き換えて調整します。どうすればlatexmkをアップグレードできますか?/なぜUbuntuリポジトリに非常に古いバージョンが含まれているのですか?。