zr-tex8r / BXjscls

LaTeX jsclasses document classes adapted to any engines
BSD 2-Clause "Simplified" License
52 stars 8 forks source link

bxjsarticle で余白を狭めたときのページ番号 #2

Closed aminophen closed 7 years ago

aminophen commented 8 years ago

# ふと思い出して試してみたら、v1.2a でも状況が同じだったので。

twitter:697919431884713984 の話です。

\documentclass[twocolumn,platex,dvipdfmx,ja=standard]{bxjsarticle}
\setpagelayout*{margin=15truemm}
\setlength{\columnseprule}{0.5pt}
\begin{document}
あ
\end{document}

このレイアウトが、jsarticle で等価と思われる以下のソースと異なり、分割線とページ番号が重なってしまいます。これは意図どおりなのでしょうか。

\documentclass[twocolumn]{jsarticle}
\usepackage[dvipdfm,margin=15truemm]{geometry}
\setlength{\columnseprule}{0.5pt}
\begin{document}
あ
\end{document}

bxjsbook に関する残念な話とはまた別だ、と思っています。

zr-tex8r commented 8 years ago

jsarticle で等価と思われる

geometry を使った時点で一度「geometry のデフォルト」にリセットされるので、少なくとも、等価ではないですよね……。

おっと違った、 * 付きだったか。

zr-tex8r commented 8 years ago

寧ろ「geometryが何でもかんでもリセットする」と考えるのがマチガイで、 実際には“geometryのデフォルト”が適用されるのは次のパラメタに限られるようです。

つまり、これ以外は「geometry読込前の値」が“初期値”と見なされる、 つまり reset した場合はその値に戻る、と考えられます。 そして、その初期値がjsarticleとbxjsarticleで異なる。

zr-tex8r commented 8 years ago

つまり、JSクラスと異なり、BXJSクラスではほとんどのパラメタを“geometryにより”設定している、 従って、geometryでresetした直後は、多くのパラメタが“無意味な”値になっている。 (例えば \footskip の値がゼロになっている。)

この挙動は“意図通り”といって良いと思いますがどうでしょう……。

aminophen commented 8 years ago

BXJSクラスではほとんどのパラメタを“geometryにより”設定している、 従って、geometryで reset した直後は、多くのパラメタが“無意味な”値になっている。

なるほど…

\RequirePackage{filehook}
\AtBeginOfPackageFile{geometry}{\typeout{\the\footskip}}
\documentclass[twocolumn,platex,dvipdfmx,ja=standard]{bxjsarticle}
\typeout{\the\footskip}
\setpagelayout*{margin=15truemm}
\typeout{\the\footskip}

たしかに \footskip の初期値は 0pt ですし、「ほとんどのパラメタを“geometryにより”設定している」のですから、reset すると無意味になるのは確かに意図どおり、という気がしてきました。

zr-tex8r commented 8 years ago

ちなみに、マニュアルでは各クラスについて 「どのようなgeometryのパラメタを設定しているのか」 を具体的に記載しているのですが、この目的は 「元々のレイアウトを少し変えた奴を作りたい」 と思ったユーザが正しい設定に行き着けるようにするため、なんですね。

参照: https://twitter.com/re_easy2/status/760114749128396800?lang=ja #他人のツイートを借りる奴

aminophen commented 8 years ago

記載してあるのは \bxjs@layout の中身ですね。これが“初期値”だと勘違いしていました。 「2. geometry で」と書いてあるのを読んだ時点で気づくべきでしたね…(geometry ムズカシイ)