cleveref
は、いくつかの基本的なLaTeXコマンドに非常に根本的な変更を加えるため、使用しないよう警告されることが時々あります\label
。この懸念は正当なものなのでしょうか。また、これをロードするとどのような問題が発生するのでしょうか。何か良い理由があるのでしょうか。ないそれを使用するには?
答え1
クレバーフの仕組み
Cleveref は\label
コマンドを拡張して、ファイルに追加情報を書き込むようにします.aux
。この部分は、元の実装をそのまま維持し\label
、それに依存するすべての標準機能 (通常の\ref
コマンドなど) が引き続き機能するため、特に侵入的ではありません。拡張される 2 番目のコマンドは\refstepcounter
、元の機能が保持されるため、問題は発生しません。
ほとんどすべての機能強化パッケージは、標準コマンドを何らかの方法で再定義します (例: リスト、セクション、方程式の変更など)。その他のすべての機能 (つまり、コマンド\cref
) は、完全に別の関数で処理されます。
潜在的な問題
ほとんどすべての問題は、コマンドの使用\refstepcounter
、またはむしろその使用方法の不足から生じます。このコマンドを使用するすべてのパッケージは、cleveref でそのまま使用できます。使用しないパッケージには、次の 2 つのオプションがあります。
- Cleveref にはこのパッケージのサポートが組み込まれており、すべて正常に動作します。
- Cleveref はサポートされていないため、 を使用すると
\cref{label}
間違った出力が生成されます (間違った出力とは、ラベルが欠落し、数値が間違っている可能性があることを意味します)。警告は表示されますが、コンパイルは可能です。次の 2 つのオプションがあります。- 通常の
\ref
コマンドを使用します。これは常に機能します。 - Toby Cubitt に電子メールを送信し、パッケージのサポートを追加するように依頼します。
- 通常の
人々がcleverefに対して抱いている問題を知りたい場合は、https://tex.stackexchange.com/questions/tagged/cleveref!
Cleveref と breqn パッケージはうまく連携しませんそしてcleveref で refcheck を動作させる遭遇する可能性のある典型的な問題をいくつか示します。
最後に、cleveref のドキュメントにはpoor mans cleveref
、LaTeX ソース コードを他の人に送信する必要があり、その人が cleveref をインストールしていない場合についてのセクションがあります。これは、このパッケージの初期の頃には問題だったかもしれませんが、おそらく 5 年ほど前からすべての主要な TEX ディストリビューションの標準パッケージになっているため、問題になる可能性は低いでしょう。
cleverefを使うべき理由
これは賢い方法であり、相互参照を非常に簡単にしてくれます。ref、varioref、cleveref の違い。論文の決定、相互参照パッケージ: どれを使用するか、どれが競合するか?そしてより完全な参考文献を入手する方法。