Помещение матрицы внутрь заголовка дает \caption has extra }

Помещение матрицы внутрь заголовка дает \caption has extra }

Я пытаюсь вставить матрицу в подпись к изображению.

введите описание изображения здесь

Скомпилированный 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}

Кто-нибудь также знает, чтоydblargявляется?

решение1

\begin{matrix}и \end{matrix}являются хрупкими командами, которые не выдерживают процесса записи, связанного с \caption— содержимое записывается в файл, а затем .auxв файл с помощью ..lof\@writefile

Чтобы предотвратить такую ​​хрупкость, команды \begin{matrix}и \end{matrix}должны быть защищены с помощью \protect, т.е. \protect\begin{matrix}и \protect\end{matrix}.

Если защита не активирована, \captionпреждевременно обнаруживается , }который не является закрывающей скобкой его обязательного аргумента.

Лучшим способом будет применение необязательного аргумента \captionи запрет записи математического содержимого в файл .auxи .lof, т. е. использование стиля shortи long 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} 

введите описание изображения здесь

Связанный контент