15

I'm using the minted package. How can I get the caption to show before the code in the document?

\documentclass[a4paper]{scrartcl}
\usepackage{minted}
\begin{document}
    \begin{listing}[H]
        \caption{This is below the code.}
        \inputminted{matlab}{myfile.m}
        \label{lst:the-code}
    \end{listing}
\end{document}
lockstep
  • 250,273
Tim N
  • 10,219
  • 13
  • 63
  • 88

2 Answers2

14

The floatrow package will do the trick, but it must be loaded before minted to prevent it from loading the float package.

\documentclass[a4paper]{scrartcl}    
\usepackage{floatrow}
\usepackage{minted}    
\floatsetup[listing]{style=Plaintop}    
\begin{document}    
    \begin{listing}[H]    
        \caption{This is above the code.}    
        \inputminted{matlab}{myfile.m}    
        \label{lst:the-code}    
    \end{listing}    
\end{document}

enter image description here

Jonas Nyrup
  • 1,438
  • 10
  • 17
10

The in January released 2.0 version of minted allows you to use the newfloat-package instead of the (rather old) float-package. If you want to use newfloat, the method for positioning the caption above the source is not the same as Jonas's but rather the following.

\documentclass[a4paper]{scrartcl}

\usepackage{caption}
\usepackage[newfloat]{minted}
\captionsetup[listing]{position=top}

\begin{document}

\begin{listing}[H]
    \caption{This is above the code.}
    \inputminted{matlab}{myfile.m}
    \label{lst:the-code}
\end{listing}

\end{document}

Minted-listing using newfloat


Important: you have to place the \caption-command above your source-code within the listing-float. The \captionsetup only applies correct spacing but you have to place the command at the right position yourself.

Pit
  • 201