我最近使用了 Roelof 的答案列举文本中的案例我希望能够使用标签 Cref 来调用不同的案例。
环境是
\newcounter{casenum}
\newenvironment{caseof}{\setcounter{casenum}{1}}{\vskip.5\baselineskip}
\newcommand{\case}[2]{\vskip.5\baselineskip\par\noindent {\bfseries Case \arabic{casenum}:} #1\\#2\addtocounter{casenum}{1}}
编辑的示例是
\documentclass{article}
\begin{document}
\newcounter{casenum}
\newenvironment{caseof}{\setcounter{casenum}{1}}{\vskip.5\baselineskip}
\newcommand{\case}[2]{\vskip.5\baselineskip\par\noindent {\bfseries Case \arabic{casenum}:} #1\\#2\addtocounter{casenum}{1}}
\begin{caseof}
\case{$x>0$}{
In this case, $x$ is larger than $0$ \label{c:1}
}
\case{$x<0$}{
In this case, $x$ is smaller than $0$ \label{c:2}
}
\case{$x=0$}{In this case, $x$ equals $0$\label{c:3}}
\end{caseof}
\end{document}
我怎样才能改变 Cref,以便我可以使用说
\Cref{c:1} is a good example for positive $x$
并让 Latex 将其输出为
情况1)是正 x 的一个很好的例子。
如果我使用 \roman 则应该说
案例(一)是正 x 的一个很好的例子。
ETC
其中,就像正规方程一样,您可以单击 (1)/(i),它将引导您到文档的该部分。
非常感谢
答案1
如果你真的想要大胆的引用:
\documentclass{article}
\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}
\newcounter{casenum}
\newenvironment{caseof}
{\setcounter{casenum}{0}}
{\par\addvspace{.5\baselineskip}}
\renewcommand*{\thecasenum}{\arabic{casenum}}
\newcommand{\case}[2]{%
\par\addvspace{.5\baselineskip}%
\noindent \refstepcounter{casenum}\textbf{Case \thecasenum:}~#1\\*
#2\ifhmode\unskip\fi
}
\crefname{casenum}{\protect\textbf{case}}{\protect\textbf{cases}}
\Crefname{casenum}{\protect\textbf{Case}}{\protect\textbf{Cases}}
\creflabelformat{casenum}{#2\textbf{(#1)}#3}
\begin{document}
\begin{caseof}
\case{$x>0$\label{c:1}}{%
In this case, $x$ is larger than $0$.%
}
\case{$x<0$\label{c:2}}{%
In this case, $x$ is smaller than $0$.%
}
\case{$x=0$\label{c:3}}{%
In this case, $x$ equals $0$.%
}
\end{caseof}
\Cref{c:1} is a good example for positive $x$.
\end{document}
请注意,我曾经\\*
防止分页符,您可能想要重新实现您的caseof
环境enumitem
(这将是另一个问题)。
如果您不想要粗体引用,请替换:
\crefname{casenum}{\protect\textbf{case}}{\protect\textbf{cases}}
\Crefname{casenum}{\protect\textbf{Case}}{\protect\textbf{Cases}}
\creflabelformat{casenum}{#2\textbf{(#1)}#3}
和:
\crefname{casenum}{case}{cases}
\creflabelformat{casenum}{#2(#1)#3}
对于罗马数字,请替换:
\renewcommand*{\thecasenum}{\arabic{casenum}}
和:
\renewcommand*{\thecasenum}{\roman{casenum}}
答案2
您也可以使用该enumitem
包,如下所示。
\documentclass{memoir}
\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}
\usepackage{enumitem}
\newlist{romcases}{enumerate}{3}
\setlist[romcases,1]{%
label=\sffamily{Case (\roman*):},
ref=\normalfont{(\roman*)},
wide, labelindent=0pt,itemsep=0pt,topsep=0pt
}
\crefname{romcasesi}{Case}{Cases}
\Crefname{romcasesi}{Case}{Cases}
\begin{document}
\begin{romcases}
\item $x>0$\label{c:1}\\
In this case, $x$ is larger than $0$.
\item $x<0$\label{c:2}\\
In this case, $x$ is smaller than $0$.
\item $x=0$\label{c:3}\\
In this case, $x$ equals $0$.
\end{romcases}
\Cref{c:1} is a good example for positive $x$.
\end{document}