自定义来自 minted 的列表

自定义来自 minted 的列表

这个问题是关于自定义使用 minted 包生成的列表格式。具体来说,我想复制通过 tocloft 生成的数字格式:

在此处输入图片描述

尽管与以下两个问题相关:

(1)格式化 \listoftables 和 \listofalgorithms

(2)定制由 \lstlistoflistings 生成的列表列表?

我无法复制 minted 中 list of listings 的图表列表格式。这个问题与这两个例子不同,因为 minted 使用 float 包来创建 listings 列表,而上述两个问题分别涉及 algorithm 和 listing 包。

接下来尝试产生类似的结果。

\documentclass{report}
\usepackage{minted}
\usepackage[titles]{tocloft}


\makeatletter
\begingroup
  \let\newcounter\@gobble
  \let\setcounter\@gobbletwo
  \globaldefs\@ne
  \let\c@loadepth\@ne
  \newlistof{listings}{lol}{\listoflistingscaption}
\endgroup
\let\l@listings\l@listing
\makeatother



\renewcommand{\cftfigpresnum}{Figure }
\cftsetindents{fig}{0em}{5em}

\renewcommand{\listoflistingscaption}{List of Listings}
\renewcommand{\cftlistingspresnum}{Listing }
\cftsetindents{listings}{0em}{5em}


\begin{document}

\listoffigures
\listoflistings
\clearpage

A minted environment: 

\begin{listing}
\begin{minted}{java}
// Java class
\end{minted} 
   \caption{A Java Class.}
\end{listing} 

A Figure: 

\begin{figure}[h]
\centering
 \rule{1cm}{1cm} \caption{A Figure}
\end{figure}

\end{document}

这种方法得到的列表并不令人满意:

在此处输入图片描述

任何建议将不胜感激。

答案1

minted.sty我认为,如果您使用选项加载并使用中描述的newfloat界面,效果会更好。代码:tocloft.stynewfloat.pdf

\documentclass{article}

\usepackage[titles]{tocloft}
\newlistof{listing}{lol}{List of Listings}

\usepackage[newfloat]{minted}
\usepackage{caption}

\newenvironment{code}{\captionsetup{type=listing}}{}
\SetupFloatingEnvironment{listing}{%
  name={Listing},
  fileext=lol}

\renewcommand{\cftfigpresnum}{Figure~}
\setlength{\cftfigindent}{0pt}
\setlength{\cftfignumwidth}{2cm}

\renewcommand{\cftlistingpresnum}{Listing~}
\setlength{\cftlistingnumwidth}{2cm}

\begin{document}

\listoffigures
\listoflistings

\begin{listing}
\caption{A Java Class}
\begin{minted}{java}
// Java class
\end{minted} 
\end{listing}

Reference to \ref{code:c-code}.

\begin{code}
\captionof{listing}{My C-Code}
\label{code:c-code}
\begin{minted}{c}
int main() {
printf("hello, world");
return 0;
}
\end{minted}
\end{code}

\begin{figure}[h]
\centering
 \rule{1cm}{1cm} \caption{A Figure}
\end{figure}

\end{document}

在此处输入图片描述

相关内容