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

review-jsbook.clsの追加 #1117

Merged
merged 78 commits into from
Oct 15, 2018
Merged

review-jsbook.clsの追加 #1117

merged 78 commits into from
Oct 15, 2018

Conversation

kmuto
Copy link
Owner

@kmuto kmuto commented Sep 30, 2018

@munepi さん作のreview-jsbook.clsを追加。ライセンスヘッダを入れました。

これから周辺のテストや調整をしていきます。

@munepi
Copy link
Contributor

munepi commented Oct 1, 2018

@kmuto
ありがとうございます。
この場所 templates/latex/review-jsbook/review-jsbook.cls ですね。

review-jsbook.cls に何にも説明もコメントもないので、追って PRで改修しつつ、簡単なドキュメントも付けてしまいます。

@munepi
Copy link
Contributor

munepi commented Oct 1, 2018

review-jsbook.cls の作業を次に時間を取ってできるのが、10/3夜中以降になります。
その際に、 \includefullpagegraphics の実装やら、表紙カバーの処理、 cameraready の各値の仕様の考察などもできればと思います。
現状、 cameraready=pdf,print のみで良いかなーと思っています。

  • print: トンボつき、hyperref は draft で。表紙カバーの扱いもほしい
  • pdf: トンボなし、hyperref による PDF hyperlinkが有効。表紙カバーの扱いもほしい

表紙カバー画像へのパスを \bookdover{/some/where/cover1.pdf} のようにプリアンブルに書くようにするか、
クラスファイルオプションに bookcoverimage= を用意するか。

@kmuto
Copy link
Owner Author

kmuto commented Oct 1, 2018

includefullpagegraphicsを用意していただければ、それをreview-base.styの表紙設定のほうで使うようにします。
クラスオプションだと、config.ymlの値に別のymlパラメータをひっぱることができない都合で困りそう。

表紙にかぎらず、全面はりつけは挿絵や漫画なんかで使いたい人もいるみたいですね。奥付もそうか。

@munepi
Copy link
Contributor

munepi commented Oct 1, 2018

裏で別途表紙カバー専用の仕組みを作ることをせずに、
某業務でやっている \includefullpagebraphics コマンドを直接読んで、全面画像をペタっと張るぐらいが良さそうですね。

実装すべき機能(リリースクリティカル) を見るかぎりでは、少なくとも残り以下を実装すればいけそうですね。

  • \includefullpagebraphics コマンドの実装(←review-jsbook.cls において、\recls@head, \recls@gutter を利用すればいけます!)
  • cameraready オプションの pdf, print の挙動の考察(←ここは、同人誌製作視点で仕様を考えたい!!)

review-jsbook.cls は、jsbook.cls が自動的にやる版面設定やフォントサイズ指定の挙動を全部押し殺して、自前で持っていると見ることができます。
review-jsbook を読んだあと、otf パッケージも呼べますし、geometry パッケージも逆らわないですし、基本的にjsbook�の使い勝手と遜色ないと思います。

@kmuto
Copy link
Owner Author

kmuto commented Oct 2, 2018

  • review-jsbook.cls側で提供されているハイパーリンクまわりをreview-base.styから除きました。jsbook.clsで使っている場合だと困るかなぁ。でも3でinitするなら問題ないはずか。
  • PDF書誌情報を加えるようにしてみました。config.yml結果から引きたいのでreview-base.styの仕事にしています。
  • 書誌情報のCreatorにはRe:VIEWバージョンを入れるようにしました。TeXコンパイラバージョンを入れられるといいなーとうっかりつぶやいたら、大変なことに(結局どのエンジンでも安全そうなコレというのがないし、バナーだとCreatorには長すぎるものになりそう)。

@kmuto
Copy link
Owner Author

kmuto commented Oct 2, 2018

munepiさんクラスで慣れている気持ちをちょっとリセットして初めてのユーザーの気持ちになると、

  • camerareadyとは何かわからなそう。typeとか?
  • printはいいけどpdfはどっちもPDFを作っていることに変わりはないので混乱しそう。ebookとかdigitalとか?

@munepi
Copy link
Contributor

munepi commented Oct 2, 2018

@kmuto

review-jsbook.cls側で提供されているハイパーリンクまわりをreview-base.styから除きました。

hyperref関連をどこでやるか検討の余地がありますけれども、どうせ電子版PDFを吐くから、hyperref前提としてクラスファイル側に組み込んでおきたいと考えます。
clsファイル�の実装における技術的な理由からも、最初からhyperrefパッケージを前提としておくほうが対処もしやすいです。


cameraready= は「版下」という意味のごとく、下版に対する cameraready=<target device> とか cameraready=<action> という値を想定しているオプションです。

Re:VIEWによる同人誌製作視点で仕様を勘案すれば、「印刷版仕様 print」と「電子版仕様 ebook」の方が分かりやすいでしょうね。

