由以下代码生成
\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}