列表页码不正确

列表页码不正确

我遇到的问题是,列表列表中的页码经常相差一页。

我正在使用该listings包,并且在文档开头有一个由命令生成的列表\listoflistings

我正在使用以下环境来编写列表。

\lstnewenvironment{javacode}[2]
{
\refstepcounter{listings}%
\label{lst:#2}%
\addcontentsline{lst}{listings}{\protect\numberline{\thelistings}#1}%
\lstset{language=Java,caption=#1,breaklines=true,breakatwhitespace=false,float=phtb}
}
{
}

当一页中没有足够的空间容纳列表,列表将移至下一页时,就会出现此问题。在这种情况下,列表列表中显示的页码会偏离一页,因为锚点仍保留在文本中的位置,但实际列表已移至下一页。

您知道我该如何修复它吗?我想应该有一个解决方案,因为我只想复制图形和表格以及图形列表和表格列表的行为。

答案1

不确定为什么存在\refstepcounter\addcontentsline命令。下面的命令似乎可以单独运行:

在此处输入图片描述

\documentclass{article}
\usepackage{listings}
\lstnewenvironment{javacode}[2]{\lstset{language=Java,label=lst:#2,caption=#1,breaklines=true,breakatwhitespace=false,float=phtb}}{}
\begin{document}
\lstlistoflistings
\begin{javacode}{Java code caption}{code}
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}
\end{javacode}
Listing~\ref{lst:code} is a ``Hello, world!'' program.
\end{document}

相关内容