varioref と cleveref を使用すると、cleveref は LaTeX が常に再実行しようとするドキュメントを診断しますか?

varioref と cleveref を使用すると、cleveref は LaTeX が常に再実行しようとするドキュメントを診断しますか?

私はLaTeXが常に再実行しようとする大きな文書を持っています。 永続的な「ラベルが変更された可能性があります」という警告を診断するにはどうすればよいですか?、私はいくつかの に問題があったことを突き止めました。しかし、私は問題のあるがパッケージによってフラグ付けされるだろうと\vref期待していました。パッケージのドキュメントには、\vrefvariorefvarioref

上記のようなコマンドを定義すると、いくつかの興味深い問題が生じます。たとえば、「次のページで」のような生成されたテキストがページをまたいで分割されるとします。このような状況が発生すると、許容できる解決策を見つけるのは非常に困難であり、実際には、常に 1 つの状態から別の状態へと変化するドキュメントになる可能性があります (つまり、1 つの文字列を挿入し、これが間違っていることがわかり、次の実行で別の文字列を挿入して最初の文字列を再び正しくし、挿入する...)。したがって、varioref の現在の実装では、生成されたテキストがページ境界をまたいで分割されるたびにエラー メッセージが発行されます。たとえば、

table 5 on the current hpage break i page

はエラーになりますが、最終実行の直前にユーザーが\vrefコマンドを通常のコマンドに置き換えることで解決する必要があります\ref。これは完全に満足できるものではありませんが、このような場合には解決策はありません。

cleveref後に(正しく)ロードしたパッケージは、正しくvarioref実装されていると主張しています\vref。しかし、cleverefこの診断機能を複製することになっていますか?バグを報告するか機能要求を報告するか、どのメンテナーに報告するかを決める必要があります :-)

\vref問題を再現するために、正確な場所にがある MWE を作成しようとしましたが、失敗しました。

答え1

cleverefvariorefコマンドを独自に使用するために再定義するときに、ページ間で壊れている相互参照のチェックを無効にします。そのため、これはcleveref欠陥であると主張することもできますが、パッケージの現在の実装には理由があります。

現在、私は Toby と協力して、2 つのパッケージ間およびパッケージ間の共存性を向上させる作業を行っていますhyperref。この作業が完了すると、このような問題が再び正しく診断されるはずです。

この改善variorefはおそらく LaTeX の秋のリリースには反映されないでしょうが、冬のリリースでは利用できるようになるはずです。

翻訳元:

関連情報