在 Minted 程式碼上繪製疊加圖形

在 Minted 程式碼上繪製疊加圖形

我想在幻燈片上的一些程式碼周圍繪製橢圓,作為疊加層,每這個答案。然而,它似乎不起作用。事實上,XeLaTeX 甚至沒有渲染第二張幻燈片。

我的程式碼是這樣的:

\begin{frame}[fragile=singleslide]{Frame title}
  \begin{minted}[autogobble,fontfamily=myfont,escapeinside=||}{c}
    int main(int argc, char** argv) {
      return |\tikzmark{start}|0|\tikzmark{end}|;
    }
  \end{minted}

  \begin{tikzpicture}[remember picture,overlay]
    \node<2>[draw,line width=2,cyan,circle,fit={(pic cs:start) (pic cs:end)}] {};
  \end{tikzpicture}
\end{frame}

我正在使用 Latexmk,FWIW。我測試了上述答案中連結的程式碼,並獲得了正確的輸出,所以我猜它正在執行正確的傳遞次數。但是,當我刪除 minted 環境時,它仍然不起作用:

\begin{frame}[fragile=singleslide]{Frame title}
  Hello \tikzmark{start}World\tikzmark{end}

  \begin{tikzpicture}[remember picture,overlay]
    \node<2>[draw,line width=2,cyan,circle,fit={(pic cs:start) (pic cs:end)}] {};
  \end{tikzpicture}
\end{frame}

答案1

好的,我發現問題了。如果我刪除fragile=singleslide框架選項,那麼它在第二個範例中起作用。然而,minted 環境至少需要這個fragile選項。幸運的是,這種組合是有效的:

\begin{frame}[fragile]{Frame title}
  \begin{minted}[autogobble,fontfamily=myfont,escapeinside=||}{c}
    int main(int argc, char** argv) {
      return |\tikzmark{start}|0|\tikzmark{end}|;
    }
  \end{minted}

  \begin{tikzpicture}[remember picture,overlay]
    \node<2>[draw,line width=2,cyan,circle,fit={(pic cs:start) (pic cs:end)}] {};
  \end{tikzpicture}
\end{frame}

相關內容