正如我指出的相关问题,我想要一些指向源代码列表部分的箭头。
我知道使用包可以实现这一点listings
,但是使用 可以实现吗minted
?也就是说,有没有办法在 minted 显示的代码中的特定位置插入标记?
答案1
是的,它似乎有效,您只需要指定一个转义字符(?
此处)即可minted
插入\tikzmark
。
\documentclass{article}
\usepackage{minted}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{minted}[escapeinside=??]{py}
def f(x):
y = x?\tikzmark{here}?2
return y
\end{minted}
See this bit:
\begin{tikzpicture}[remember picture]
\draw[overlay, ->, line width=5pt, red] (0,0) -- (pic cs:here);
\end{tikzpicture}
\end{document}
答案2
只是为了好玩,以防别人偶然发现这一点:这个想法也可以与独立包结合起来,只需稍加调整:
\documentclass[multi=apage,varwidth=8cm]{standalone}
\usepackage{minted}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newenvironment{apage}[0]{}{}
\begin{document}
\begin{apage}
\begin{tabular}{p{0.3\textwidth}p{0.3\textwidth}}
\begin{minted}[escapeinside=??]{py}
def f(x):
y = x?\tikzmark{here1}?2
return y
\end{minted}
&
\begin{minted}[escapeinside=??]{py}
def f(x):
y = x?\tikzmark{here2}?2
return y
\end{minted}
\end{tabular}
\begin{tikzpicture}[remember picture]
\draw[overlay, ->, line width=5pt, red]
(pic cs:here1) -- (pic cs:here2);
\end{tikzpicture}
\end{apage}
\end{document}