如何删除表格下面的脚注分隔符

如何删除表格下面的脚注分隔符
\documentclass[a4paper,12pt]{book}

\usepackage{booktabs}
\usepackage[hang,flushmargin]{footmisc}

\begin{document}

\begin{table}[h]
\begin{minipage}{\linewidth}
\begin{tabular}{@{}lrr@{}}
\toprule
A    & B     & C     \\ \midrule
Text & 123   & 123   \\
Text & 123\footnote{An interesting footnote.} & 123 \\
Text & 123   & 123   \\ \midrule
Text & 12345 & 12345 \\ \bottomrule
\end{tabular}
\end{minipage}
\end{table}

\end{document}

MWE 的结果。

我正在使用脚杂包用于在表格中插入脚注。它按我的意愿在表格下显示脚注,但按照 booktabs 样式底部规则,通常的脚注分隔符感觉是多余的。

有没有办法在这些情况下禁用脚注分隔符,同时保持文档其余部分的完整性?

我知道\usepackage[norule]{footmisc}把它们全部关闭,但我只需要把它们从桌子下面移走。

答案1

\documentclass[a4paper,12pt]{book}

\usepackage{booktabs}
\usepackage[hang,flushmargin]{footmisc}

\begin{document}

\begin{table}[h]
\begin{minipage}{\linewidth}
\renewcommand\footnoterule{}
\begin{tabular}{@{}lrr@{}}
\toprule
A    & B     & C     \\ \midrule
Text & 123   & 123   \\
Text & 123\footnote{An interesting footnote.} & 123 \\
Text & 123   & 123   \\ \midrule
Text & 12345 & 12345 \\ \bottomrule
\end{tabular}
\end{minipage}
\end{table}

test\footnote{An interesting footnote.}
\end{document}

答案2

更自动化的解决方案,不需要在每个适用的 中添加代码minipage

\InFloat测试借鉴自我如何检测我是处于浮动环境之内还是之外?

仅当命令位于浮动环境内时,才会\footnoterule在结束后更新命令。tabular

\documentclass[a4paper,12pt]{book}

\usepackage{booktabs}
\usepackage[hang,flushmargin]{footmisc}

\makeatletter
\newcommand\InFloat[2]{\@ifundefined{@captype}{#2}{#1}}
\makeatother
\usepackage{etoolbox}
\AfterEndEnvironment{tabular}{\InFloat{\renewcommand\footnoterule{}}{}}

\begin{document}

\begin{table}[h]
\begin{minipage}{\linewidth}
\begin{tabular}{@{}lrr@{}}
\toprule
A    & B     & C     \\ \midrule
Text & 123   & 123   \\
Text & 123\footnote{An interesting footnote.} & 123 \\
Text & 123   & 123   \\ \midrule
Text & 12345 & 12345 \\ \bottomrule
\end{tabular}
\end{minipage}
\end{table}

Test.\footnote{An interesting footnote.}

\bigskip

\begin{minipage}{\linewidth}
Test.\footnote{An interesting footnote.}
\end{minipage}
\end{document}

在此处输入图片描述

答案3

另一个选择是让\endminipage重新定义规则。这当然会影响所有小页面,但无论如何我认为这是典型的用例。

\documentclass[a4paper,12pt]{book}

\usepackage{booktabs}
\usepackage[hang,flushmargin]{footmisc}

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

\begin{document}

\begin{table}[h]
\begin{minipage}{\linewidth}
\begin{tabular}{@{}lrr@{}}
\toprule
A    & B     & C     \\ \midrule
Text & 123   & 123   \\
Text & 123\footnote{An interesting footnote.} & 123 \\
Text & 123   & 123   \\ \midrule
Text & 12345 & 12345 \\ \bottomrule
\end{tabular}
\end{minipage}
\end{table}

Test.\footnote{An interesting footnote.}

\bigskip

\begin{minipage}{\linewidth}
Test.\footnote{An interesting footnote.}
\end{minipage}
\end{document}

相关内容