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

support migration of texdocumentclass #1152

Closed
takahashim opened this issue Oct 16, 2018 · 22 comments
Closed

support migration of texdocumentclass #1152

takahashim opened this issue Oct 16, 2018 · 22 comments

Comments

@takahashim
Copy link
Collaborator

過去の texdocumentclass が壊れるので困りそうでした(困りました)。
そのまま使えないにしても簡単に移行できるようにしたい。せめて分かりやすい(何をどう変更すればよいかわかる)エラーメッセージを出すとか?

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

あれ、review_version:2でも壊れます?

@takahashim
Copy link
Collaborator Author

いえ、review_version:3 に移行するためのものです。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

あー、2→3に移行する方法がわからないかも?ということでしょうか。
sty含めてという話になりそうですが。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

あ、review_version:2のプロジェクトがコケるようになっている…
これはまずいな

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

このissueの本質ではないかもですが、Re:VIEW2プロジェクトが動かないのはロジックミスでした。
#1154 の修正を「今」入れたいです。

@takahashim
Copy link
Collaborator Author

「2→3に移行する方法」ですね。2でやっていたのを3で使いたいときにどこを修正すればよいのか分からない、という課題です

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

とりあえず #1154 が入った状態でRe:VIEW 2のプロジェクトは壊れずにビルドできるはず…(imgmath使ってると調整が必要かな)。

で、単純にreview_version 2→3にした場合、壊れるのはreview-pdfmakerのみで、

review-pdfmaker config.yml
INFO: compiling r3.tex
WARN: r3.re:1: headline is empty.
INFO: extractbb cover.jpg
INFO: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex
ERROR: review-pdfmaker: failed to run command: uplatex -interaction=nonstopmode -file-line-error __REVIEW_BOOK__.tex

Error log:
This is e-upTeX, Version 3.14159265-p3.7.1-u1.21-161114-2.6 (utf8.uptex) (TeX Live 2016/Debian) (preloaded format=uplatex)
 restricted \write18 enabled.
