You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LaTeX中为交叉引用自动添加对应类型前缀

解决方案

推荐使用cleveref包实现自动带前缀的交叉引用,这是LaTeX处理这类需求的标准方案,操作步骤如下:

步骤1:配置导言区

将cleveref包添加到导言区,注意该包需要放在绝大多数宏包的加载位置之后,如果你使用了hyperref包,必须放在hyperref的加载语句之后。针对你的场景完整配置如下:

\usepackage[newfloat]{minted}
\usepackage{caption}
\newenvironment{code}{\captionsetup{type=listing}}{}
\SetupFloatingEnvironment{listing}{name=Source Code}

% 加载cleveref包
\usepackage{cleveref}
% 配置自定义listing环境的引用前缀,第一个参数为单数形式,第二个为复数形式
\crefname{listing}{Source Code}{Source Codes}
% 如果需要中文前缀,可修改为对应内容,例如:
% \crefname{figure}{图}{图}
% \crefname{listing}{源代码}{源代码}

步骤2:替换引用命令

正文引用时将原有的\ref命令替换为\cref即可,示例如下:

% 原引用写法
\ref{fig:domainsplitt-one}
\ref{code:listening-custom-event}

% 新引用写法
\cref{fig:domainsplitt-one}
\cref{code:listening-custom-event}

替换后生成的PDF中,引用内容会自动带出对应类型的前缀,比如图片引用会显示为Figure 4.13,代码块引用会显示为Source Code X.X。

替代方案(使用hyperref的autoref)

如果你已经加载了hyperref包不想额外引入cleveref,也可以通过配置\autoref实现:

  1. 导言区添加配置:\newcommand*{\listingautorefname}{Source Code}
  2. 引用时使用\autoref{标签名}即可输出带前缀的引用内容。

注意:\label语句必须放在\caption/\captionof语句之后,否则引用编号会出现错误,你当前的代码写法符合该要求无需调整。

内容的提问来源于stack exchange,提问作者Adrian Görisch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:18:00