使用 TikZ 指向逐字行

使用 TikZ 指向逐字行

我正在尝试使用 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} 

在此处输入图片描述

相关内容