# New environment with minted

I want to create a new environment to transform this:

\begin{listing}
\caption{some caption}
\label{code:label}
\begin{minted}[options]{language}
My code here
\end{minted}
\end{listing}


into this:

\begin{mycode}{language}{some caption}{code:label}
My code here
\end{mycode}


I've tried the code from Using minted to define a new environment without success.

edit

This is what I've tried:

\newenvironment{mycode}[3]{%
\VerbatimEnvironment
\minted@resetoptions
\setkeys{minted@opt}{linenos,fontfamily=courier, fontsize=\scriptsize, xleftmargin=21pt}
\begin{listing}
\caption{#2}
\label{#3}
% \centering
\begin{VerbatimOut}{\jobname.pyg}}
{%
\end{VerbatimOut}
\minted@pygmentize{#1}
\DeleteFile{\jobname.pyg}
\end{listing}}


\documentclass[12pt]{article}
\usepackage{minted}
\makeatletter
\newenvironment{mycode}[3]
{\VerbatimEnvironment
\minted@resetoptions
\setkeys{minted@opt}{frame=single}% from fancyvrb
\renewcommand{\minted@proglang}[1]{#1}
\begin{figure}[htp]%% default placing
\centering
\caption{#2}\label{#3}
\begin{VerbatimOut}{\jobname.pyg}}
{\end{VerbatimOut}
\minted@pygmentize{\minted@proglang{}}
\DeleteFile{\jobname.pyg}
\end{figure}}
\makeatother

\begin{document}
\begin{mycode}{latex}{some caption}{code:label}
My \code here
\end{mycode}

\end{document}


• This worked like a charm. I just replace the figure by listing and remove the \centering. Thanks @Hebert. I didn't knew \makeatletter and \makeatother, but now I do. The \minted@proglang thing I can't get yet. – Hugo Maia Vieira Jan 27 '12 at 2:26
• And I add an \floatstyle{ruled} at minted.sty. Exist an elegant way to do that? – Hugo Maia Vieira Jan 27 '12 at 2:55
• look at the package floatrow how floating objects can be configured – user2478 Jan 27 '12 at 8:05

You don't need so complicated a code:

\documentclass[12pt]{article}
\usepackage{minted}

\newenvironment{mycode}[4][]
{\VerbatimEnvironment
\begin{listing}
\caption{#3}\label{#4}
\begin{minted}[
linenos,
fontfamily=courier,
fontsize=\scriptsize,
xleftmargin=21pt,
#1]{#2}}
{\end{minted}\end{listing}}

\begin{document}

\begin{mycode}{latex}{some caption}{code:label}
My \code here
\end{mycode}

\begin{mycode}[fontsize=\large]{latex}{some caption}{code:label2}
My \code here
\end{mycode}

\end{document}