コンパイルできない大学の授業ファイル

トリアージ: 最初のエラー、エンジン、古いパッケージ、バイナリ検索。

コンパイルできない大学の授業ファイル

大学の論文テンプレートは、特別な種類のレガシー コードです。ある大学院生が 15 年前、当時の TeX ディストリビューションに対抗してクラス ファイルを作成し、卒業し、LaTeX エコシステムが移行するまでファイルを凍結したままにしました。今日「universitythesis.cls」をダウンロードして、エラー画面が表示されて終了しても、通常はクラスが壊れるというよりも、時間が経てなくなるほどで​​す。ただし、障害モードは予測可能であり、固定のトリアージ順序によってほとんどの障害が解決されます。

最初のエラーのみから開始する

LaTeX の障害は連鎖的に発生します。クラスの早い段階で 1 つの未定義コマンドが発生すると、何十もの意味のないダウンストリーム エラーが発生する可能性があります。ログを「!」で始まる最初の行までスクロールし、それを修正して、他の内容を読み取る前に再コンパイルします。このループを繰り返すと、多くの場合、3 回または 4 回のパスで恐ろしいエラーの壁をクリアできます。最初のエラーが不明なコマンドの場合、未定義の制御シーケンス によって診断が実行されます。

エンジンをチェックしてください

多くのテンプレートは特定のエンジンを前提としており、他のエンジンでは奇妙なことに失敗します。 「fontspec」をロードするクラス、または名前でフォントを設定するクラスには、XeLaTeX または LuaLaTeX が必要です。 pdftex 固有のプリミティブを中心に構築されたクラスは、両方の条件下で失敗する可能性があります。クラス ファイルの先頭付近にあるコメント、または大学の指示で目的のエンジンに名前を付けている行を探し、他のものをデバッグする前にそれと一致させてください。違いは このプロジェクトのどのエンジン にまとめられています。

管理対象を最新化する

古いテンプレートは、最新の代替パッケージがすでにディストリビューションに存在する古いパッケージをロードし、その後、このペアが争います。 互いに戦うパッケージ には、古典的な組み合わせがリストされています。実行可能な戦略は、大学のフォーマット要件がそこに存在するため、クラス ファイル自体をそのままにし、独自のプリアンブルのみを最新化することです。つまり、古い \usepackage 行を削除し、hyperref を遅くロードし、クラスがすでにロードしているものを再ロードしないようにします。

プリアンブルの二分探索

エラーが検査できない場合は、プリアンブルの後半をコメントアウトして再コンパイルします。エラーが消えた場合、トリガーはコメント部分にあります。半分を元に戻して繰り返します。数回コンパイルすると、問題のある 1 行が特定されます。これは、作成していないプリアンブルについて推論するよりもはるかに高速です。

苦しむ前に検索してください

その大学の学生は全員同じクラスをコンパイルするため、あなたのエラーはほぼ確実にこれまでに発生しています。クラス ファイルの名前とともに正確なエラー メッセージを検索し、大学または後任の学生が GitHub 上でパッチを適用したフォークを維持しているかどうかを確認します。メンテナンスされたフォークが存在する場合、それを使用すると、既知のバグを自分で再修正するよりも優れています。

長編 に戻る