如何在交叉引用中包含前缀?

如何在交叉引用中包含前缀?

我的论文分为两部分(A 部分和 B 部分),它们的定理分别称为定理 A 和定理 B。B 部分的编号也从 1 开始。

这两个部分之间有很多交叉引用,因此需要在交叉引用中包含前缀 A 和 B,如下所示:

我想参考项目 A1.1 至 A1.3 和 B1.1 至 B1.3。

不幸的是,使用\cref{en1,en2,en3,en4,en5,en6}\labelcref{en1,en2,en3,en4,en5,en6}

我只得到了对项目 1.1 至 1.3 的引用。

有办法解决这个问题吗?

备注:解决方案应该仍然允许使用\value{},而不应该改变以下事实:项目本身只有数字 1.1、1.2 等,只有参考被称为 A1.1、A1.2 等。

以下是 MWE:

\documentclass[12pt]{article}
\usepackage{enumitem}
\usepackage{cleveref}
\parindent0pt

\newtheorem{TheoremA}{Theorem A}
\newtheorem{TheoremB}{Theorem B}

\setlist[1]{leftmargin=*, label=\theTheoremA.\arabic*}
\setlist[2]{leftmargin=*, label=\theenumi.\arabic*}
\setlist[3]{leftmargin=*, label=\theenumi.\arabic*}

\begin{document}


\part*{Part A}

\begin{TheoremA}
This is the first Theorem in Part A.
\end{TheoremA} 

\begin{enumerate}
\item \label{en1} First item in Theorem A1
\item \label{en2} Second item in Theorem A1
\item \label{en3} Third item in Theorem A1
\end{enumerate}


\setlist[1]{leftmargin=*, label=\theTheoremB.\arabic*}
\setlist[2]{leftmargin=*, label=\theenumi.\arabic*}
\setlist[3]{leftmargin=*, label=\theenumi.\arabic*}

\part*{Part B}

\begin{TheoremB}
This is the first Theorem in Part B.
\end{TheoremB} 

\begin{enumerate}
\item \label{en4} First item in Theorem B1
\item \label{en5} Second item in Theorem B1
\item \label{en6} Third item in Theorem B1
\end{enumerate}

Here is a reference to items \labelcref{en1,en2,en3,en4,en5,en6} instead of items A1.1 to A1.3 and B1.1 to B1.3.

Here, there is again a reference only to \cref{en1,en2,en3,en4,en5,en6}.

\end{document}

答案1

您可以按如下方式添加前缀:

\renewcommand{\thefigure}{S\arabic{figure}}
\renewcommand{\thetable}{S\arabic{table}}

我将其用于我的补充文件。因此表格和图形看起来像图 S1、图 S2、...、表 S1 等。您可以将其包装到您用来代替的宏中\part,使用\newcommand

相关内容