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