![编辑 cleveref 的格式以用于多个标签引用](https://linux22.com/image/276668/%E7%BC%96%E8%BE%91%20cleveref%20%E7%9A%84%E6%A0%BC%E5%BC%8F%E4%BB%A5%E7%94%A8%E4%BA%8E%E5%A4%9A%E4%B8%AA%E6%A0%87%E7%AD%BE%E5%BC%95%E7%94%A8.png)
我正在使用该cleveref
包在文章 (LaTeX) 中引用定理、方程等。我希望引用格式如下:Thm. (1) 表示单个定理(或方程、图形等),Thms. (1,2) 表示一对(定理)标签。
为了实现我所需的格式,cleveref
我这样做:
\usepackage{cleveref}
\crefformat{theorem}{Thm.~(#2{}#1{}#3)}
\crefname{theorem}{Thm.}{Thms.}
\newcommand{\crefpairconjunction}{ ,~}
但是,我无法完全实现具有一对标签的情况所需的格式——我要求引用中的计数器用“(”和“)”括号括起来:
谢谢。 (1.1、1.2)
有人能帮我修改多个标签格式吗?由于有人要求 MWE,所以这里是其中一个:
\documentclass[12pt]{article}
\usepackage{amsmath}
\newtheorem{theorem}{Theorem}[section]
\usepackage{hyperref}
\hypersetup{colorlinks,linkcolor=blue}
\usepackage{cleveref}
\crefformat{theorem}{Thm.~(#2{}#1{}#3)}
\crefname{theorem}{Thm.}{Thms.}
\newcommand{\crefpairconjunction}{ ,~}
\renewcommand{\baselinestretch}{2}
\begin{document}
\section{\today}
Here is a sample theorem:
\begin{theorem} \label{thm-something}
Define something \dots
\end{theorem}
Here is another sample theorem:
\begin{theorem} \label{thm-some-other-thing}
Define some other thing \dots
\end{theorem}
I do not want references in this format: \cref{thm-something,thm-some-other-thing}
I want to enclose the counters by ``('' and ``)'' parenthesis. So it should be: ``Thms. (1.1, 1.2)''.
\end{document}
我根据之前帖子的评论编辑了这个问题。(这个问题是如何同时交叉引用多个对象)
答案1
该命令\crefformat
用于定义对方程、图形、定理等单个实例的交叉引用格式。要设置对一系列项目的交叉引用格式,您需要使用\crefrangeformat
。以下设置可能适合您的需求:
\crefrangeformat{equation}{Eqs.~(#3#1#4--#5#2#6)}
\crefrangeformat{figure}{Figs.~(#3#1#4--#5#2#6)}
\crefrangeformat{theorem}{Thms.~(#3#1#4--#5#2#6)}
\crefrange{<first-label>}{<last-label>}
引用标签范围时请务必使用该命令。
{}
顺便说一句,您的说明中似乎有很多对花括号 , , \crefformat
。这些花括号可能没有必要。