multicolsとtombowのバグ

multicolsとtombowのバグ

- 奥村 晴彦 の投稿
返信数: 18
multicolsを使うとトンボの位置がずれるようです。どなたか原因を調べていただければ助かります。

\documentclass[a5paper,tombow]{jsarticle}
\usepackage{multicol}
\begin{document}

\begin{multicols}{2}
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ

ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
\end{multicols}

\end{document}
奥村 晴彦 への返信

Re: multicolsとtombowのバグ

- Yamamoto Munehiro "munepi" の投稿
TeX Live 2015 の multicol.sty 2015/08/19 v1.8n でなく、
TeX Live 2014 の multicol.sty 2014/10/28 v1.8i を使うと、pTeXのトンボも意図どおりに出力されました。

この v1.8i から v1.8n までの間の変更で、pTeX のトンボと合わない変更があったようです。
Yamamoto Munehiro "munepi" への返信

Re: multicolsとtombowのバグ

- 奥村 晴彦 の投稿
うへぇ,そういうことだったのですか!
そういえば,去年まではうまくいっていたはずでした。
奥村 晴彦 への返信

Re: multicolsとtombowのバグ

- Yamamoto Munehiro "munepi" の投稿
実は…、pTeXのトンボを有効にしているとき、PDFプレビュアーからテキストエディタへの synctex による inverse search がうまく動作してくれない問題もあります。この再現例は、Emacs や TeXworks などのテキストエディタに奥村先生が本件で投稿した LaTeX 文章を貼り付けて、
ptex2pdf -l -u -ot '-synctex=1' test
で test.pdf を作成し、Skim や TeXworks プレビューをします。そのプレビュー画面上から、inverse search(左クリック+適切なmodifie keys)を手当たり次第やってみると、テキストエディタの適切なファイル上の適切な行に飛ぶ場合と jsarticle.cls の \ProcessOptions 直下の行に飛ぶ場合があります。

一方、pTeX のトンボを使わずに、例えば、以下のように crop.sty の crop mark だと、本件の multicol との問題も上記の PDF プレビュー -> テキストエディタの inverse search も問題ありませんでした。

% \documentclass[a5paper,tombow,uplatex,papersize,dvipdfmx]{jsarticle}
\documentclass[a5paper,uplatex,dvipdfmx]{jsarticle}\usepackage[cam,nodriver,a4,center]{crop}

そこで…、(multicol.sty v1.8i と v1.8n との差分を検証するにせよ、新しい LaTeX2e kernel 向けに  plcore を対応させるのに合わせて、トンボを直すにせよ…、)pTeX のトンボも pdfTeX などで標準的に利用されている "トンボ" パッケージを使えるようにするか、もしくは、pTeX 専用のトンボパッケージを作ることも検討したほうがよいのかもしれません。


とりいそぎ、簡単なコメントのみです。
Yamamoto Munehiro "munepi" への返信

Re: multicolsとtombowのバグ

- 奥村 晴彦 の投稿
ありがとうございます。
私もさっきcrop.styを実験してみましたが,トンボがトンボ形をしていないのでちょっと違和感がありました。
crop.styを改変して形を変えちゃうという手もあるかもですね。
奥村 晴彦 への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
この multicol と tombow の件で
svn repository から過去の multicol.dtx を取得して差分をみたところ
2014/10/28 v1.8i → 2015/03/07 v1.8j
で \multi@column@out の定義のなかに
\boxmaxdepth\maxdepth
が追加された時点で pLaTeX core のトンボと齟齬が生じたようです。
奥村先生のご指摘をより一般化した表現では
「最終ページ以外のすべてのページで pLaTeX core による下端のトンボが縮む」
という結果にみえます。
(参考までに、v1.8i と v1.8j の差分を添付します)
aminophen への返信

Re: multicolsとtombowのバグ

- 本田 知亮 の投稿
v1.8nのmulticolを使うと
multicols環境でページ分割するときに呼ばれる\@outputtombowの中で,当然ながら
\boxmaxdepthが\maxdepthになりますね.
multicols環境の外なら
\boxmaxdepthが\maxdimenです

ということで,対症療法ということなら

\def\@outputtombow{%
\iftombow
\vbox to\z@{\kern-13mm\relax
\boxmaxdepth\maxdimen%%!!! HERE !!
\moveleft3mm\vbox to\@@paperheight{%
\hbox to\@@paperwidth{\hskip3mm\relax
\copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip3mm}%
\kern-10mm
\hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}%
\vfill
\hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}%
\vfill
\hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}%
\kern-10mm
\hbox to\@@paperwidth{\hskip3mm\relax
\copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip3mm}%
}\vss
}%
\fi
}

でいけるような気がします.

