Closed wtsnjp closed 1 year ago
オプションの重複とエラーの関係について、実装の難易度とかは考えずとりあえずこんなのどうでしょうという案を作ってみました。 叩き台としていただければ。 この案では、オプションの順番は無関係と思っています。 また、この案では、jsarticle と otf などにまたがって重複した場合も同様でいいと考えています。
engine | option | 挙動 |
---|---|---|
platex | --- | platex実行。自動選択のメッセージ |
uplatex | --- | uplatex実行。自動選択のメッセージ |
platex | autodetect-engine | platex実行。自動選択のメッセージ |
uplatex | autodetect-engine | uplatex実行。自動選択のメッセージ |
platex | platex | platex実行。メッセージなし |
uplatex | uplatex | uplatex実行。メッセージなし |
platex | platex, autodetect-engine | 重複オプションの警告。platex処理は実行。 |
uplatex | uplatex, autodetect-engine | 重複オプションの警告。uplatex処理は実行。 |
--- | platex, uplatex | オプション不整合。エラー終了 |
platex | uplatex | エンジン不整合。エラー終了 |
uplatex | platex | エンジン不整合。エラー終了 |
とりあえず、現在の @wtsnjp さんの autodect-engine-by-default ブランチに現在の master をマージしたものを作ってみました。jsclasses.pdf が旧いままです。https://github.com/texjporg/jsclasses/commit/498b7f83b88f8e547787033743cdbdea5feaa908
まとめに入りたいと思います。 現状は次のような仕様になっていると思います。賛同します。
autodetect-engine
, platex
, uplatex
のオプションのうち一つが指定できる。重複指定した場合は最後が有効。autodetect-engine
を指定したのと同じ。autodetect-engine
指定時は、platex, uplatex の自動判定をして処理を進める。platex
指定時かつ uplatex 使用時は、警告を出して止まる。uplatex
指定時かつ platex 使用時は、警告を出して止まる。platex
指定時かつ platex 使用時は、そのまま処理を進める。uplatex
指定時かつ uplatex 使用時は、そのまま処理を進める。otf.sty もこれに倣おうと思います。
私が、jsclasses.dvi をmakeしようとすると、止まってしまいます。なぜでしょうか。
[79]
! Undefined control sequence.
l.5625 % parhook対応として\cs
{par}が追加されていますが,
?
\cs
は、ptex-manual の中だけでもいろいろな定義がなされているようです。どれがいいのでしょうか。
ptex-manual/jtex_asciimw.tex ::
\newcommand{\cs}[1]{{$\backslash$#1}}
ptex-manual/ptexskip_asciimw.tex ::
\newcommand{\cs}[1]{\hskip\xkanjiskip\texttt{\char"5C #1}}
ptex-manual/jtexdoc_asciimw.tex ::
\def\cs#1{$\backslash$\kern0pt#1}
私が、jsclasses.dvi をmakeしようとすると、止まってしまいます。
すみません,私も確認せずに \cs と書いてしまったかも。単純に |\par|
に変えて結構です。
\cs は、ptex-manual の中だけでもいろいろな定義がなされているようです。
_asciimw
が付いている物はアスキー時代から極力変更しないつもりなので,その中のバラバラの定義もアスキーによるものですがそのままにしておきたいです。
単純に |\par| に変えて
この方針で書き直しました 。 合わせて、マニュアルの autodetect-engine 周りの記述を追加とパッケージの版数を 2023/02/12 としました。 jis/* も make jisfile で作ってみました。 jsclasses を触るのは初めてなのでおかしなことをしているかもしれません。何かあればご指摘お願いします。 特になければ 2/12 にCTANへ投稿します。
内容はタイトルの通りです.かねてより要望を出していました #73 について,ありがたいことに @t-tk さんからご賛同のコメントをいただいたこと,また @okumuralab さん・@doraTeX さんからも 👍 のリアクションをいただいていることから,そろそろ実現してもよいのかなと思い,実装の叩き台を作ってみました.
概ね当該 issue で自分が提案したような挙動を実現しましたが,細かい部分の挙動については調整が必要な可能性があります.例えば
platex
とuplatex
を同時指定した場合(そのような指定は明らかに “不正” だと思いますが)のことは真面目に考慮していません.この実装では最後に指定したもののみが有効になり,それ以外は無視される挙動になるかと思います.しかしグローバルオプションにはすべてが残ることになりそうです.また autodetect-engine が規定となったところ(今後は必須でないところを敢えて)明示的に
platex
またはuplatex
の指定を行い,かつ実際の使用エンジンは不整合である場合に「その旨のエラーを出す」以上の親切な(?)手当を行うべきかは私だけでは判断できていません.ひとまず素朴にエラーを出すだけになっています.この懸念は #40 を踏まえています.