Ticket #37004

縦組の二段組脚注

Open Date: 2017-02-19 08:07 Last Update: 2017-02-21 16:59

Reporter:
Owner:
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

縦書きの二段組で脚注が両方のカラムに出るとき、かつ下カラムが最後まで埋まっていないとき、その \footnotrule の線の位置が上カラムと揃わないようです。

  1. \documentclass[twocolumn]{ltjtarticle}
  2. \usepackage{bxjalipsum}
  3. %\usepackage{ftnright}
  4. \begin{document}
  5. \jalipsum[2]{wagahai}\footnote{脚注です。}\jalipsum[1]{wagahai}\par
  6. \jalipsum[2-3]{wagahai}\footnote{脚注です。}\jalipsum[1]{wagahai}\par
  7. %\jalipsum[2-3]{wagahai}% ここを有効にすると下カラムが埋まって正常に揃う
  8. \end{document}

ちなみに ftnright パッケージを読み込むと脚注番号が寝ます。

Ticket History (3/12 Histories)

2017-02-19 08:07 Updated by: aminophen
  • New Ticket "縦組の二段組脚注" created
2017-02-19 09:23 Updated by: h7k
  • Owner Update from (None) to h7k
Comment

確認しました.

ちなみに ftnright パッケージを読み込むと脚注番号が寝ます。

こっちは ftnright パッケージが \@makefntext を勝手に上書きするのが原因のようです.次のコードをクラス内に仕込む(filehook パッケージの機能,LuaTeX-ja は filehook パッケージを自動読み込み)と直ります.

%<*tate>
\AtBeginOfPackageFile*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext}
\AtEndOfPackageFile*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext}
%</tate>
しかし,縦組クラスにだけこのコードを自動実行させるのは一貫性がなく,

  • ftnright パッケージが \@makefntext を上書きする事自体はそのまま許容し,LuaTeX-ja のドキュメントに注意を明記する
  • 「LuaTeX-ja(pLaTeX も??)では,縦横問わず ftnright パッケージによる \@makefntext の上書きは無効化される」ことを仕様として宣言する

のどちらかにするべきだと思います.

2017-02-19 09:47 Updated by: aminophen
Comment

ちなみに ftnright パッケージを読み込むと脚注番号が寝ます。

こっちは ftnright パッケージが \@makefntext を勝手に上書きするのが原因のようです.

そういえばそうでした… pLaTeX のほうは LuaTeX-ja とちがって縦組の ftnright が ! Incompatible direction list can't be unboxed. エラーが出てしまうので使えず、forum:1896 で作った pxftnright のほうで対処していました。(しかもそのついでに ftnright による @makefntext の上書きを無効化するように私が書いたらしいです。)

2017-02-19 11:20 Updated by: h7k
Comment

\footnotrule の線の位置が上カラムと揃わない

LuaTeX-ja では,(欧文中にちょっと日本語を組む目的で読み込まれた場合に備えて) \@makecol には最小限の(縦組ができる程度の)変更しか施していませんが, ltjclasses では何も考えずに \raggedbottom を実行していることが原因です.さすがに気持ち悪いので何とかします.

2017-02-19 13:02 Updated by: aminophen
Comment

ltjclasses では何も考えずに \raggedbottom を実行している

原因納得しました。

texjporg/platex#32 でも調べたはずなのに結びついていませんでした…

実装は fnpos パッケージに似た感じにすると、パッチがきれいになると思います。(fnpos はかなり古いパッケージで縦組の \hskip\z@ が足りないとか、W32TeX には fnpos が入っていないとかありますが。)

  1. \makeFNmid % LaTeX カーネル(raggedbottom のとき脚注は成り行き)
  2. \makeFNabove % LaTeX カーネル(脚注→ボトムフロート)
  3. \makeFNbottom % pLaTeX カーネル(raggedbottom でも脚注を常に底に付ける)
  4. \makeFNbelow % pLaTeX カーネル(ボトムフロート→脚注)

という 4 つの命令に従うと

  • LaTeX カーネル = \makeFNmid + \makeFNabove
  • pLaTeX カーネル = \makeFNbottom + \makeFNbelow
  • stfloats のデフォルト = カーネルに準ずる
  • stfloats の \fnbelowfloat = \makeFNmid + \makeFNbelow
  • LuaTeX-ja = \makeFNbottom + \makeFNabove (← という理解であっていますでしょうか?)

のようにすべて定式化できるようです。

2017-02-19 13:12 Updated by: aminophen
Comment

と思ったら git pull したら治っていました。ありがとうございます。

2017-02-19 13:28 Updated by: h7k
Comment

texjporg/platex#32

完全に見落としていました…….今から fnpos パッケージを見ます. 現在の LuaTeX-ja の実装 (75594bb) では

  • \makeFNbottom\makeFNmid\iffnfixbottom で切り替える
  • \makeFNabove\makeFNbelow は stfloats パッケージで切り替える

という処理をしています.

* LuaTeX-ja = \makeFNbottom + \makeFNabove (← という理解であっていますでしょうか?)

  • デフォルトでは LaTeX カーネルに準ずる (\makeFNmid + \makeFNabove),
  • 現行の和文クラス ltjclasess, ltjsclasses では \makeFNbottom + \makeFNabove ですが,「互換」と言っているので \makeFNbottom + \makeFNbelow にした方がいいかもしれません.
2017-02-19 14:41 Updated by: aminophen
Comment

* 現行の和文クラス ltjclasess, ltjsclasses では \makeFNbottom + \makeFNabove ですが,「互換」と言っているので \makeFNbottom + \makeFNbelow にした方がいいかもしれません.

たしかに「互換」といわれると、そのクラスに関しては \makeFNbottom + \makeFNbelow を期待したくなります。

そうすると stfloats パッケージの \fnbelowfloat と \fnunderfloat しかないという謎仕様も直す必要があるかもしれません。おそらく後者は本来 \fnabovefloat と命名すべきで、pLaTeX ではこの点において既に stfloats が破綻していますから、私はこんな感じで対処していました。

2017-02-19 21:56 Updated by: h7k
  • Ticket Close date is changed to 2017-02-19 21:56
  • Status Update from Open to Closed
Comment

20170219.0 を出しましたので,完了とします. ltjclasses, ltjsclasses は \makeFNbottom + \makeFNbelow としました.

2017-02-19 22:19 Updated by: aminophen
  • Status Update from Closed to Open
Comment

openleft オプションの ltjclasses への追加を含む sync がうまくいっていなそうです。

  • \pltx@clearto...page に \iftdir と \ifydir があるのはまずい
  • titlepage のページ番号のリセット云々と、右カラムがタイトルより上に云々の二箇所、docstrip ガードが変になっています。

ついでにサイズオプションファイルにある ftnright 対策コードは重複するので除去してよさそうに見えます。

2017-02-20 09:23 Updated by: h7k
Comment

openleft オプションの ltjclasses への追加を含む sync

すみません,23d1df4 で直しました. CTAN にあまり短い間隔で上げるとミラーへの反映で面倒なことになるので,1〜数日アップロードは待ちます.

2017-02-21 16:59 Updated by: h7k
  • Resolution Update from None to Fixed
  • Ticket Close date is changed to 2017-02-21 16:59
  • Status Update from Open to Closed
Comment

20170221.0 を出したので完了とします.

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login