![cleveref 和 amsthm 中的 Cref 命令会产生不需要的水平空格](https://linux22.com/image/470728/cleveref%20%E5%92%8C%20amsthm%20%E4%B8%AD%E7%9A%84%20Cref%20%E5%91%BD%E4%BB%A4%E4%BC%9A%E4%BA%A7%E7%94%9F%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%E6%B0%B4%E5%B9%B3%E7%A9%BA%E6%A0%BC.png)
当我使用 amsthm 和 cleveref 时,出现不需要的空格的问题。
以下是强调该问题的 MWE。
\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsthm}
\usepackage[hypertexnames=false]{hyperref}
\usepackage[noabbrev,nameinlink]{cleveref}
\hypersetup{colorlinks=true,linkcolor={red}}
\newtheoremstyle{test}{}{}{\itshape}{}{\bfseries}{.}{.5em}{#1#2 (\thmnote{#3})}
\theoremstyle{test}
\newtheorem{test}{Test T}
\begin{document}
\begin{test}[Test Name]
\label{test}
Test.
\end{test}
\Cref{test}.
\end{document}
正如可以注意到的,我想要通过 Cref 获取“Test T1”,但实际上我得到的是“Test T 1”。
欢迎任何反馈!
答案1
我认为你正在寻找类似的东西:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsthm}
\usepackage[colorlinks,linkcolor=red]{hyperref}
\usepackage[noabbrev,nameinlink]{cleveref}
\newtheoremstyle{test}{}{}{\itshape}{}{\bfseries}{.}{.5em}{#1 #2 (\thmnote{#3})}
\theoremstyle{test}
\newtheorem{test}{Test}
\renewcommand\thetest{T\arabic{test}}
\crefname{test}{Test}{Tests} % for \cref and \Cref calls with more than 1 arg.
\begin{document}
\begin{test}[Test Name] \label{testa} Test. \end{test}
\begin{test}[Another Test] \label{testb} Another test. \end{test}
\Cref{testa}.
\Cref{testa,testb}.
\end{document}