小页面中的脚注没有脚注分隔符且缩进量增加

小页面中的脚注没有脚注分隔符且缩进量增加

如何取消仅限小页面?我还想​​只增加小页面中脚注的缩进量。例如,这在表格之后很方便。

理想情况下,我会使用footmisc带有该norule选项的包,但这会影响整个文档,而不仅仅是小页面环境。

答案1

取消分隔符的一个解决方案是使用footmisc带有splitrule选项的包,并重新定义\mpfootnoterule\splitfootnoterule命令,如下所示:

\usepackage[splitrule]{footmisc}
\renewcommand{\mpfootnoterule}{}
\let\splitfootnoterule\footnoterule

但除了是一种相当丑陋的解决方法之外,它并不能解决缩进的问题。

答案2

在 中latex.ltx,当有脚注时,\footnoterule会在环境末尾调用。因此,我首先重新定义命令以省略。minipage\endminipage\footnoterule

在 中article.cls,缩进由命令产生\@makefntext。主文本和小页面脚注都调用此相同命令。因此我们必须重新定义命令,\mpfootnotetext以便在调用它时,它会重新定义\@makefntext

这可能有点危险,但似乎有效。我欢迎更有知识的人提供反馈。

\documentclass{article}
\usepackage{lipsum}
\newlength{\mpparindent}
\setlength{\mpparindent}{0.5in}

\let\oldendminipage\endminipage
\def\endminipage{\let\footnoterule\relax\oldendminipage}

\makeatletter
\let\@oldmpfootnotetext\@mpfootnotetext
\def\@mpfootnotetext#1{%
    \renewcommand\@makefntext[1]{%
        \hspace*{\mpparindent}
        \parindent\mpparindent
        \noindent
        \hb@[email protected]{\hss\@makefnmark}#1}
    \@oldmpfootnotetext{#1}}
\makeatother

\begin{document}
\lipsum[1]
Table~\ref{table} shows a palindrome.\footnote{You can use it to make a magic square.}

\begin{table}
\caption{Sator arepo}
\label{table}
\begin{minipage}{\textwidth}
Sator arepo tenet opera rotas.\footnote{This is a palindrome.}
\end{minipage}
\end{table}

\lipsum[2]
\end{document}

在此处输入图片描述

相关内容