entering extended mode
(./__REVIEW_BOOK__.tex
pLaTeX2e <2016/11/29u01> (based on LaTeX2e <2017/01/01> patch level 3)
Babel <3.9r> and hyphenation patterns for 12 language(s) loaded.

! LaTeX Error: File `review-jsbook.cls' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: cls)

Enter file name: 
./__REVIEW_BOOK__.tex:5: Emergency stop.
<read *> 
         
l.5 ^^M
       
No pages of output.
Transcript written on __REVIEW_BOOK__.log.

これを拾おうとすると…

実行前に一時ファイルフォルダの中でtexdocumentclassのクラスファイルをkpsewhichで探す→見つからない→それがreview-jsbook.clsである→たぶん2から3に移行しようとしたと推測→手引きのURLを表示

とか?

review-updateに着手することも考えたほうがいいかも。

@takahashim
Copy link
Collaborator Author

review-jsbook.clsと他のreview-*.styをコピーしてきた上で、ビルドに失敗したときに、何が失敗したかよく分からない(調べたら11ptとかb5jとかで死んでた)、という感じでした。

@takahashim
Copy link
Collaborator Author

texdocumentclassの値をparseして用紙サイズはpaper=XXを使いましょう的なメッセージを出すべきですかね…。
ちなみにtexdocumentclassにreview-jsbookではなくjsbookを使うことは許容されてるんでしょうか?

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

うーん。

  • 「review-jsbookと他のをコピー」の時点で更新の意図や対象ファイルが「わかっている」人になるので、review-jsbook/README.mdにも目を通すのでは、という疑問。
  • 何もしないひとはreview_version:2のままなので問題ないのでは。
  • 「Re:VIEWのデフォルト」ではオプションパラメータをいじっていないので、そこをユーザーが「あえて」変えている場合のフォローまですべきか?
  • 11pt系などはもともとが排除したいやり方なので互換性は持ちたくない。clsで明示的なエラーを出すことは可能なはず(今もあえて切ってるロジックのはず)
  • b5j系は互換化はできるかもだけどpaperを使え明示エラーになるようにする方向がよさそう
  • いずれにせよRe:VIEW側ではなくTeXコンパイラに渡ってからのエラーとなる
  • jsbookを使うことは許容ですが、reviewmacro, review-*.styの互換性は面倒を見ていないです。どうしても(紙出力に不向きな)jsbook.clsを使いたいならreview_version:2固定にするか自前でreview-*などを作りましょうというスタンスです。

@takahashim
Copy link
Collaborator Author

うーん、基本的な位置づけとして、

  • review-jsbook: jsbookを使いたい人向けに便利機能を追加したもの。機能的にはreview-jlreqより劣るかも
  • review-jlreq: jsbookを特に使いたいわけではない、あるいは使いたくない人向けに、後方互換は気にせず使いやすくしたもの

といったような理解なのですが、これはあってますか?

ちなみに想定しているのは、素のreviewmacroやtechbooster-doujinをちょっといじって使ってる、くらいの人です。
review-jsbook/README.mdをざっと読んだだけだといきなり書き換えポイントを理解するのは大変そうというか、試しに動かしてみてTeXコンパイラの大量のログを見てちょっと呆然とした(どこがエラーの原因なのか調べるのがたいへん…)、という温度感です。

@takahashim
Copy link
Collaborator Author

takahashim commented Oct 16, 2018

11pt系などはもともとが排除したい

これはなんででしょうか?

b5j系は互換化はできるかもだけどpaperを使え明示エラーになるようにする方向がよさそう

これはこれでアリかと思う(XXpaperとXXjの混在は混乱の元というか正直よく分かってない)のですが、できればTeXコンパイラに渡る前にチェックした方がいいのかも→「texdocumentclassの値をparseして用紙サイズはpaper=XXを使いましょう的なメッセージを出す」のが良い?、と思いました。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

review-jsbook: jsbookを使いたい人向けに便利機能を追加したもの。機能的にはreview-jlreqより劣るかも

  • 「jlreqのほうがjsbookより優れている」わけではないですね。jlreqはJLREQ準拠なのでそっちの制約がありますし、まだ挙動もjsbookに対して定まっていないです。TeXLiveバージョンも最新にしていかないといけないのできつい。jsbookは「変わらない」利点があります。
  • jsbookにかぶせる形で、パラメータ1つでの電子・紙の容易な切り替え(トンボやハイパーリンク)、画像の全面貼り付け、妥当な版面設計、印刷面ではデジタルトンボ、通しノンブル、隠しノンブルなどを提供する。

review-jlreq: jsbookを特に使いたいわけではない、あるいは使いたくない人向けに、後方互換は気にせず使いやすくしたもの

jsbookはこれ以上ひきずるつもりはないし、lulalatexのサポートも考えていきたいので、いずれデフォルトとしていくもの。とはいえ今のところはまだいろいろ難しいはず。後方互換は考えない。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

11pt系などはもともとが排除したい

jsbookにおいて、これらのオプションは、本当に各文字サイズをその値に変えるというより、magscaleで全体の単位を変える、という手段をとっている、という理解です。

b5j系は互換化はできるかもだけどpaperを使え明示エラーになるようにする方向がよさそう
これはこれでアリかと思う(XXpaperとXXjは混乱の元というか正直よく分かってない)のですが、できればTeXコンパイラに渡る前にチェックした方がいいのかも→「texdocumentclassの値をparseして用紙サイズはpaper=XXを使いましょう的なメッセージを出す」のが良い?、と思いました。

んー、review-jsbookの移行のためだけにそこまでやる必要があるかなぁ、ということになりそうです。2系の引き継ぎのためだけに実行コマンド側に負債を入れるよりは、review-updateのようなものを用意して、そっちに汚いところを押しつけたほうがいいのではないでしょうか。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

templates/review-jsbook/README.mdに移行の注意書きを書くといったことで済むならそれで済ませたいかも。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

なお、背景としては、現状jsbookを使って印刷仕様を読まずにカジュアルに入稿しすぎているチャレンジャーな方たちが見受けられ、印刷系の方からは眉をひそめる発言もいただいています。
review-jsbookはデフォルトの状態で最低限のレベルでの安全性を確保したいという思いがあります(逆にjsbookだけではそこまで持っていくのは困難です)。デフォルトをprintに振っているのも、紙を主体にするという前提です。

@takahashim
Copy link
Collaborator Author

jsbookにおいて、これらのオプションは、本当に各文字サイズをその値に変えるというより、magscaleで全体の単位を変える、という手段をとっている、という理解です。

なるほど、これはpt単位の問題ではなく、magscaleの問題ということですね。

@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

はい、magを含めjsbookのいろいろと危なそうな部分を覆い隠して、まずまず安全にするのがreview-jsbookの役割、と捉えられるかと。

@takahashim
Copy link
Collaborator Author

「review-jsbookはデフォルトの状態で最低限のレベルでの安全性を確保したい」と「jsbookはこれ以上ひきずるつもりはない」は相反するところもあるので、どのへんが落とし所なのかが気になりました(基本は後者で、前者の方向では頑張らないという印象でした)。

@takahashim takahashim mentioned this issue Oct 16, 2018
9 tasks
@kmuto
Copy link
Owner

kmuto commented Oct 16, 2018

スタンスとしては、review-jsbookのほうはひとまずこれで完成として、バグ修正以外、新機能のほうはあまり入れないようにしたいと考えています。(pt単位指定は入れたいけど)
#たとえば任意のフォント指定とかは、要望はありそうだけれどもuplatexのフォント管理とjsbookのスタイル設計があいまって厳しい。

ただ「jsbook向けにはもうがんばらず、jsbookベースからjlreqベースから移行へ」はlualatexやカスタマイズ性の観点からも大目標ではあるものの、今のjlreqはTeXLiveどころかgit master HEADを追い掛ける必要があるので、まだ当分は完全移行とまではいかず、jsbook/jlreq両方で動くことを考える、という状況になります。

@kmuto kmuto mentioned this issue Oct 16, 2018
13 tasks
@kmuto kmuto mentioned this issue Oct 28, 2018
24 tasks
@kmuto
Copy link
Owner

kmuto commented Oct 28, 2018

どうしてもjsbook.clsを使い続けたい人向けにreview-jsbookのreview-*.styが最低限動くような #1177 を作ってみました。

@kmuto
Copy link
Owner

kmuto commented Dec 16, 2018

review-jsbookでjsbook見た目互換、jsbookを使い続けようと思えばいちおう可能、という状態にはしてあるのでこのissueは閉じますね。

@kmuto kmuto closed this as completed Dec 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants