我正在使用该minted
包的listing
环境来排版 MATLAB 源代码。
正如手册中所述minted
,我已使用\SetupFloatingEnvironment{listing}{name=Program code}
选项将标题从默认更改listing
为Program code
。这成功更新了标题。但是,在文本中交叉引用源代码时,cleveref
仍然使用 这个词listing
。
这里有一个MWE
。
\documentclass{article}
\usepackage[newfloat=true]{minted}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}
\SetupFloatingEnvironment{listing}{name=Program code}
\begin{document}
The code for computing mass-energy relationship is given in~\cref{code:massenergy}.
\begin{listing}
\begin{minted}[autogobble,frame=single]{matlab}
clear; close all; clc;
e = m*c^2;
\end{minted}
\caption{Mass-Energy Relationship}
\label{code:massenergy}
\end{listing}
\end{document}
以下是产生的输出
我怎样才能cleveref
在文本中生成预期的交叉引用字符串?
答案1
该newfloat
包不会将新名称传递给cleveref
;无论如何,您还需要复数形式。
添加
\crefname{listing}{Program code}{Program codes}
在该\SetupFloatingEnvironment
行之后。
你可以通过以下方式避免代码重复
\crefname{listing}{\listingname}{\listingname s}