我定义了一个自定义浮点数,但对它的交叉引用不起作用。我做错了什么?以下是 MWE:
\documentclass{article}
\usepackage{float}
\floatstyle{ruled}
\newfloat{program}{thp}{lop}
\floatname{program}{Program}
\begin{document}
See Listing \ref{prog:hello}.
\begin{program}
\label{prog:hello}
\begin{verbatim}
class HelloWorldApp {
public static void main(String[] args) {
//Display the string
System.out.println("Hello World!");
}
}
\end{verbatim}
\caption{The Hello World! program in Java.}
\end{program}
\end{document}
正如您在下面的输出中看到的,对程序列表的交叉引用不起作用。即,“查看列表”后面的数字丢失了。
答案1
\label
总是在 之后调用,\caption
而不是在 之前调用。使用它会将错误的计数器信息写入文件.aux
。
\documentclass{article}
\usepackage{float}
\floatstyle{ruled}
\newfloat{program}{thp}{lop}
\floatname{program}{Program}
\begin{document}
See Listing \ref{prog:hello}.
\begin{program}
\begin{verbatim}
class HelloWorldApp {
public static void main(String[] args) {
//Display the string
System.out.println("Hello World!");
}
}
\end{verbatim}
\caption{The Hello World! program in Java.}
\label{prog:hello}
\end{program}
\end{document}