我对 LateX 还很陌生,所以请多多包涵 ;-)。我使用 minted 来展示我编写的一些代码。我希望代码有标题和标签,这样我就可以从文本中引用它,并让它出现在文档底部的“列表列表”中。这就是我将 minted 放在这个列表内容中的原因。
这是我对 minted 的定义 - 所以我不需要多次指定所有内容:
\usepackage[chapter]{minted}
\newminted{glsl}{
mathescape,
linenos,
numbersep=5pt,
gobble=2,
frame=lines,
framesep=2mm}
这是我的文本里面的代码。
\begin{listing}[H]
\caption{Berechnung der Runlength für einen bestimmten Pixel}
\begin{glslcode}
void getRlHor() {
for(int j=1; j < maxSize; j++) {
int xRunlength = px + j;
if(xRunlength > imgWidth)
break;
nextGreyV = getGreyValue(xRunlength, py);
if(currentGreyV == nextGreyV) {
rlHor++;
}else{
break;
}
}
}
\end{glslcode}
\label{lis:getRlHor}
\end{listing}
我使用 \begin{listing} 是因为我在 minted 的多个示例中都看到过它。但这给我带来了麻烦。
这是我收到的错误报告:总是弹出这 8 行。
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
Something's wrong--perhaps a missing \item. \addvspace {10\p@ }
似乎当我删除 main.lol 文件时。我可以编译一次而不会出现错误。如果我再写一个句子然后再次编译,我就会得到上面提到的这些错误。但这是一个有缺陷的解决方法。
非常感谢您的帮助!!
编辑:我因为没有意识到这一点而感到有点沮丧。当我打开 main.lol 文件时,它显示的内容如下
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {listing}{\numberline {3.1}{\ignorespaces Spezialf\"alle abfangen und Randbedingungen setzen}}{8}{listing.3.1}%
\contentsline {listing}{\numberline {3.2}{\ignorespaces Berechnung der Runlength f\"ur einen bestimmten Pixel}}{8}{listing.3.2}%
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
在我编译后,其中底部的 8 个 (\addvspace {10\p@ }) 显示为红色。我认为这是来自我输入的代码,因为错误是在我输入代码后开始出现的。我真的不能发布整个文档,因为我必须在这里发布 8 个完整的文件。
答案1
该文档运行时没有错误,因此您显示的错误一定是由您未显示的代码生成的。请编辑问题以获得如下所示的完整文档,该文档会生成所示的错误。
\documentclass{report}
\usepackage{float}
\usepackage[chapter]{minted}
\newminted{glsl}{
mathescape,
linenos,
numbersep=5pt,
gobble=2,
frame=lines,
framesep=2mm}
\begin{document}
\listoflistings
\begin{listing}[H]
\caption{Berechnung der Runlength für einen bestimmten Pixel}
\begin{glslcode}
void getRlHor() {
for(int j=1; j < maxSize; j++) {
int xRunlength = px + j;
if(xRunlength > imgWidth)
break;
nextGreyV = getGreyValue(xRunlength, py);
if(currentGreyV == nextGreyV) {
rlHor++;
}else{
break;
}
}
}
\end{glslcode}
\label{lis:getRlHor}
\end{listing}
\end{document}
编辑后,本文档出现第 15 行所示的错误
\documentclass{article}
\begin{document}
\makeatletter
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {listing}{\numberline {3.1}{\ignorespaces Spezialf\"alle abfangen und Randbedingungen setzen}}{8}{listing.3.1}%
\contentsline {listing}{\numberline {3.2}{\ignorespaces Berechnung der Runlength f\"ur einen bestimmten Pixel}}{8}{listing.3.2}%
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\end{document}
可以通过添加空白行来修复,如下所示:
\documentclass{article}
\begin{document}
\makeatletter
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {listing}{\numberline {3.1}{\ignorespaces Spezialf\"alle abfangen und Randbedingungen setzen}}{8}{listing.3.1}%
\contentsline {listing}{\numberline {3.2}{\ignorespaces Berechnung der Runlength f\"ur einen bestimmten Pixel}}{8}{listing.3.2}%
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\end{document}
因此,错误出在你未显示的代码中
\addvspace {10\p@ }
到lol
文件中。要么根本不应该写入(这是默认行为),要么应该写入一个空白,例如 或 ,\par
以确保在添加垂直空间之前处于垂直模式。