使用 minted 和 newfloat 将“Figure”作为 listoflistings 中列表的名称

使用 minted 和 newfloat 将“Figure”作为 listoflistings 中列表的名称

以下 MWE 为我提供了一个列表列表,其中“图”作为列表名称。

\documentclass{scrreprt}
\usepackage{classicthesis}    
\usepackage[newfloat]{minted}

\begin{document}
\listoflistings
\begin{listing}
\begin{minted}{sql}
Test
\end{minted}
\caption{My Listing}
\end{listing}
\end{document}

输出

如果我newfloat从 minted 中删除该选项,则“Figure”字符串会消失。但是,理想的行为是在每个条目前面包含“Listing”之类的内容。

答案1

你应该minted先加载classicthesis,否则你会得到一个

pdfTeX warning (ext4): destination with the same identifier 
(name{figure.0.1}) has been already used, duplicate ignored

警告,带有不正确的超链接。

然后,您可以进行\l@listing与 相同的操作\l@figure,这newfloat无论如何都是这样做的,但 afterclassicthesis修改了 的标准含义\l@figure。您可以使用钩子(通常为空)在本地更改\figurename为“Listing”,并可能更改某些缩进参数。

\documentclass{scrreprt}

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

\makeatletter
\let\l@listing\l@figure
\def\newfloat@listoflisting@hook{\let\figurename\listingname}
\makeatother

\begin{document}

\listoflistings

\begin{listing}
\begin{minted}{sql}
Test
\end{minted}
\caption{My Listing}
\end{listing}
\end{document}

在此处输入图片描述

似乎babel出现了一些时间问题。这里有一个不同的解决方法,包括更改标签。

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[newfloat]{minted}
\usepackage{classicthesis}
\usepackage{etoolbox}

\addto\captionsngerman{%
  \renewcommand{\listlistingname}{Quellcodeverzeichnis}%
  \renewcommand{\listingname}{Listing}%
}

\makeatletter
\let\l@listing\l@figure
\patchcmd{\l@listing}{\cftfigpresnum}{\cftlistingpresnum}{}{}
\newcommand\cftlistingpresnum{\listingname~}
\makeatother

\begin{document}

\listoflistings

\begin{listing}
\begin{minted}{sql}
Test
\end{minted}
\caption{My Listing}
\end{listing}
\end{document}

在此处输入图片描述

答案2

newfloat如果应用了相同的选项,minted 会加载-Package。newfloat使用\listoffigure命令获取新列表。看起来这有点问题 - 但我不知道该怪谁:我、newfloat、minted 还是 classicthesis。

为了修复列表列表,我不得不覆盖该\cftfigpresnum命令。

\PrepareListOf{listing}{\renewcommand{\cftfigpresnum}{Listing~}}

来源: http://mirrors.ctan.org/macros/latex/contrib/caption/newfloat.pdf,第 5 页

相关内容