为什么\ifnum\c@mpfootnote
在表格中不起作用?我不应该得到脚注规则吗?我感到很困惑!
\documentclass{article}
\begin{document}
\makeatletter
\long\def\@mpfootnotetext#1{%
\ifnum\c@mpfootnote=\@ne\let\footnoterule\relax\fi
\global\setbox\@mpfootins\vbox{%
\unvbox\@mpfootins
\reset@font\footnotesize
\hsize\columnwidth
\@parboxrestore
\protected@edef\@currentlabel
{\csname p@mpfootnote\endcsname\@thefnmark}%
\color@begingroup
\@makefntext{%
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
\color@endgroup}}
\makeatother
\noindent
\begin{minipage}{\textwidth}
\begin{tabular}{lp{.8\textwidth}}
1&2\footnote{1}\\
1&2\footnote{2}
\end{tabular}
\end{minipage}
\end{document}
一个更简化的例子:
\documentclass{article}
\begin{document}
\makeatletter
\long\def\@mpfootnotetext#1{%
\ifnum\c@mpfootnote=\@ne\let\footnoterule\relax\fi
\global\setbox\@mpfootins\vbox{%
\unvbox\@mpfootins
\reset@font\footnotesize
\hsize\columnwidth
\@parboxrestore
\protected@edef\@currentlabel
{\csname p@mpfootnote\endcsname\@thefnmark}%
\color@begingroup
\@makefntext{%
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
\color@endgroup}}
\makeatother
\noindent
\begin{minipage}{\textwidth}
\hbox{\footnote{1}}
\end{minipage}
\end{document}
答案1
我不确定代码的全部意图是什么,但每个表格单元格都是一个本地组,因此您的设置\footnoterule
在使用之前就会丢失。
\global\let\footnoterule\relax
使规则得以实施。