Re: RequirePackageでバージョンが合わないときにはエラー処理

名前: 北見 けん
日時: 2006-04-14 09:14:32
IPアドレス: 211.128.71.*

>>42512 > cite.styにリリース日付が含まれた\ProvidesPackageが記述されていないのが > 原因 そうではないように思います。 配布されている cite.sty の記述がどうなっているかはわかりませんが、 リリース日も付記した \ProvidesPackage を記述してある場合でもこの問題は起こります。 ここで問題としているのはエラーや警告を出すかどうかということではなくて、 どのエラーを先に出すかということです。 パッケージファイルの読み込み動作は、 (1) \RequirePackage[newopt]{pkg}[date1] (2) \InputIfFileExists{pkg.sty} (3) \ProvidesPackage{pkg}[date2] (4) \DeclareOption{opt1}{...} (5) \ProcessOptions (6) \endinput (7) \@ifl@t@r{date2}{date1} の順で実行されます。 (3) の段階でバージョンが古いことがわかっても警告は(7)まで出されません。 その前に (5) のところで Unknown option エラーが出てしまうのです。 このエラーは“[newopt]はタイプミスではないか”と示唆するだけで、 より本質的な“バージョン違いではないか”というのはわかりません。 このエラーを[enter]でやり過ごせば (7) のところで警告が出されますが、 エラーを[enter]でやり過ごすのはあまり勧められませんし、 エラーの原因をエラーより後の所に求めて警告を見つけるのは難しいと思います。 この状況は LaTeX の作法に則ってパッケージを記述していても起こるわけです。 (3) の段階でバージョン違いのメッセージを出すか、(5)のエラーヘルプで バージョン違いの可能性を示唆しても、益こそあれ害はないように思います。 (3) の段階でわかることを (7) まで出し惜しみしておく理由もないと思います。 42516の > エラーメッセージは所詮「ヒント」でしょう。 というのには全く同意しますが、ヒントにもよいヒントと悪いヒントがありますよね。 なにか見落としているでしょうか。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)