带有 fancyvrb 标签的铸造

带有 fancyvrb 标签的铸造

这是我第一次使用 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}

输出如下所示:

替代文本

相关内容