我正在尝试使用 Beamer 中的 TikZ 来指向一行代码。以下是我目前所得到的:
\documentclass{beamer}
\usepackage{tikz}
\usepackage{fancyvrb}
\begin{document}
\begin{frame}[fragile,t]
\frametitle{test}
\begin{Verbatim}
example code
lines
\end{Verbatim}
\tikz \node [circle,fill=black] {};
\begin{Verbatim}
here
\end{Verbatim}
\end{frame}
\end{document}
但是,节点出现在新行上。我想将其放在“行”的右侧,以便我可以使用 TikZ 叠加层将箭头指向它并在右侧放置一些解释性行。
我见过这样的例子,但它们要么使用数学,要么使用纯文本。我该如何使用 Verbatim 做到这一点?
答案1
您需要使用commandchars
。 在我的示例中|
替换\
。§
并!
用于替换 accolades{
和}
\documentclass{beamer}
\usepackage{tikz}
\usepackage{fancyvrb}
\begin{document}
\def\firstnode{\tikz[remember picture] \node[circle,fill=blue] (n1) {};}
\def\secondnode{\tikz[remember picture] \node[circle,fill=red] (n2) {};}
\begin{frame}[fragile,t]
\frametitle{test}
\begin{Verbatim} [commandchars=\|\§\! ]
example code
lines here |firstnode
\end{Verbatim}
\begin{Verbatim}[commandchars=\|\§\! ]
|secondnode Explanation
\end{Verbatim}
\begin{tikzpicture}[remember picture,overlay]
\path[->,line width=1pt,dashed,red!40,>=latex] (n1) edge [bend left] (n2);
\end{tikzpicture}
\end{frame}
\end{document}