使用 minted 进行分页:代码脱离背景

使用 minted 进行分页:代码脱离背景

我使用 minted 显示 C++ 代码。如果页面底部有一行长代码,行会按预期换行。不幸的是,还有一个灰色箭头指示换行。输出

我该如何预防?

编辑:这里是重现该问题的 MWE:

\documentclass[a4paper,12pt]{report}
\usepackage{minted}
\usepackage{xcolor}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\setminted[c++]{breaklines,bgcolor=bg}
\begin{document}
\begin{minted}{c++}
#include <iostream>

int main() {
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
std::cout << "Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World" std::endl;
}
\end{minted}
\end{document}

输出如下所示: 在此处输入图片描述

答案1

minted包装bgcolor方案在分页符处不够稳健。参见手动的第 22 页。

请注意,如果将 bgcolor 与 breaklines=true 一起使用,并且换行符恰好出现在分页符之前,则文本在某些情况下可能会延伸到彩色背景下方。在这些情况下,最好使用更高级的框架包

我建议你使用tcolorbox甚至提供内置框架环境和 minted 支持的软件包。示例如下:

\documentclass[a4paper,12pt]{report}
\begin{filecontents*}{test.h}
#include <iostream>

int main() {

std::cout << "Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World" std::endl;
}
\end{filecontents*}
%\usepackage{minted}
\usepackage{tcolorbox}
\tcbuselibrary{minted,breakable}
\usepackage{xcolor}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
%\setminted[c++]{breaklines,bgcolor=bg}
\begin{document}
%\begin{minted}{c++}
\begin{tcblisting}{
colback=bg,
breakable,
listing only,
minted language=c++,
minted options={breaklines}}
#include <iostream>

int main() {
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
std::cout << "Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World" std::endl;
}
\end{tcblisting}
%\end{minted}
\tcbinputlisting{
colback=bg,
breakable,
listing only,
listing file={test.h},
minted language=c++,
minted options={breaklines}}
\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容