![小页面中的脚注没有脚注分隔符且缩进量增加](https://linux22.com/image/299258/%E5%B0%8F%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9A%84%E8%84%9A%E6%B3%A8%E6%B2%A1%E6%9C%89%E8%84%9A%E6%B3%A8%E5%88%86%E9%9A%94%E7%AC%A6%E4%B8%94%E7%BC%A9%E8%BF%9B%E9%87%8F%E5%A2%9E%E5%8A%A0.png)
如何取消仅限小页面?我还想只增加小页面中脚注的缩进量。例如,这在表格之后很方便。
理想情况下,我会使用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}