\documentclass{scrbook}
\usepackage{listings}
\usepackage{cleveref}
\begin{document}
Ref: \ref{test}.
Cref: \cref{test}.
\begin{lstlisting}[caption={Test},label={test}]
test
\end{lstlisting}
\end{document}
这会产生Ref: 1. Cref: ?? 1.
。我期望的是Ref: 1. Cref: Listing 1
。
我得到一个LaTeX Warning: \Cref reference format for label type 'lstlisting' undefined on input line 9.
答案1
解决方案 1
将以下内容添加到您的标题中:
\crefname{lstlisting}{listing}{listings}
\Crefname{lstlisting}{Listing}{Listings}
解决方案 2
从以下网址下载最新版本这里(cleveref.dtx 和 cleveref.ins)并运行latex cleveref.ins
。