Colocar uma matriz dentro da legenda dá que \caption tem um extra}

Colocar uma matriz dentro da legenda dá que \caption tem um extra}

Estou tentando inserir uma matriz dentro da legenda de uma imagem.

insira a descrição da imagem aqui

O pdf compilado exibe a imagem, mas apresenta um erro que diz:

\caption@{indecifrável} tem um } extra

insira a descrição da imagem aqui

Alguém pode me indicar onde eu poderia ter inserido um extra }? Porque eu não vejo isso em lugar nenhum!

\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}

Alguém também sabe o queydblargé?

Responder1

\begin{matrix}e \end{matrix}são comandos frágeis que não sobrevivem ao processo de gravação ao qual estão conectados \caption- o conteúdo é gravado no .auxarquivo e no .lofarquivo posteriormente com \@writefile.

Para evitar a fragilidade aí, os comandos \begin{matrix}e \end{matrix}devem ser protegidos com \protect, ou seja, \protect\begin{matrix}e \protect\end{matrix}.

Se a proteção não for ativada, \captionencontra prematuramente um }que não é o colchete final de seu argumento obrigatório.

A melhor maneira é aplicar o argumento opcional de \captione evitar a gravação de conteúdo matemático no arquivo .auxe .lof, ou seja, usar o estilo shorte long caption.

Entretanto, se conteúdo frágil for escrito no shortargumento da legenda, a proteção deverá ser habilitada novamente.

Como alternativa, use comandos robustos.

\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}

insira a descrição da imagem aqui

Com um gato :-P

insira a descrição da imagem aqui

Responder2

Adicione \protectao entrar e sair do ambiente:

\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} 

insira a descrição da imagem aqui

informação relacionada