abenori / jlreq

Other
125 stars 18 forks source link

エンジンが不正な時のエラーメッセージ #53

Closed aminophen closed 3 years ago

aminophen commented 5 years ago

https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2544

リンク先のソースはクラスオプションにuplatexが指定されているので,upLaTeX用のソースですが,実際に走らせているのはpLaTeXであるようで,そのためのエラーのようです.

の件で,

  • クラスオプションからuplatexを外す
  • エンジンをupLaTeXに変更する のいずれかで動くかと思います.

は本当におっしゃる通りなのですが,もっと解りやすいエラーが先に出てくれた方が親切だと思います。 https://github.com/texjporg/jsclasses/issues/11 と同じような話です。

abenori commented 5 years ago

jlreqは現在のエンジンを知らないものとして振る舞います.無指定の場合は推定しますが,あくまで推定であって,断定ではありません.実情はともかく,そのような気持ちで作っているので,エラーを出すのは論理的な整合性がとれないです. そもそも指定しないで使ってくれればよいと思っているのですが……

aminophen commented 5 years ago

エラーを出すのは論理的な整合性がとれないです.

コンセプトは理解しました。

では,「エンジンが間違っている」というエラーを出すのではなく,もう少し検索しやすいエラーが出るように(対症療法的ですが)定義順序を変えるのはいかがでしょうか。私がわかりにくいと思ったのは「\documentclass[uplatex]{jlreq} を platex で使うと GenericError」の例だけなので,\DeclareFontShape の部分を文字クラスのリストより先に持ってくれば,メッセージは ! LaTeX Error: Font familyJY2+mc' unknown.` とFAQにある例と同じになります。

他は以下のように大丈夫とも思えるので。

abenori commented 5 years ago

そういうエラーに苦しまないためのデフォルト推定だったのになぁ,という気分ですが. 380c151