cameraready= の他の値を検討するとすれば、 デジタルトンボつき印刷仕様PDF、隠しノンブル(どこに出すかですが、トンボのどこからへんに出す)とか色々と用途を設けられそうです。
しかしながら、2 passすることを前提とすれば、これらは、 print, ebook(仮)から吐いたPDFに対して適切に処理すれば、期待するPDFが得られるので、ひとまず保留でも良さそうです。

フォント周りの機能もできますけれども、TeX Live標準の汎用仮想フォント(相対フォント名)を利用するかぎりにおいて、 jsbook, jlreq の段階では、現状こちらも保留しときましょうか。

@kmuto
Copy link
Owner Author

kmuto commented Oct 3, 2018

はい、ではそう何度も変更をするパラメータでもないので、「版下という意味だよ」で周知すればいいかな。
print, ebook にはしたいと思います。
デジタルトンボは入れたいですね。シンプルにgentombowを中で呼ぶというのでもよいかと思います(そのときの紙サイズ指定もdocumentclass optionレベルでシンプルに指定したいですが)。

フォントについては…vf,tfmの配布までは公式ではやりたくないので、たとえばreview-style側でpxchfonを入れておくとか?

@kmuto
Copy link
Owner Author

kmuto commented Oct 4, 2018

あ、gentombowはTeXLive 2016だとパッケージとしては入ってないか…

@kmuto
Copy link
Owner Author

kmuto commented Oct 4, 2018

ありがとうございます。設定から取っておきました(camerareadyを一番変えそうなのでコメントアウト側のほうには残しています)。

gentombowを試しに使ってみたんですが、1ページめの計算が狂うっぽい?(jsbook.clsだと問題ない)

@kmuto
Copy link
Owner Author

kmuto commented Oct 5, 2018

papersizeを渡しているとgentombowがうまく機能しないんですね。jsbook.clsを見るかぎりではtomboオプションでの紙面調整に使っているだけのようなので取ってしまったほうがいいんだろうか。

@kmuto
Copy link
Owner Author

kmuto commented Oct 5, 2018

gentombowを使う場合の #1119 を作ってみました。

@munepi
Copy link
Contributor

munepi commented Oct 5, 2018

ちょっと待ってもらってよいでしょうか?
review-jsbook側で実装すべきところがあるので、こちら側でgentombowに合わせることにします。

やはり、外部のパッケージを使ってトンボを含めて対応するのはメンドウなのが正直なところです。

@kmuto
Copy link
Owner Author

kmuto commented Oct 5, 2018

はいー。

@kmuto
Copy link
Owner Author

kmuto commented Oct 5, 2018

トンボに絡むんですが、jsbookの紙サイズ指定がわかりにくいのもつらいなと思いました。jやpaperのサフィックスなしで普通に「a5」などで双方の紙サイズを指定できるようにしたほうがよさそうでしょうか。

@munepi
Copy link
Contributor

munepi commented Oct 5, 2018

jやpaperのサフィックスなしで普通に「a5」などで双方の紙サイズを指定できるようにしたほうがよさそうでしょうか。

現状、review-jsbook.clsでは、事実上、 a5ja5paper も同じです。
paper=<用紙>paperwidth=<用紙横幅>, paperheight=<用紙縦幅> を用意しましょうか?

というわけで、もっともっとjsbookを押し殺していくしかないです。
(ただ…、ここまでどんどん押し殺していくと、review-jsbook.cls という名前じゃなくても良いような気がしています。review2-compat.cls とかでも :D )

@kmuto
Copy link
Owner Author

kmuto commented Oct 5, 2018

そうですね…どこまで上書きしてしまうかは悩ましいところなんですが、paperの指定はほとんどのユーザにとってハマりどころで、バッドノウハウが蔓延しかねないところだと思うのです。

paper=用紙 / paperwidth=幅,paperheight=高さ
tombopaper=用紙

なんか某クラスになってきましたね…。
もし用紙の設定は既存のa5jオプションとかを使うなら、tombopaperのほうも「a5j」のようにサフィックスを付けないとわかりづらいかんじです。

@kmuto
Copy link
Owner Author

kmuto commented Oct 15, 2018

travisエラーはtravis側の問題。

@takahashim
Copy link
Collaborator

@kmuto これもマージしちゃってよいですか?

@kmuto
Copy link
Owner Author

kmuto commented Oct 15, 2018

いきましょう!

@kmuto
Copy link
Owner Author

kmuto commented Oct 15, 2018

むしろこれをやらないとすべてが進まないので…

@takahashim
Copy link
Collaborator

ではマージします

@takahashim takahashim merged commit 165127c into master Oct 15, 2018
@takahashim takahashim deleted the reviewjsbookcls branch October 15, 2018 13:46
@takahashim
Copy link
Collaborator

む、テストこけるぽい

@kmuto
Copy link
Owner Author

kmuto commented Oct 15, 2018

あれ、ほかのとぶつかったかな…

@kmuto
Copy link
Owner Author

kmuto commented Oct 15, 2018

手元では問題ないけどなんだろう

@takahashim
Copy link
Collaborator

#1145 で修正してみました(手元ではpreview3になっていたのでした)

@kmuto kmuto mentioned this pull request Oct 28, 2018
24 tasks
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