abenori / jlreq

Other
125 stars 18 forks source link

openany時の改ページ挙動 #85

Closed kmuto closed 3 years ago

kmuto commented 3 years ago

openanyオプションは「章などの開始を右始まりにこだらわず単なる改ページする」という挙動が期待されると思いますが、abenori_dev 669b1de68efda7ae9e656500956e873aace3d703 で試してもmainmatterのところでcleardoublepageになります(下の例ではCH01の前に白ページができます)。

\documentclass[book,openany]{jlreq}
\jlreqsetup{frontmatter_pagination={arabic,continuous}}
%% \jlreqsetup{mainmatter_pagebreak=clearpage}

\begin{document}
\frontmatter

\chapter{FRONT}

\mainmatter

\chapter{CH01}

\appendix

\chapter{APP01}

\backmatter

\chapter{BACK}

\end{document}

回避としては3行目のjlreqsetupを実行することで済みますが、openanyが指定されているときにはmainmatter_pagebreakclearpageにしたほうがよいのではないでしょうか。

aminophen commented 3 years ago

pLaTeX の標準クラス jarticle などに openleft を追加した時に調べたのですが,これは LaTeX 本家の標準クラス article などの挙動に合わせたものであり,ソースコード説明書 (pldoc.pdf) にもその事実を書いています。

mainmatter

もちろん,jlreq では違う方針にされるならば,それはそれで構わないと思います。

(オフトピですが,openany に関しては jsclasses ですら「16年温存してしまったバグ」を互換性を壊して修正したことがあります。)

kmuto commented 3 years ago

情報ありがとうございます! ノンブルリセットについては前付ローマ数字ノンブル→本章アラビア数字ノンブルのこととして、jlreqだと上記サンプルで示したように

\jlreqsetup{frontmatter_pagination={arabic,continuous}}

という形で前付からアラビア数字通し(通しノンブル)ができるので、少なくともこういう状態になっているときにはopenanyで白ページができるのは期待とそぐわず、またmatterの仕組みまで知識がないと原因が想像しづらいように思います。

aminophen commented 3 years ago

pagenation が continuous の場合は,たしかに偶奇逆転の問題が起きないので,白ページを入れなくてもよさそうですね。jlreq クラスでは細かいカスタムができるので便利ですね。

一方の pLaTeX の方は https://github.com/texjporg/platex/issues/47 も放置したままでした。ページ送りの標準ついては jlreq クラスで洗練していただくのが良いと思います。

abenori commented 3 years ago

お察しの通り,標準クラスファイル(かjsclasses?)に合わせていました.

通常どうなるのかよく知らないのですが,通しノンブルかつ空白ページを入れない

\jlreqsetup{
  frontmatter_pagination={arabic,continuous}},
  mainmatter_pagebreak=clearpage
}

とする方とopenanyっぽくなりますか?

kmuto commented 3 years ago

わりと悩ましいですね…。

Bの設定があるときだけclearpageにする、という処理を入れるくらいなら、どうせBの設定を書ける人なんだからmainmatter_pagebreakも併用せよ、とREADMEドキュメントに書いておくくらいでもいいような気がしてきました。Cについても同様にclearpageに自分で変えよで済みますね。

abenori commented 3 years ago

あり得そうな選択肢は二つに思えてきました.(W3CのJLReqは紙の本をかなり念頭においているように思えるので,とりあえず電子版は無視することにします.)

  1. 現在のまま.READMEの「その他」のあたりにそういう挙動になっていること,\jlreqsetupで設定し直せることを追記する.
  2. 通しノンブル,空白ページを入れないという設定
    \jlreqsetup{
      frontmatter_pagination={arabic,continuous}},
      mainmatter_pagebreak=clearpage
    }

    をデフォルトとする.

疑問点は,1をopenanyとして提供するのがどの程度違和感があるかです.全くなければ標準クラスファイルに追随する形で1としますが,openanyという名前からは2以外考えにくいということでしたら2にせざるを得ないように思います.

kmuto commented 3 years ago

うむむ、2.はopenanyという名前に対しては逆にやりすぎている感じがします。 とすると、1.の説明を入れていただくのがよさそうに思いました。

abenori commented 3 years ago

注意書きを入れてみました. 9627015 どうかな?