![列表页码不正确](https://linux22.com/image/245503/%E5%88%97%E8%A1%A8%E9%A1%B5%E7%A0%81%E4%B8%8D%E6%AD%A3%E7%A1%AE.png)
我遇到的问题是,列表列表中的页码经常相差一页。
我正在使用该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}