使用以下示例
\listfiles
\documentclass{article}
\usepackage{minted}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\begin{document}
Some text
\begin{minted}{latex}
A test
\end{minted}
Some text
\begin{minted}[linenos=true]{latex}
A test
\end{minted}
Some text
\begin{minted}[bgcolor=bg]{latex}
A test
\end{minted}
\end{document}
前两个代码块排版在文本下方,但最后一个代码块排版在侧面:
我有Pymentizev1.4 已安装,并\listfiles
提供
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
minted.sty 2010/01/27 v1.6 Yet another Pygments shim for LaTeX
keyval.sty 1999/03/16 v1.13 key=value parser (DPC)
fancyvrb.sty 2008/02/07
color.sty 2005/11/14 v1.0j Standard LaTeX Color (DPC)
color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
pdftex.def 2010/11/26 v0.05c Graphics/color for pdfTeX
float.sty 2001/11/08 v1.3d Float enhancements (AL)
ifthen.sty 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
calc.sty 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
ifplatform.sty 2010/10/22 v0.4 Testing for the operating system
pdftexcmds.sty 2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO)
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/message (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
ltxcmds.sty 2010/04/26 v1.7 LaTeX kernel commands for general use (HO)
catchfile.sty 2010/04/28 v1.5 Catches the contents of a file (HO)
etexcmds.sty 2010/01/28 v1.3 Prefix for e-TeX command names (HO)
minted-test.w18
supp-pdf.mkii
minted-test.pyg
minted-test.out.pyg
minted-test.out.pyg
minted-test.out.pyg
***********
这看起来像是一个会被注意到的错误,那么我错在哪里了?
答案1
minted
如果选择了背景颜色,则内部使用以下宏:
\newsavebox{\minted@bgbox}
\newenvironment{minted@colorbg}[1]{
\def\minted@bgcol{#1}
\noindent
\begin{lrbox}{\minted@bgbox}
\begin{minipage}{\linewidth-2\fboxsep}}
{\end{minipage}
\end{lrbox}%
\colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
在没有进一步测试的情况下,我假设使用 aminipage
不会引入新段落。如果是这样,\par
在框前执行一个简单的命令应该可以解决问题。
这似乎是一个会被注意到的错误,
应该有。事实上,文档minted.pdf
目前几乎是唯一的测试案例,并且在文档中该bgcolor
选项仅在一个示例中使用,没有周围文本,因此缺少段落分隔符没有任何区别。
答案2
您可以使用 mdframed 包 ( \usepackage{mdframed}
) 来解决此问题,方法如下:
\definecolor{bg}{rgb}{0.95,0.95,0.95}
...
\begin{mdframed}[backgroundcolor=bg]
\begin{minted}{latex}
your code
\end{minted}
\end{mdframed}
答案3
为了更新以前的答案,这就是手册2016 年的情况如下:
此选项将阻止断线与
\mintinline
。A\colorbox
不能跨行断开。此选项将防止环境跨页面中断。如果您需要支持分页符和高级选项,则应考虑使用框架包,例如
framed
、mdframed
或tcolorbox
。使用包可以轻松地将框架添加到 minted 命令和环境中etoolbox
。例如,使用mdframed
:\BeforeBeginEnvironment{minted}{\begin{mdframed}} \AfterEndEnvironment{minted}{\end{mdframed}}
一些框架包还提供了用于此类目的的内置命令。例如,
mdframed
提供了一个\surroundwithmdframed
命令,可用于将框架添加到所有已创建的环境中:\surroundwithmdframed{minted}
tcolorbox
甚至提供了带有 minted 支持的内置框架环境。