标题内的案例给出错误:!\caption@ydblarg 的参数有一个额外的 }

标题内的案例给出错误:!\caption@ydblarg 的参数有一个额外的 }

如果我的标题中有cases,编译总是会出现错误

Argument of \caption@ydblarg has an extra }.

我有以下简单的代码。我尝试了各种解决方案,例如singlelinecheck=false下面的选项或,但都\protect不起作用cases

\documentclass[11pt, a4paper]{article}
\usepackage[singlelinecheck=false]{caption}
\usepackage{mathtools}
\usepackage{amsmath}

\begin{document}

\begin{figure}[h]
\includegraphics{some-image}
\caption{
  Bla bla notations; additionally,
  $
  \theta(i)= 
  \begin{cases}
      \alpha_i, & i\in A \\
      \beta_i,  & i\in B  
   \end{cases}
   $
   }
\label{fig}
\end{figure}

\end{document}

答案1

虽然你可以使用\protect这不是真正正确的解决方案,在移动参数错误中出现脆弱命令的原因是文本正在被移动(到图形列表)并且(几乎可以肯定)你不希望在该列表中显示多行,因此使用

  \caption[something short]{a long thing with cases}

那么完整版本就不需要了\protect,它将出现在图中,而简短版本将出现在文档开头生成的列表中,如果你使用

\listoffigures

相关内容