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

openany時の改ページ挙動 #85

Closed
kmuto opened this issue Jun 27, 2021 · 8 comments
Closed

openany時の改ページ挙動 #85

kmuto opened this issue Jun 27, 2021 · 8 comments

Comments

@kmuto
Copy link
Contributor

kmuto commented Jun 27, 2021

openanyオプションは「章などの開始を右始まりにこだらわず単なる改ページする」という挙動が期待されると思いますが、abenori_dev 669b1de で試しても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
Copy link

aminophen commented Jun 27, 2021

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

mainmatter

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

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

@kmuto
Copy link
Contributor Author

kmuto commented Jun 27, 2021

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

\jlreqsetup{frontmatter_pagination={arabic,continuous}}

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

@aminophen
Copy link

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

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

@abenori
Copy link
Owner

abenori commented Jun 28, 2021

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

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

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

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

@kmuto
Copy link
Contributor Author

kmuto commented Jun 28, 2021

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

  • A. 紙の本の場合、ローマ数字→アラビア数字で切り替わるタイミングでローマ数字が奇数終了なら偶数の白を入れないとアラビア数字1がおかしくなるから絶対にcleardoublepageする、というのはわかる
  • B. frontmatterがarabic,continuousで大扉通しにするのであれば、切り替わりは発生しないのでclearpageのほうがよい
  • C. このほかに、今は「電子版」という存在がある。電子版においてどうしても左右見開きでなければならない必然性はない(Acrobatで見開きモードはあるが)ので、ローマ数字が奇数でも白を入れたくないという要望はありえる

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

@abenori
Copy link
Owner

abenori commented Jun 28, 2021

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

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

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

@kmuto
Copy link
Contributor Author

kmuto commented Jun 28, 2021

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

@abenori
Copy link
Owner

abenori commented Jun 28, 2021

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

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

No branches or pull requests

3 participants