语法高亮代码片段

语法高亮代码片段

我正在尝试使用 Minted 在 Beamer 幻灯片上将一长串代码列表拆分为两列。但是,由于第二列语法无效(即没有第一列的引导),因此 Pygments 会突出显示错误。

\begin{frame}[fragile=singleslide]
\begin{columns}[T]
\begin{column}{0.48\textwidth}
\begin{minted}{json}
{
  "this": "is valid JSON",
\end{minted}
\end{column}
\hfill
\begin{column}{0.48\textwidth}
\begin{minted}{json}
  "but": "this is not!"
}
\end{minted}
\end{column}
\end{columns}
\end{frame}

有什么办法可以避免这种情况,或者让 Minted 知道第二部分是第一部分的延续?

答案1

解决这个问题最简单的方法可能是将代码放在外部文件(或临时文件,如下例所示)中,然后在适当的点输入不同的段。

\documentclass{beamer}
\usepackage{minted}
\begin{document}

\begin{VerbatimOut}{minted.tmp}
{
  "this": "is valid JSON",
  "but": "this is not!"
}
\end{VerbatimOut}

\begin{frame}[fragile=singleslide]
\begin{columns}[T]
\begin{column}{0.48\textwidth}
\inputminted[firstline=1,lastline=2]{json}{minted.tmp}
\end{column}
\hfill
\begin{column}{0.48\textwidth}
\inputminted[firstline=3,lastline=4]{json}{minted.tmp}
\end{column}
\end{columns}
\end{frame}

\end{document}

相关内容