\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}
我正在使用脚杂包用于在表格中插入脚注。它按我的意愿在表格下显示脚注,但按照 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}