クラウド上でのTeXShopコンパイルのTime Outエラーについて
皆さん、卒業論文の時期ですね。僕はもう提出してしまったので大学四年間を全うしたわけですが、締め切り前日にTeXでのコンパイルがうまくいかなくなり大学生活ではなく天寿を全うしそうになったのでその時の対策とか原因とかを書きます。
以下目次
今回の環境
MacBook Pro (Retina, Early 2015)
macOS Monterey Ver. 12.6.3
TeX Shop Ver. 5.10
作業ディレクトリ:OneDrive上(ローカルでない)(ここ重要)
やろうとしたこと・起こったこと
執筆していた卒論が二部構成だったのでとりあえず前半・後半に分けて執筆をしていました。両方別々に\inputして書いていて、片方を書いているときは一方をコメントアウトすることで負荷の軽減を図っていました。
締め切り前日に書き終えてから全部表示させるために全部のコメントアウトを外してコンパイルをしようとしたら"fclose: Operation timed out"とかいうエラーを吐きながらコンパイルを停止しました。
対処法
結論から言うとOneDriveの同期機能を切ってしまった状態でコンパイルを走らせることで正常に動作しました。
補足ですが、Windowsマシンに入れてるTeX Liveでは問題なくコンパイルできました。
詳細
とりあえず起こったことと対処法は上記の通り。ここからは原因やらを探ったときにわかったことを時系列順に書いていきます。
やろうとしたことの詳細
今回執筆していたのは卒論なので.bibファイルを使ってReferneceを管理していました。詳しい使い方は別のページなどを参照してほしいですが、参考文献を.bibから最終ページに正常に掲載するためには次の順でコンパイルをする必要があります。
LaTeXコンパイル(文書の反映)
BibTeXコンパイル(参考文献の読み込み)
LaTeXコンパイル(最終ページへ参考文献の書き込み)
LaTeXコンパイル(文書中のCitationに該当する参考文献の著者・出版年などの書き込み)
今回はこの4.のコンパイルで冒頭に出したタイムアウトエラーを吐き出しました。
Runaway argument?
これはよくあるエラーですが、色んなところでも経験則でも「.auxを一旦消すか作業ファイルをすべて消せ」と言われます。もともとは括弧の末尾が足りないなどのコマンドの不備によるエラーみたいですけどたまにミスがないのに出るみたいです。
しかし良くならず。1.からコンパイルを再開するもまたしても4.のLaTeXコンパイルでつまずく。
作業ファイルについて
「作業ファイル消しても1回コンパイルすりゃ十分では?」となったそこのあなた。ここで一旦作業ファイルの中身を解説。
今回重要なのはおそらくAUXファイルとBBLファイル。
AUXファイルはTeXソースファイル中のラベリングなどを記録し、BBLファイルはTeXソースファイル中の参考文献(例えばBIBファイル)を記録している。コンパイルのたびにソースファイルからLabelingやCitationを読み込み直しているのでこのファイルは度々書き換わっていることに注意。
コンパイル順について
TeX Shopのコンパイルログを見ると(多分TeX Liveもそうだけど)1ページずつコンパイルを読み込んでPDFにしているようにみえる。ここで冒頭のエラーログを見ると、16ページ目で止まっていることがわかる。これは2章目の16ページ目だがこれはちょうどこの文書の参考文献のページに当たる。この辺で「ははーん、さてはAUXかBBLが悪さしてるな?」と思ったわけですが、
作業ファイルの全削除
Referneceの見直し
をしても変わらず。そもそも半分ずつ分けてコンパイルしても問題なくPDFを作成できていたのでそもそも問題がないはずである。
しかしAUXやBBLが悪さをしているのはほぼ間違いないので頭を悩ませる。
fclose: Operation timed out.
仕方ないのでもう一度エラーコード全体を見直す。すると見てなかったところとして表題のタイムアウトエラーに気がついた。しかも真下にはAUXファイルの名前があったのでBBLは悪くなく、AUXが悪さをしていることが判明した。コンパイルに時間がかかりすぎたのか?と思ったが、過去に2~3分かけて50ページくらいの実験レポートをコンパイルしたことがあった(この卒論も51ページだった)のでこの辺でTeX Shop特有な問題な気がしてきた。
ここでコンパイルしている様子を保存先のディレクトリで監視していると、次の順でAUXとBBLが作成・更新されていることがわかった。
一度目のLaTeX:BBL, BLG以外の作業ファイルの生成
BibTeX: BBL, BLGの生成
二度目のLaTeX:AUXが書き換わる。ここで、章が変わるタイミングで再度書き換わり、計2回書き換わっている。
三度目のLaTeX:AUXが書き換わる。ここも計二回書き換わる。
しかもOneDriveの同期がONになっているので書き換わった端から全てアップロード・保存されている。そこで同期を切ると何故かコンパイルが通った。おそらく書き換わりのタイミング・アップロードのタイミング・コンパイルのための読み込みのタイミングすべてが悪い方向にマッチした結果読み込むはずのものがAUXファイル内に存在しないとかいうことが起こった結果かと思われる。
教訓
TeX作業をするときはクラウド上でやるのやめましょう。ローカルでやるかOverleafを使ったほうがいいです。ハァ…
参考元の皆さん
作業ファイルについて
https://cns-guide.sfc.keio.ac.jp/2001/11/1/8.html#SECTION012180400000000000000
この記事が気に入ったらサポートをしてみませんか?