在 caption 里面放一个矩阵使得 \caption 有一个额外的 }

在 caption 里面放一个矩阵使得 \caption 有一个额外的 }

我正在尝试在图像的标题内插入一个矩阵。

在此处输入图片描述

编译后的pdf显示了图片,但是给出了错误提示:

\caption@{indecipherable} 有一个额外的 }

在此处输入图片描述

有人能告诉我我可能在哪里插入了额外的内容吗}?因为我没看到任何地方有这个内容!

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{thmtools}       
\usepackage{graphicx}
\setlength\parindent{0pt}
\usepackage[linesnumbered,ruled]{algorithm2e}
\usepackage{hyperref}
\usepackage{caption} 
\usepackage{cleveref}

\begin{document}
\section{Introduction}
\begin{figure}[ht]
    \begin{center}
        \includegraphics{jpg-to-pdf.pdf}
    \end{center}
    \caption{$x^\star =\begin{bmatrix} \alpha, \beta, \gamma \end{bmatrix}$}
    \label{fig:just_picture_of_cute_cat}
\end{figure}
\end{document}

有谁也知道伊德布拉格是?

答案1

\begin{matrix}\end{matrix}是脆弱的命令,它们在写入过程中无法存活\caption——内容先写入文件,然后再.aux写入文件。.lof\@writefile

为了防止那里的脆弱性,命令\begin{matrix}\end{matrix}必须用 进行保护\protect,即\protect\begin{matrix}\protect\end{matrix}

如果未激活保护,则会\caption过早遇到}不是其强制参数的结束括号的情况。

更好的方法是应用的可选参数\caption和阻止将数学内容写入.aux.lof文件,即使用shortlong caption样式。

但是,如果要在标题参数中写入易碎内容short,则必须再次启用保护。

或者使用强大的命令。

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{thmtools}       
\usepackage{graphicx}
\setlength\parindent{0pt}
\usepackage[linesnumbered,ruled]{algorithm2e}
\usepackage{hyperref}
\usepackage{caption} 
\usepackage{cleveref}

\begin{document}
\listoffigures
\section{Introduction}
\begin{figure}[ht]
  \centering

  \includegraphics{ente}
  \caption{$x^\star =\protect\begin{bmatrix} \alpha, \beta, \gamma \protect\end{bmatrix}$}
  \caption[Foo content]{$x^\star =\begin{bmatrix} \alpha, \beta, \gamma \end{bmatrix}$}
  \label{fig:just_picture_of_cute_cat}
\end{figure}
\end{document}

在此处输入图片描述

和一只猫在一起:-P

在此处输入图片描述

答案2

添加\protect进入和离开环境:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{graphicx}
\setlength\parindent{0pt}
\usepackage{caption}
\usepackage{hyperref}
\usepackage{cleveref}

\begin{document}

\begin{figure}[ht]
\centering
        \includegraphics[scale=0.5]{vent_cat}
    \caption{$x^\star =\protect\begin{bmatrix} \alpha, \beta, \gamma \protect\end{bmatrix}$}
    \label{fig:just_picture_of_cute_cat}
\end{figure}

\end{document} 

在此处输入图片描述

相关内容