Munehiro Yamamoto

Results 22 comments of Munehiro Yamamoto

PR #1738 をmergeすると、 ``` tex \if@tate \expandafter\includefullpagegraphics\expandafter[angle=90,\review@coverimageoption]{\review@coverimage} \else \expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage} \fi ``` は、 ``` tex \expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage}% ``` でかまいません。

まず、大前提として、これらの挙動は、(`jsbook.cls` 既定の用紙サイズのみを切り替えているだけで、) `jsbook.cls` そのものの動作です。 実際に、既定の用紙サイズを A4 のみならず、B5 に変えていただいても、(jsbook.clsの版面設計の自動計算により、)似たような出力になります。 実現なさりたいことは、A5のような余白(ノド、小口)が左右で等しくなるような版面ですよね? つまり、版面が左右中央に配置される。 review-jsbook.cls において、 A4 用紙サイズ、本文文字サイズ 10pt(デフォルト)、40文字にする場合は、 `line_length=40zw` を texdocumentclass にわたしてあげれば、期待した出力になりませんでしゅか? ``` yaml ## A: default: media=print, paper=a4 texdocumentclass: ["review-jsbook", ""] ##...

@masarakki > line_length 与えるとコンテンツがセンタリングされるの全然意味がわからない挙動だから > (少なくともebookでは) gutter からコンテンツサイズ計算して常にセンタリングしてほしい・・・ それは、「 `jsbook.cls` 自体の基本版面設計が全然意味分からない挙動」とも言うことができます。 `line_length` を与えてしまうと、 `jsbook.cls` の版面設計の自動計算のルールから外れますから、 `gutter` を与えないと、とりあえず、左右中央寄せに配置するようにしています。 (むしろ、わざわざ `jsbook.cls` の版面設計の自動計算のルールに乗る必要もないと思います。) つまり、 `jsbook.cls` の版面設計の自動計算のルールから外れることをするのであれば、基本的には、字詰め(横幅)も行数(縦幅)も与えて箱組みを定めて、横組み見開きページの右ページにおいて、用紙の左上原点から箱組みをどこに配置するか(天とノド)を与えてくださいということです。 (むしろ、日本語組版の基本版面設計からすると、このほうが自然で、自分で自由に必要な値をすべて与えたほうが良いと思います。 `review-jsbook.cls` は `jsbook.cls` を下敷きにしていて、デフォルトで `jsbook.cls` の仕様を是とするので、この基本版面設計を仕様とすることにしていません。)

LaTeXのクラスファイルに対して外部読み込み処理の箇所を提供するのも、「隠しノンブル」の機能のみであれば分かりやすいですが、他の機能もってなりそうで、その割り込み箇所で骨が折れると思います :-( 結局クラスファイルを `PROJECT/sty/` にコピーしてきたほうが早いとなりそうです。 いまの隠しノンブルのパターンだけでも、十分な気がしています。 強いてパターンを追加するのであれば、「左右頁問わずにトンボ左上肩に、隠しノンブルを表示」ぐらいかな(実例あり)。

`$ dvipdfmx -f [mapfile]` で指定する [mapfile] に、少なくとも otf-foo.map, otf-up-foo.map(さらに、ptex-foo.map, uptex-foo.map も)を合わせたマップファイル(例えば foo.map)が指定していると、`layout.tex.erb` 内で `\usepackage[deluxe]{otf}` をデフォルトで有効にして問題ないです。 したがって、`config.yml` に otf オプションをつけるほどでもないように思います。 実際のところ、`$ dvipdfmx -f [mapfile]` の [mapfile] は、ptex-foo.map, uptex-foo.map, otf-foo.map, otf-up-foo.map のどれかを指定すると思い込まれているユーザさんが多いのかもしれません。

> (ただlayout.tex.erbは細かく非互換が入りやすいので、これで事足れりとはならないのが悩ましいので、TeXのスタイル側で対応できるならそれがベストですが。) #342 でコメントしましたでっち上げ reviewbook.cls https://gist.github.com/munepi/91703b6f2422862a7e09e56d6d3166d6 内で、 ``` diff -\@review@pkg@otftrue % \DeclareOption{package:otf}{\@review@pkg@otftrue} +\DeclareOption{package:otf}{\@review@pkg@otftrue} ``` と書き換えると、 ``` latex \documentclass[dvipdfmx, package:otf, ]{reviewbook} ``` と指定でき、platex, uplatex に依らず、jsbook.cls と otf パッケージ有無を適切に読み込ませられます。 この reviewbook.cls のオプションをちょこっと覚える必要がありますが、`latex.tex.erb`...

@takahashim そもそも otfパッケージの`deluxe`オプションを切り替えなくてよいと思うんですね :-) 各仮想フォントに対して、実フォント+CMapなどが適切に指定されておれば、十分ですから。 > ただlayout.tex.erbは細かく非互換が入りやすいので、これで事足れりとはならないのが悩ましい > + > これがあればotfを読み込まない・なければ読み込む、ということにすればよいのかもしれませんが。 ここにいきつきますよね :-) できるかぎり、以下のようにまとめられたいのかなーと見ております。 - latex/layout.tex.erb は、書籍情報、書籍文章構造に関わる雛形 - sty/foo.cls, sty/bar.sty は、紙面体裁に関わる雛形 reviewbook.cls https://gist.github.com/munepi/91703b6f2422862a7e09e56d6d3166d6 を元に、現状の layout-tex.erb を整理して、jsbook, (u)tbook を被せた review-jsbook, review-tbook...

@takahashim さん、 >> そもそも otfパッケージのdeluxeオプションを切り替えなくてよいと思うんですね :-) > なんと、そうなんですか。 周辺の諸々を踏まえた上で、結果的に1年半以上かかってしまいました…、 少なくとも現状の `review-jsbook/review-base.sty` では、標準的にotfパッケージの `deluxe` が有効になっています。 ---------- @kmuto さん、 `{,review}-jsbook.cls`に対して、別途、otfパッケージを読み込んだ場合、otfパッケージの `replace` オプション(デフォルトで有効←人に依って、これも利便性ゆえの混乱の元かと思ったりしています)により、相対フォント名7書体が使えるようになるものの、従属欧文がComputer Modernに書き換えられてしまうので、(真面目に対応するとなると、)Latin Modernへの変更するための後処理が必要です。 `review-base.sty`でotfパッケージに後に、lmodernパッケージを読んでいるので、部分的にしかLatin Modernフォントになっていないと思われます。 一方、現状の `review-jlreq` では、 otf パッケージを読んでいないです。 そもそもjlreqは、自前で仮想フォント(細かい差を除くと、相対フォント名で4書体分(明朝、ゴシックで2書体ずつなはず))を持っていますので。...

いまのRe:VIEW 3リリース直前で、ここまでやるのは、ちょっと骨が折れるので、 jlreqのほうも武藤さんがknowledge spaceに書かれた「pxchfonを使う方法」などで `review-custom.sty` をカスタムしてもらうので良いかなとも。 たぶん、otfパッケージの`deluxe`で提供される `\ltseries`, `\ebseries`, `\mgfamily` のテスト例がないので、引っかかっていないだけだと思います。 下記のコード例が適切かどうかはさておき、Latin ModernにSerifのLightやSansのExtraBoldがないので、それぞれSerif Regular, Sans Boldで代替して従属欧文を当てています。 ひとまず、ここまで面倒みなくても、気になるユーザさんは、自前でやってもらうのがRe:VIEW 3で良さそうな気がしています(時間の都合もここまで面倒みるかどうかも)。 実際には、Computer ModernとLatin Modernで細かい差があるものの、ほとんどの方は気にならないとも思います。 (以下程度コードならば、otfパッケージのupstreamにも反映できそう(反感を食らわない)だとも思うので、そのうち合間に PR してみます。) ```tex \RequirePackage[T1]{fontenc}\RequirePackage{textcomp}%T1/TS1 \RequirePackage{lmodern} \input t1lmr.fd \input...

その奥付うんぬんの仕様は Re:VIEW の都合上だと思いますが、 最終ページが常に偶数で終わる(つまり、組んで奇数ページで終わるなら、白ページを足して偶数ページで終わる)ようにすることは、LaTeX側で自動的に対処可能です。 例えば、以下の `\oneblankpage` ようなコマンド ```tex \newcommand\oneblankpage{\clearpage\thispagestyle{empty}% \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi} ``` を入れておいて、以下相当の処理を `\end{document}` 時(もしくは、その直前)で実行するようにしておけばよいと思います。 ```tex \ifodd\c@page\oneblankpage\fi ``` Re:VIEWでどのような仕様にしておくべきかは、 @kmuto さんに相談した上で、上記相当の処理を仕込むことにいたします。