可以在 minted 里面使用 tikzmark 吗?

可以在 minted 里面使用 tikzmark 吗?

正如我指出的相关问题,我想要一些指向源代码列表部分的箭头。

我知道使用包可以实现这一点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}

相关内容