Wenn man eine Matrix in die Beschriftung einfügt, erhält man \caption has an extra }

Wenn man eine Matrix in die Beschriftung einfügt, erhält man \caption has an extra }

Ich versuche, eine Matrix in die Beschriftung eines Bildes einzufügen.

Bildbeschreibung hier eingeben

Das kompilierte PDF zeigt das Bild an, gibt jedoch einen Fehler aus, der besagt:

\caption@{indecipherable} hat ein zusätzliches }

Bildbeschreibung hier eingeben

Kann mir bitte jemand zeigen, wo ich möglicherweise ein zusätzliches eingefügt habe }? Ich kann es nämlich nirgends sehen!

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

Weiß jemand auch wasAbonnierenIst?

Antwort1

\begin{matrix}und \end{matrix}sind fragile Befehle, die den Schreibvorgang nicht überstehen, wenn sie mit verbunden sind \caption-- der Inhalt wird in die .auxDatei geschrieben und .lofspäter mit wieder in die Datei zurückgeschrieben \@writefile.

Um dort die Fragilität zu verhindern, müssen die Befehle \begin{matrix}und mit , also und geschützt werden .\end{matrix}\protect\protect\begin{matrix}\protect\end{matrix}

Wenn der Schutz nicht aktiviert ist, \captiontritt vorzeitig ein Fehler auf }, der nicht die schließende Klammer des obligatorischen Arguments ist.

Besser ist es, das optionale Argument von anzuwenden \captionund das Schreiben von mathematischen Inhalten in die .auxund .lofDatei zu verhindern, d. h. den shortund den long captionStil zu verwenden.

Wenn jedoch fragile Inhalte in das Caption-Argument geschrieben werden sollen short, muss der Schutz erneut aktiviert werden.

Alternativ können Sie robuste Befehle verwenden.

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

Bildbeschreibung hier eingeben

Mit einer Katze :-P

Bildbeschreibung hier eingeben

Antwort2

Ergänzung \protectzum Betreten und Verlassen der Umgebung:

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

Bildbeschreibung hier eingeben

verwandte Informationen