为什么我无法删除“\caption[]{afsda\footnote{123}}”中的 []?

为什么我无法删除“\caption[]{afsda\footnote{123}}”中的 []?

我寻找一种在标题中插入脚注的方法,并且我这样做了:

\documentclass{article}
\usepackage{threeparttable}
\usepackage{graphicx}
\begin{document}

 
 
  \begin{figure}[h]
  \begin{minipage}{0.5\textwidth}
  \centering
    \includegraphics[]{first.jpg}
        \caption[]{afsda\footnote{123}}
        \label{fig:fasdfa}
  \end{minipage}
\end{figure}         

\end{document}

一切正常。但是当我删除[]中的时\caption[]{afsda\footnote{123}},Texwork 显示错误:


LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
Overfull \hbox (23.23076pt too wide) in paragraph at lines 11--12
 [][]

我总是使用\caption{},但这次我不能。

答案1

您收到以下错误

\caption{afsda\footnote{123}}

因为\footnote是一个脆弱的命令。但在这种情况下添加\protect并不是很有用。

\documentclass{article}

\setlength{\textheight}{6cm} % just to produce a smaller picture

\begin{document}

\listoffigures

\section{Test}

text

\begin{figure}[htp]
\centering

\fbox{\LARGE Image}

\caption{Caption text\protect\footnote{Footnote text}}

\end{figure}

\end{document}

在此处输入图片描述

你能看出哪里出了问题吗?是的,你从\listoffigures但中得到了一个脚注。不是来自figure

如果你变成

\documentclass{article}

\setlength{\textheight}{6cm} % just to produce a smaller picture

\begin{document}

\listoffigures

\section{Test}

text

\begin{figure}[htp]
\centering

\fbox{\LARGE Image}

\caption[Caption text]{Caption text\footnote{Footnote text}}

\end{figure}

\end{document}

你得到脚注。

在此处输入图片描述

为什么?因为 afigure是浮点数,而 a\footnote是另一种浮点数,但浮点数中不允许有浮点数。脚注就消失了。

好的,LaTeX 可能应该对这种消失发出警告,但它没有。

你可能会诉诸

\begin{figure}[htp]
\centering

\fbox{\LARGE Image}

\caption[Caption text]{Caption text\footnotemark}

\end{figure}
\footnotetext{Footnote text}

但不能保证脚注文本与排版在同一页figure。而且,仅指定[h]并不能解决问题。

您需要可选参数,\caption因为您当然不希望在图片列表中出现脚注标记。但即使这样做有效,读者也会对脚注所指的内容感到困惑。

相关内容