自定义浮动的交叉引用

自定义浮动的交叉引用

我定义了一个自定义浮点数,但对它的交叉引用不起作用。我做错了什么?以下是 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}

正如您在下面的输出中看到的,对程序列表的交叉引用不起作用。即,“查看列表”后面的数字丢失了。

LaTex 输出

答案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}

在此处输入图片描述

相关内容