\boxmaxdepthは\maxdimenが初期値で
outputルーチンで局所的に\maxdepthになってます.
multicol packageもそれに倣ったのかもしれませんが,
ページ分割の中だけではなく,
分割と分割の間の処理にも影響を出してしまっている感じがします.
確認してないですが,もしかすると,
platexではなくlatexでもその関係で何か起きるのかもしれません.
例えば,柱関係がページ分割とページ分割の間の処理ですよね
(とはいっても・・・柱でdepthが致命的にかかわる処理なんかはないですが・・・(^-^;)



アセトアミノフェンさんの差分を手掛かりにすると
multicol.styの\multiocloumn@outの中の
\boxmaxdepth\maxdepth
の位置がまずいように思えてきています.
複数のvsplitに影響を与えるために外側においてる感じですが,外側すぎるように見えます.
どうなんでしょうか.

本田 知亮 への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
> platexではなくlatexでもその関係で何か起きるのかもしれません.
> 例えば,柱関係がページ分割とページ分割の間の処理ですよね

本田さん、ありがとうございます。
柱というはなしが出ていたので

%#!pdflatex
\documentclass{article}
\usepackage{lipsum} % ダミーテキスト
\usepackage{multicol} % v1.8n
\usepackage{fancyhdr}
\pagestyle{fancy}
% 以下2行のうちどちらかを有効に
\rfoot{[\the\boxmaxdepth]\hrule width \textwidth height 1pt} % ==> NG
%\renewcommand{\footrulewidth}{0.4pt} % ==> OK
\begin{document}
\lipsum[1-15]
\begin{multicols}{2}
\lipsum[1-15]
\end{multicols}
\lipsum[1-15]
\end{document}

こんなのを処理してみると、確かにフッタの \hrule 線が
multicols 環境内のみで持ち上がっているのが確認できます。

multicol.sty の \boxmaxdepth\maxdepth 追加の
意図がまだわかっていないので、plcore の対症療法がよい
のか multicol.sty の修正がよいのか不明ではあります。

# なお、multicol.sty の変更の影響は
# LuaTeX-ja のトンボにも及んでいます。
# \documentclass[tombo]{ltjarticle} etc.
aminophen への返信

Re: multicolsとtombowのバグ

- 本田 知亮 の投稿
検証ありがとうございます

手元が古い(TeXLive2012相当)ですが,
fancy(fancyのバージョンもあるかも,ver3.2です)が
影響してるかもしれません.
multicol v1.7aでもフッタがずれてるように見えます.
fancyなしだとずれないようです.

本田 知亮 への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
私のところも fancyhdr.sty は
% fancyhdr.sty version 3.2
です。(March 22, 2005)
multicol.sty は v1.8i (TL2014) と v1.8n (TL2015) で試しましたが、
山本さんの報告と同じで v1.8i だとずれなくて v1.8n だとずれます。
また、\pagestyle{fancy} なしだとずれないのはおっしゃる通りです。
本田 知亮 への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
fancyhdr の件について texhax に流したところ、
これは fancyhdr のバグなのではという見解がきました。
http://tug.org/pipermail/texhax/2016-March/022263.html
fancyhdr のフッタに対する対症療法としては
\usepackage{etoolbox}
\makeatletter
\appto\fancy@reset{\boxmaxdepth\maxdimen}
\makeatother
が有効のようです。

> It sets the footer in a \vbox and simply
> assumes that \boxmaxdepth is large enough.
現状の「\boxmaxdepth が十分大きいことを前提とした
コード」はあまり良くない気がしましたので、plcore の
トンボに関しては本田さんの対症療法を適用しておこうと
思います。fancyhdr については別途バグレポートして
おこうと考えています。

なお、LuaTeX-ja のトンボについても全く同じ問題が起きて
いますので、同じ対症療法を加えていただくことになると
思います。
aminophen への返信

Re: multicolsとtombowのバグ

- 本田 知亮 の投稿
ありがとうございます.

なにはともあれ,ひとまず
とても怖い状況が解消されそうでよかったです.

ところで,前も話題になってた気がしますが,
いまpLaTeXそのもののメンテとか
更新履歴ってどうなってるんでしょう.
本田 知亮 への返信

Re: multicolsとtombowのバグ

- KUROKI Yusuke の投稿
KADOKAWA さんの動きについては存じ上げませんが,CTANやTeX Liveについては,
https://github.com/texjporg/ptex-texmf/issues
での活動成果をアップロードしていく予定になっています.

(ということでいいですよね?>関係者の皆さま)
KUROKI Yusuke への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
すみません、返事が遅くなりました。

> (ということでいいですよね?>関係者の皆さま)
私もそのような認識です。

> 前も話題になってた気がしますが,
というのは forum:1783 のことだと思いますが、
この件も既に github のほうではアップデートしてあります。
aminophen への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
「multicol を使うと fancyhdr のフッターが上に持ち上がる」ですが
LaTeX svn repository の開発版 multicol.sty v1.8p でこの問題が
解消されました。(添付ファイルの差分参照)
「plcore のトンボが縮む」の件も、同時に解消したようです。

先日の texhax への報告
http://tug.org/pipermail/texhax/2016-March/022262.html
が効いたのかどうかはわかりませんが良かったです。
ご協力いただいた皆様、ありがとうございました。

# plcore.dtx と lltjcore.sty に加えた対症療法は新しい multicol が
# リリースされ次第不要になるのですが、副作用はないはずなので
# 外さなくてもよいですかね。
aminophen への返信

Re: multicolsとtombowのバグ

- aminophen の投稿
> texhax への報告
どうやら SX でどなたかが出した報告が効いたようです。
http://tex.stackexchange.com/questions/302532/unbalanced-multicolumn-environment-wrapping-footer-results-in-footer-moving
aminophen への返信

Re: multicolsとtombowのバグ

- 奥村 晴彦 の投稿
皆様ありがとうございます。TeX Live 2015最終版には間に合わなかったですがおかげで助かります
(まだMoral obligation付いてるんだ)
奥村 晴彦 への返信

Re: multicolsとtombowのバグ

- 本田 知亮 の投稿
ちょっと「春」の「闘」に巻き込まれているんですが,
texhaxとかgithubの話し合いも含めて
やっと読み終わりました.
情報ありがとうございます>黒木さん,アセトアミノフェンさん
#理解はできてないのはお約束

まだMittelebachさんの1.8pは見てないですが,
これで一安心できます.
2015に間に合わなかったのが残念・・・