我正在使用该minted
包在我的文档中插入不同编程语言的代码列表。以下是 MWE:
\documentclass{article}
\usepackage{minted}
\usepackage{color}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\newminted{python}{autogobble, bgcolor=bg}
%... other minted environments for other languages
\begin{document}
\begin{listing}[htb]
\begin{pythoncode}
def myClass:
pass
\end{pythoncode}
\caption{Some Python}
\label{lst:python}
\end{listing}
\end{document}
现在,我想做的是为每个列表指定所使用的编程语言。我考虑在列表周围放一个框,并在标题中指定语言。我希望这个语言标签位于标题的右端。
是否有任何软件包可以帮助解决此问题?我该怎么做?
答案1
文档中minted
针对bgcolor
关键内容进行了说明:
列表的背景颜色。请注意,此选项有几个限制(如下所述);请参阅下面的“框架替代方案”以了解更强大的替代方案。
在“制定替代方案”部分中,您有:
如果您想要更可靠、更高级的背景颜色和框架选项,您应该考虑使用更高级的框架包,例如
mdframed
或tcolorbox
。
下面你会发现两个带有tcolorbox
标准minted
(更准确地说fancyvrb
:)可能性的框:你会看到标准解决方案的局限性,其中背景颜色框大于框架。代码:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{xcolor}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\usepackage[newfloat]{minted}
\newminted{python}{%
autogobble ,
bgcolor = bg ,
frame = single ,
framerule = 1mm ,
framesep = 3mm ,
label = \textrm{\textbf{python}} ,
labelposition = topline
}
\usepackage{tcolorbox}
\tcbuselibrary{minted}
\newtcblisting{tcbpythoncode}[1][python]{%
colback = yellow!5 ,
colframe = yellow!50!black ,
listing only ,
title = #1 ,
halign title = right ,
fonttitle = \bfseries ,
listing engine = minted ,
minted language = python
}
\begin{document}
\begin{tcbpythoncode}
def myClass:
pass
\end{tcbpythoncode}
\begin{listing}
\begin{pythoncode}
def myClass:
pass
\end{pythoncode}
\end{listing}
\end{document}