这是我第一次使用 minted,在阅读文档后,我找不到在代码列表中放置标签的方法。需要说明的是,我说的不是\label
环境listing
。我试图重现如下列表
\begin{Verbatim}[fontsize=\footnotesize,frame=single,%
label={This is the label},numbers=left]
int main() { return 0; }
\end{Verbatim}
这会创建一个漂亮的框架,中间有一个标签“这是标签”。
由于 minted 使用 fancyvrb,我以为这很容易做到,但我没有成功。到目前为止,更接近的方法是
\begin{minted}[fontsize=\footnotesize,frame=single,linenos]{c++}
int main() { return 0; }
\end{minted}
有谁知道实现这一目标的方法或技巧吗?
答案1
我想,只有 minted.sty 中缺少它
\documentclass{article}
\usepackage{minted}
\makeatletter
\minted@define@extra{label}
\makeatother
\begin{document}
foo
\begin{minted}[frame=single,label=foobar]{c++}
int main() { return 0; }
int foo() {return 1; }
\end{minted}
bar
\end{document}
答案2
我在参考手册中没有看到任何关于这方面的内容。不过,我认为你可以用蒂克兹。以下是一个例子,
% that should go into your preamble
% -%<------------------------------
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\definecolor{myblue}{cmyk}{0.94,0.54,0,0}
\tikzstyle{snippet}=[draw=myblue,fill=none,thick,
text width=0.85\textwidth,rectangle,
rounded corners=0pt,inner sep=0pt,inner ysep=10pt]
\tikzstyle{title}=[fill=white,text=myblue,rectangle]
% ------------------------------>%-
% and here is a framed snippet
\begin{tikzpicture}
\node[snippet](box){
\begin{minted}[fontsize=\footnotesize,frame=none,linenos=none]{c++}
int main() { return 0; }
\end{minted}
};;
\node[title] at (box.north) {Useless function};
\end{tikzpicture}
输出如下所示: