multicolsを使うとトンボの位置がずれるようです。どなたか原因を調べていただければ助かります。
\documentclass[a5paper,tombow]{jsarticle}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
ほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげほげ
\end{multicols}
\end{document}
実は…、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 専用のトンボパッケージを作ることも検討したほうがよいのかもしれません。
とりいそぎ、簡単なコメントのみです。
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 専用のトンボパッケージを作ることも検討したほうがよいのかもしれません。
とりいそぎ、簡単なコメントのみです。
この 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 の差分を添付します)
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 の差分を添付します)
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に影響を与えるために外側においてる感じですが,外側すぎるように見えます.
どうなんでしょうか.
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に影響を与えるために外側においてる感じですが,外側すぎるように見えます.
どうなんでしょうか.
> 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.
> 例えば,柱関係がページ分割とページ分割の間の処理ですよね
本田さん、ありがとうございます。
柱というはなしが出ていたので
%#!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.
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 のトンボについても全く同じ問題が起きて
いますので、同じ対症療法を加えていただくことになると
思います。
これは 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 のトンボについても全く同じ問題が起きて
いますので、同じ対症療法を加えていただくことになると
思います。
すみません、返事が遅くなりました。
> (ということでいいですよね?>関係者の皆さま)
私もそのような認識です。
> 前も話題になってた気がしますが,
というのは forum:1783 のことだと思いますが、
この件も既に github のほうではアップデートしてあります。
> (ということでいいですよね?>関係者の皆さま)
私もそのような認識です。
> 前も話題になってた気がしますが,
というのは forum:1783 のことだと思いますが、
この件も既に github のほうではアップデートしてあります。
「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 が
# リリースされ次第不要になるのですが、副作用はないはずなので
# 外さなくてもよいですかね。
LaTeX svn repository の開発版 multicol.sty v1.8p でこの問題が
解消されました。(添付ファイルの差分参照)
「plcore のトンボが縮む」の件も、同時に解消したようです。
先日の texhax への報告
http://tug.org/pipermail/texhax/2016-March/022262.html
が効いたのかどうかはわかりませんが良かったです。
ご協力いただいた皆様、ありがとうございました。
# plcore.dtx と lltjcore.sty に加えた対症療法は新しい multicol が
# リリースされ次第不要になるのですが、副作用はないはずなので
# 外さなくてもよいですかね。