在 beamer 中工作的 Tcolorbox + minted 源代码清单

在 beamer 中工作的 Tcolorbox + minted 源代码清单

我复制并修改了接受答案中的代码片段这里突出显示cpp代码:

\usepackage{tcolorbox}
\tcbuselibrary{minted,skins}

\newtcblisting{cppcode}[1][]{
    listing engine=minted,
    colback=bg,
    colframe=black!70,
    listing only,
    minted style=colorful,
    minted language=cpp,
    minted options={linenos=true,numbersep=3mm,texcl=true,#1},
    left=5mm,enhanced,
    overlay={\begin{tcbclipinterior}\fill[black!25] (frame.south west)
            rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}}
}
\definecolor{bg}{rgb}{0.85,0.85,0.85}

然后,我在 Beamer 框架中使用它,如下所示:

\begin{frame}[fragile]
\frametitle{Title}
\framesubtitle{Subtitle}

\begin{cppcode}    
int main() {
    int x, y; 
}
\end{cppcode}

\end{frame}

但是,只显示一个带有灰色边缘的空框,其中没有任何代码。

我有以下投影仪类别和主题:

\documentclass[xcolor=table]{beamer}

\usetheme{CambridgeUS}
\usecolortheme{beaver}

如何使类似的 tcolorbox 代码列表显示在 beamer 中?理想情况下,我还希望它可以跨框架分解。

更新:作者在评论中建议将 的名称更改为bg。我将其更改为bgg,现在背景也是(较浅的)灰色,但代码仍然没有显示。

答案1

事实证明,bg背景颜色的名称与 冲突beamer。只需将其命名为其他名称即可

\newtcblisting{cppcode}[1][]{
    listing engine=minted,
    colback=cppcodebg,
    colframe=black!70,
    listing only,
    minted style=colorful,
    minted language=cpp,
    minted options={linenos=true,numbersep=3mm,texcl=true,#1},
    left=5mm,enhanced,
    overlay={\begin{tcbclipinterior}\fill[black!25] (frame.south west)
            rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}}
}
\definecolor{cppcodebg}{rgb}{0.85,0.85,0.85}

在此处输入图片描述

最小示例,用于运行

pdflatex -shell-escape test

或者minted无法运行pygmentize

\documentclass{beamer}

\usepackage{tcolorbox}
\tcbuselibrary{minted,skins}

\newtcblisting{cppcode}[1][]{
    listing engine=minted,
    colback=cppcodebg,
    colframe=black!70,
    listing only,
    minted style=colorful,
    minted language=cpp,
    minted options={linenos=true,numbersep=3mm,texcl=true,#1},
    left=5mm,enhanced,
    overlay={\begin{tcbclipinterior}\fill[black!25] (frame.south west)
            rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}}
}
\definecolor{cppcodebg}{rgb}{0.85,0.85,0.85}

\begin{document}

\begin{frame}[fragile]
\frametitle{Title}
\framesubtitle{Subtitle}

\begin{cppcode}    
int main() {
    int x, y; 
}
\end{cppcode}

\end{frame}

\end{document}

相关内容