Estou tentando inserir uma matriz dentro da legenda de uma imagem.
O pdf compilado exibe a imagem, mas apresenta um erro que diz:
\caption@{indecifrável} tem um } extra
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 .aux
arquivo e no .lof
arquivo 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, \caption
encontra prematuramente um }
que não é o colchete final de seu argumento obrigatório.
A melhor maneira é aplicar o argumento opcional de \caption
e evitar a gravação de conteúdo matemático no arquivo .aux
e .lof
, ou seja, usar o estilo short
e long caption
.
Entretanto, se conteúdo frágil for escrito no short
argumento 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}
Com um gato :-P
Responder2
Adicione \protect
ao 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}