我有以下 Latex 代码片段,出现错误
Argument of \caption@ydblarg has an extra }. ...I\\-I&0 \end{pmatrix}$. \end{minipage} }
\begin{figure}[h]
\centering
\begin{tikzpicture}[domain=2.5:5.4]
\draw[very thin,color=gray] (2.0,0.0) grid (5.9,3.9);
\draw[->] (2.0,0) -- (6.5,0) node[right] {$\mathbf{q}$};
\draw[->] (2.0,0.0) -- (2.0,4.2) node[above] {$\mathbf{p}$};
\draw[color=blue] plot (\x,{0.3+0.01*exp(\x)}) ;
\draw[color=orange] plot (\x,{0.7+0.015*exp(\x)}) ;
\filldraw (2.7,0.45) circle (2pt) node[align=left, below] {$(\mathbf{q}_0,\mathbf{p}_0)=\mathbf{x}_0$};
\filldraw (5.0,1.77) circle (2pt) node[align=right, below] {$(\mathbf{q}(h),\mathbf{p}(h))=\mathbf{x}(h)$};
\end{tikzpicture}
\caption{\leavevmode\\
\begin{minipage}{\linewidth}
The flow map $\varphi(\mathbf{x}_0,h)=\mathbf{x}(h)$ is a symplectic transformation, i.e.
$(\text{D}\varphi)^TJ\text{ D}\varphi=J=\begin{pmatrix}0&I\\-I&0 \end{pmatrix}$.
\end{minipage}
}
end{figure}
错误是由于 pmatrix 部分引起的。有人知道如何更改它吗?
答案1
如果要在“图 1”之后加换行符,请使用适当的方式,并配合包使用caption
。
该代码与最新的 TeX 发行版完美兼容,因此我猜你用的是一个过时的版本(2018 或更早版本)。
在这种情况下,使用\protect\begin{pmatrix}
和\protect\end{pmatrix}
。
这是一个更好的编码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{caption}
\captionsetup{labelsep=newline}
\begin{document}
\begin{figure}[htp]
\centering
\begin{tikzpicture}[domain=2.5:5.4]
\draw[very thin,color=gray] (2.0,0.0) grid (5.9,3.9);
\draw[->] (2.0,0) -- (6.5,0) node[right] {$\mathbf{q}$};
\draw[->] (2.0,0.0) -- (2.0,4.2) node[above] {$\mathbf{p}$};
\draw[color=blue] plot (\x,{0.3+0.01*exp(\x)}) ;
\draw[color=orange] plot (\x,{0.7+0.015*exp(\x)}) ;
\filldraw (2.7,0.45) circle (2pt) node[align=left,below]
{$(\mathbf{q}_0,\mathbf{p}_0)=\mathbf{x}_0$};
\filldraw (5.0,1.77) circle (2pt) node[align=right,below]
{$(\mathbf{q}(h),\mathbf{p}(h))=\mathbf{x}(h)$};
\end{tikzpicture}
\caption{The flow map $\varphi(\mathbf{x}_0,h)=\mathbf{x}(h)$ is a symplectic transformation,
i.e., $(\mathrm{D}\varphi)^TJ\,\mathrm{D}\varphi=J=\begin{pmatrix}0&I\\-I&0 \end{pmatrix}$.}
\end{figure}
\end{document}
如上所述,使用
\caption{The flow map $\varphi(\mathbf{x}_0,h)=\mathbf{x}(h)$ is a symplectic transformation,
i.e., $(\mathrm{D}\varphi)^TJ\,\mathrm{D}\varphi=J=\protect\begin{pmatrix}0&I\\-I&0 \protect\end{pmatrix}$.}
如果您无法更新您的 TeX 发行版。
如果没有\usepackage{caption}
和\captionsetup
线,你会得到