エラー後に不正な bcf ファイルが latexmk によって再作成されない

エラー後に不正な bcf ファイルが latexmk によって再作成されない

私は論文をコンパイルするのにlatexmkを使っています。 は参考文献用、バックエンドとして を使っています。 コンパイルは正常に行われ、正しい PDF 出力が作成されます。 ソース ファイルの変更によってエラーが発生した場合、 の最初の実行は失敗しますが、bcf ファイルが作成されます。 その後、biber の実行により、bcf ファイルの形式が正しくないことが報告され、最後の実行が失敗したためコンパイルが停止します。 ただし、エラーを修正した後、 は実行が正常であると判断して を呼び出しますが、bcf ファイルは依然として形式が正しくありません。 は、ファイルの変更があったことに気付かないようです。pdflatexbiblatexbiberpdflatexbiblatexlatexmkpdflatexbiberlatexmk

bcf ファイルを削除するか、 でクリーンアップすると、最初に が呼び出さlatexmk -Cれ、正しい bcf ファイルが再作成されます。 を手動で呼び出すこともできますが、 の目的が達成されません。をオプションとして使用しようとしましたが、機能しません。 の実行に失敗した後、次の試行で最初にが実行されると、TexLive 2014 では機能していたように思います。latexmkpdflatexpdflatexlatexmk-halt-on-errorpdflatexbiber latexmkpdflatex

私はTexLive 2015を使用しています。バージョンはlatexmk4.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}
}

再現する手順:

  1. 走るlatexmk -pdf mwe
  2. mwe.tex未定義の制御シーケンスのようなエラーを引き起こす
  3. 走るlatexmk -pdf mwe
  4. プロンプトが表示されたら、を押してコンパイルを中止します。x
  5. エラーを修正
  6. 実行latexmk -pdf mwe-> ビバーエラー
  7. 実行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 リポジトリを使用することで、自分のマシンでこの問題を修正しました。

  1. /etc/apt/sources.listのuniverse repoの行をbionicからcosmicに変更して保存します。
  2. 適切なアップデート
  3. apt をインストールします。
  4. /etc/apt/sources.list の変更を元に戻す
  5. 適切なアップデート

どちらも一般的には推奨されませんが、latexmk は依存関係の少ない非常にシンプルなアプリ/スクリプトです。メンテナーが 4.41 と 4.44 の間のバージョンを選択しないことが期待されるため、ピン留めは必須ではありません。cosmic の現在のバージョンは 4.59 です。

c) 別の方法としては、最新のパッケージをロードすることです。CTANドキュメントにあるようにインストールし、基本的には権限を置き換えて調整します。どうすればlatexmkをアップグレードできますか?/なぜUbuntuリポジトリに非常に古いバージョンが含まれているのですか?

関連情報