multicolsでは仕様上、multicols環境の外に1段組で脚注が表示されてしまいます。
しかしそれでは統一感がなくなる場合があるので、カラム内部に脚注がまとめて出るようにしたいです。
ひとまず、
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{multicol-footnote-imp}[2025/10/23, Version 1.0.1---under development]
% 内部用ストレージ
\newcommand\col@fn@list{}
\newcommand\col@fn@list@meta{}
\newcommand\col@fn@clear{%
\global\let\col@fn@list\@empty
\global\let\col@fn@list@meta\@empty
}
% カラム内脚注登録(マーク+蓄積)
\newcommand{\colfootnote}[1]{%
\refstepcounter{footnote}%
\textsuperscript{\thefootnote}%
\protected@xdef\col@fn@list{%
\unexpanded\expandafter{\col@fn@list}%
\noexpand\noindent
\noexpand\textsuperscript{\thefootnote}\space%
\unexpanded{#1}\noexpand\par
}%
}
% カラム末脚注出力
\newcommand{\printcolfootnotes}{%
\ifx\col@fn@list\@empty
\else
\par\bigskip
\footnoterule
\vspace{.5\baselineskip}
{\footnotesize
\parskip=0pt \parindent=1em
\col@fn@list
}%
\global\let\col@fn@list\@empty
\global\let\col@fn@list@meta\@empty
\fi
}
% multicols 環境用フック
\AtBeginEnvironment{multicols}{%
% 元の footnote を保持
\let\col@orig@footnote\footnote
\col@fn@clear
\renewcommand{\footnote}{\colfootnote}%
\pretocmd{\columnbreak}{\printcolfootnotes}{}{}%
% multicols 環境内で \mult@column@out が定義された後に一度だけ上書きする
\def\col@safe@hook@autobreak{%
\@ifundefined{mult@column@out}{}{%
\let\col@orig@mult@column@out\mult@column@out
\renewcommand{\mult@column@out}{%
\printcolfootnotes
\col@orig@mult@column@out
}%
}%
}%
% 最初の段落実行時にフックを差し込む
\everypar{%
\col@safe@hook@autobreak
\global\let\col@safe@hook@autobreak\relax
\everypar{}%
}%
}
\AtEndEnvironment{multicols}{%
\printcolfootnotes
\let\footnote\col@orig@footnote
\@ifundefined{col@orig@mult@column@out}{}{%
\let\mult@column@out\col@orig@mult@column@out
}%
\col@fn@clear
}
\endinput
こんな感じで組んでみたのですが、問題点が以下2点です。
1、multicolにおける自動改段に対してfootnoteの出力位置が呼応してくれない。
2、脚注が通常の段落と同じような扱いを受けるようにしてしまっているため、脚注が多すぎる場合次のページ上部に溢れてしまう。
これを解消する手段はありますでしょうか。基本はjlreqで使う想定ですが、できればltjsでも動いてくれる設計にしていきたいです。
                        1、multicolにおける自動改段に対してfootnoteの出力位置が呼応してくれない。
2、脚注が通常の段落と同じような扱いを受けるようにしてしまっているため、脚注が多すぎる場合次のページ上部に溢れてしまう。
これを解消する手段はありますでしょうか。基本はjlreqで使う想定ですが、できればltjsでも動いてくれる設計にしていきたいです。