Beamer 中的简单 tikz-cd

Beamer 中的简单 tikz-cd


在此处输入图片描述

由以下代码生成

\documentclass{amsart}
\usepackage{tikz-cd}


\begin{document}
\begin{tikzcd}
A\ar[rr, shift left=.4ex, "f"]
  &&
  B\ar[ll, shift left=.4ex, "g"],
\end{tikzcd}

\end{document}

然而,同样的代码不适用于 Beamer:

\documentclass{beamer}

\usepackage{tikz-cd}

\begin{document}

\begin{frame}

\begin{tikzcd}
A\ar[rr, shift left=.4ex, "f"]
  &&
  B\ar[ll, shift left=.4ex, "g"];
\end{tikzcd}

\end{frame}

\end{document}

错误信息如下

! Undefined control sequence.
<argument> \pgf@matrix@last@nextcell@options 
?
! Package pgf Error: Single ampersand used with wrong catcode.
...
l.56 I think the culprit is a tikzcd arrow in cell 1-1.
\errmessage ...currentrow -\tikzcd@currentcolumn }

我不确定如何让其与 beamer 一起工作。

提前致谢!

答案1

您只需添加[fragile]即可\begin{frame}防止包&中出现意外的影响tikz-cd

此外,简单的 TikZ 是一种简单的方法,[fragile]不需要任何东西。

在此处输入图片描述

\documentclass{beamer}
\usepackage{tikz,tikz-cd}
\begin{document}
\begin{frame}[fragile]
\begin{tikzcd}
A\ar[rr, shift left=.4ex, "f"]
&&
B\ar[ll, shift left=.4ex, "g"]
\end{tikzcd}

\begin{tikzpicture}
\path (0,0) node (A) {$A$} (2.5,0) node (B) {$B$};
\draw[->] (A.15) to node[above,scale=.75]{$f$} (B.165);
\draw[<-] (A.-15) to node[below,scale=.75]{$g$} (B.-165);
\end{tikzpicture}
\end{frame}
\end{document}

相关内容