我有一长段代码,用 突出显示minted
。
我想让背景只围绕一段代码。我该如何实现?
我尝试使用类似的东西escapeinside=||
来创建一个彩色框。
在这个例子中,我们想要将背景放在中心部分,\colorbox{green}...
和\end{minipage}}
命令之间。
\begin{minted}[linenos=true,escapeinside=||,breaklines=true]{cpp}
...
if (is_continuous<T>::value && value.size() == 0)
ar.write(path, static_cast<typename scalar_type<std::vector<T, A> >::type const *>(NULL), std::vector<std::size_t>());
else if (is_continuous<T>::value) {
|\colorbox{green}{\begin{minipage}{\textwidth}|
std::vector<std::size_t> extent(get_extent(value));
std::copy(extent.begin(), extent.end(), std::back_inserter(size));
std::copy(extent.begin(), extent.end(), std::back_inserter(chunk));
std::fill_n(std::back_inserter(offset), extent.size(), 0);
ar.write(path, get_pointer(value), size, chunk, offset);
|\end{minipage}}|
} else if (value.size() == 0)
ar.write(path, static_cast<int const *>(NULL), std::vector<std::size_t>());
else if (is_vectorizable(value)) {
...
\end{minted}
但是,我认为这不能编译,因为escapeinside
命令不能留下开放的块。
有什么想法可以实现期望的行为吗?
谢谢。
答案1
一个可能的解决方案(感谢 Tom Bombadil)是将代码分成更多minted
块。然而,这也显示出一些问题。(见下文)
我尝试的是以下代码
\begin{minted}[linenos=true,fontsize=\footnotesize,breaklines=true]{cpp}
...
if (is_continuous<T>::value && value.size() == 0)
ar.write(path, static_cast<typename scalar_type<std::vector<T, A> >::type const *>(NULL), std::vector<std::size_t>());
else if (is_continuous<T>::value) {
\end{minted}
\begin{minted}[linenos=true,fontsize=\footnotesize,breaklines=true,firstnumber=last,bgcolor=YellowGreen]{cpp}
/* BEGIN BLOCK 1 */
std::vector<std::size_t> extent(get_extent(value));
std::copy(extent.begin(), extent.end(), std::back_inserter(size));
std::copy(extent.begin(), extent.end(), std::back_inserter(chunk));
std::fill_n(std::back_inserter(offset), extent.size(), 0);
ar.write(path, get_pointer(value), size, chunk, offset);
/* END BLOCK 1 */
\end{minted}
\begin{minted}[linenos=true,fontsize=\footnotesize,breaklines=true,firstnumber=last]{cpp}
} else if (value.size() == 0)
ar.write(path, static_cast<int const *>(NULL), std::vector<std::size_t>());
else if (is_vectorizable(value)) {
...
\end{minted}
问题如下:
- 区块之间的空间分隔
- 当有背景时,数字会有不同的偏移量。
有可能解决这些问题吗?