Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#73「autodetect-engine の規定化と platex オプションの追加」の実装 #76

Merged
merged 1 commit into from
Feb 12, 2023

Conversation

wtsnjp
Copy link
Contributor

@wtsnjp wtsnjp commented Mar 28, 2022

内容はタイトルの通りです.かねてより要望を出していました #73 について,ありがたいことに @t-tk さんからご賛同のコメントをいただいたこと,また @okumuralab さん・@doraTeX さんからも 👍 のリアクションをいただいていることから,そろそろ実現してもよいのかなと思い,実装の叩き台を作ってみました.

概ね当該 issue で自分が提案したような挙動を実現しましたが,細かい部分の挙動については調整が必要な可能性があります.例えば platexuplatex を同時指定した場合(そのような指定は明らかに “不正” だと思いますが)のことは真面目に考慮していません.この実装では最後に指定したもののみが有効になり,それ以外は無視される挙動になるかと思います.しかしグローバルオプションにはすべてが残ることになりそうです.

また autodetect-engine が規定となったところ(今後は必須でないところを敢えて)明示的に platex または uplatex の指定を行い,かつ実際の使用エンジンは不整合である場合に「その旨のエラーを出す」以上の親切な(?)手当を行うべきかは私だけでは判断できていません.ひとまず素朴にエラーを出すだけになっています.この懸念は #40 を踏まえています.

@t-tk
Copy link
Contributor

t-tk commented Mar 29, 2022

オプションの重複とエラーの関係について、実装の難易度とかは考えずとりあえずこんなのどうでしょうという案を作ってみました。
叩き台としていただければ。
この案では、オプションの順番は無関係と思っています。
また、この案では、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 エンジン不整合。エラー終了

@t-tk
Copy link
Contributor

t-tk commented Feb 5, 2023

とりあえず、現在の @wtsnjp さんの autodect-engine-by-default ブランチに現在の master をマージしたものを作ってみました。jsclasses.pdf が旧いままです。498b7f8

まとめに入りたいと思います。
現状は次のような仕様になっていると思います。賛同します。

  • autodetect-engine, platex, uplatex のオプションのうち一つが指定できる。重複指定した場合は最後が有効。
  • 無指定(default)の場合は autodetect-engine を指定したのと同じ。
  • 無指定(default)または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}が追加されていますが,
?

@t-tk
Copy link
Contributor

t-tk commented Feb 5, 2023

\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}

@aminophen
Copy link
Member

私が、jsclasses.dvi をmakeしようとすると、止まってしまいます。

すみません,私も確認せずに \cs と書いてしまったかも。単純に |\par| に変えて結構です。

\cs は、ptex-manual の中だけでもいろいろな定義がなされているようです。

_asciimw が付いている物はアスキー時代から極力変更しないつもりなので,その中のバラバラの定義もアスキーによるものですがそのままにしておきたいです。

t-tk added a commit that referenced this pull request Feb 6, 2023
t-tk added a commit that referenced this pull request Feb 6, 2023
@t-tk
Copy link
Contributor

t-tk commented Feb 6, 2023

単純に |\par| に変えて

この方針で書き直しました 。
合わせて、マニュアルの autodetect-engine 周りの記述を追加とパッケージの版数を 2023/02/12 としました。
jis/* も make jisfile で作ってみました。
jsclasses を触るのは初めてなのでおかしなことをしているかもしれません。何かあればご指摘お願いします。
特になければ 2/12 にCTANへ投稿します。

t-tk added a commit that referenced this pull request Feb 7, 2023
@t-tk t-tk merged commit 498b7f8 into texjporg:master Feb 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants