这是代码。我对使用包装IEEEtrantools
和cleveref
一起进行标记有 3 个疑问。
\documentclass{amsart}
\usepackage[colorlinks]{hyperref}
\usepackage[capitalize]{cleveref}
\crefname{ineq}{Ineq.}{Ineqs.}
\Crefname{ineq}{Inequality}{Inequalities}
\creflabelformat{ineq}{~\upshape(#2#1#3)}
\numberwithin{equation}{section}
\usepackage[retainorgcmds]{IEEEtrantools}
\begin{document}
\section{IEEE}
\begin{IEEEeqnarray}{rCl}
a
&>&b+c \IEEEyessubnumber\label[ineq]{1a}\\
&>&f+g \IEEEyessubnumber\label[ineq]{2a}
\end{IEEEeqnarray}
I have 2 questions here.
1) In PDF, the labels behind the inequalities are (1.0a) and (1.0b).
How can I get (1.1a) and (1.1b)?
2) The command \verb|\cref| gives \cref{1b,2b}.
How can I get ``Ineqs. (1.1a) and (1.1b)'' by using \verb|\cref|?
\begin{IEEEeqnarray}{rCl}
a
&<&b+c \IEEEyessubnumber\label[ineq]{1b}\\
&<&f+g \IEEEyessubnumber\label[ineq]{2b}
\end{IEEEeqnarray}
I have another question here.
3) In PDF, the labels behind the inequalities are (1.0c) and (1.0d).
How can I get (1.2a) and (1.2b)?
\end{document}
答案1
我可以全面回答问题 1 和问题 3。但恐怕我只能提供问题 2 的解决方法。
关于问题 3:在标有 的不等式中使用\IEEEyesnumber
before 。\IEEEyessubnumber
1b
关于问题 1:由于您使用的是amsart
加载amsmath
包的文档类,因此结果会更好不是使用\IEEEyessubnumber
指令,而是将IEEEeqnarray
环境包含在subequation
环境中。进行此更改后,打印的方程式“数字”将按预期显示。(如果您进行此更改,则应省略所有\IEEEyesnumber
和\IEEEyessubnumber
指令。)
关于问题 2:subequation
在使用环境中,名称被交叉引用的项目\cref
——Ineqs
是正确的,但数字不是:\cref{1b,2b}
产生“Ineqs. (1.2) and (1.2)”而不是“Ineqs. (1.1a) and (1.1b)”。(如果[ineq]
省略限定词,名称将从“Ineqs.”更改为“Eqs.”,但数字仍然不正确;因此,问题不是由使用标签[ineq]
修饰符引起的。)我只能推测对环境cleveref
的支持并不完美。联系和软件包IEEEeqnarray
的作者并要求他们修复可能是获得完整解决方案的方法。cleveref
IEEEtrantools
与此同时,可以通过以下方式解决这个问题
... Ineqs.~\eqref{1a}) and~\eqref{1b} ...
这放弃了的优雅\cref
,但它具有工作的优点。
一个单独的潜在解决方法:众所周知,该宏与基于的多行数学环境\cref
配合得很好。因此,您可能需要考虑从包的环境切换到包的环境。(请注意,包由文档类自动加载。)作为中间步骤,您可以选择仅对涉及子方程式编号的方程组使用环境。amsmath
IEEEtrantools
amsmath
amsmath
amsart
amsmath
\documentclass[reqno]{amsart}
\numberwithin{equation}{section}
\usepackage[colorlinks]{hyperref}
\usepackage[capitalize]{cleveref}
\crefname{ineq}{Ineq.}{Ineqs.}
\Crefname{ineq}{Inequality}{Inequalities}
\creflabelformat{ineq}{~\upshape(#2#1#3)}
\usepackage[retainorgcmds]{IEEEtrantools}
\begin{document}
\section{IEEE}
\subsection{Using \texttt{subequations} and \texttt{IEEEeqnarray}}
\begin{subequations}
\begin{IEEEeqnarray}{rCl}
a &>&b+c \label[ineq]{1a}\\
&>&f+g \label[ineq]{2a}
\end{IEEEeqnarray}
\end{subequations}
The printed ``numbers'' are (1.1a) and (1.1b), as desired.
\verb|\cref| gives ``\cref{1a,2a}'', but ``Ineqs. (1.1a) and (1.1b)'' is desired.
\subsection{Using \texttt{subequations} and \texttt{align}}
\begin{subequations}
\begin{align}
a &<b+c \label[ineq]{1b}\\
&<f+g \label[ineq]{2b}
\end{align}
\end{subequations}
The printed ``numbers'' are (1.2a) and (1.2b), as desired.
\verb|\cref{1b,2b}| gives ``\cref{1b,2b}'', also as desired.
\end{document}