这是我第一次提问。如果有人能帮忙的话我真的很感激。
我一直在使用文档类。不幸的是,我在使用和环境elsarticle
时遇到了问题:方程式的交叉引用为空,即它们不显示方程式编号。如何解决这个问题?hyperref
fleqn
\documentclass[3p,twocolumn]{elsarticle}
\usepackage{amsmath}
\usepackage{lineno}
\modulolinenumbers[5]
\usepackage {natbib}
\usepackage[dvipsnames]{xcolor}
\usepackage{adjustbox}
\usepackage{subfig}
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage[maxfloats=30,morefloats=12]{morefloats}
\usepackage{multirow}
\usepackage{wasysym}
\usepackage{nicefrac}
\usepackage[sright]{rotating}
\usepackage{booktabs}
\usepackage{amssymb} %for z integer set presentation
\usepackage{mathtools, nccmath} % for breaking long equation
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\begin{fleqn}
\begin{equation}\label{e:hatT}
\begin{aligned}
&\hat{T}_l=\hat{A}T_c+\hat{B}
\end{aligned}
\end{equation}
\end{fleqn}
\begin{fleqn}
\begin{equation}\label{f:eqialflow}
\begin{aligned}
&G_{eq}[(\hat{A}-1)T_c+\hat{B}]=\hat{C}T_c+\hat{D}\\
&E=mc^2
\end{aligned}
\end{equation}
\end{fleqn}
The TEC cold temperature ($T_c$) is determined by Eq. (\ref{f:eqialflow}). Substituting $T_c$ in Eq. (\ref{e:hatT})
\end{document}
答案1
将fleqn
选项传递给amsmath
并删除\mathindent
( \setlength{\mathindent}{0pt}
)。这样您就可以避免使用该fleqn
环境。
\documentclass[3p,twocolumn]{elsarticle}
\usepackage[fleqn]{amsmath}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{mathtools, nccmath}% for breaking long equation
\setlength{\mathindent}{0pt}
\begin{document}
\begin{equation}\label{e:hatT}
\hat{T}_l = \hat{A} T_c + \hat{B}
\end{equation}
\begin{equation}
\label{f:eqialflow}
\begin{aligned}
&G_{eq}[(\hat{A} - 1) T_c + \hat{B}] = \hat{C} T_c + \hat{D} \\
&E = mc^2
\end{aligned}
\end{equation}
The TEC cold temperature~($T_c$) is determined by Eq.~(\ref{f:eqialflow}).
Substituting~$T_c$ in Eq.~(\ref{e:hatT}).
\end{document}
答案2
我将冒险从部分文本截图中诊断您的问题。
第 1 项:您将\label
方程式的命令放在equation
环境之外。如果这样做,它将不会引用方程式,而是引用最后一个节号(在本例中可能是 2.2)。您应该得到类似这样的内容:
\begin{equation}
... - m'^{2}\theta_{l} =
\frac{Q_{xz}{k}
\label{myequation}
\end{equation}
该\label
命令可以在equation
环境中的任何地方运行,但如果您保持一致(并且将其保持在一行上),您会发现生活变得轻松得多。
第 2 项。看起来你写了类似这样的内容:
Eq. \eqref{myequation}
你会注意到“Eq.”和方程编号之间的间距太大了。这是因为 LaTeX 错误地认为“Eq.”是句子的结尾,并插入了句子结尾的间距。¹ 你应该这样写
Eq.~\eqref{myequation}
这将强制使用常规单词间距,并且作为额外的好处,可以避免在“Eq.”和“(19).”之间出现换行符。
或者更好的是,loading³cleveref
可以让你直接写
\Cref{myequation}
并Eq.~
自动将前缀添加到引用中。
TeX/LaTeX 这样做本身就是排版错误,但我就不提了。我认为 TeX 这样做的主要原因是 Knuth 想出了一个他想要实现的聪明算法,就像几乎
\t
没有实际用途的重音符号一样。²我花了很长时间尝试追踪语音发音排版之外的任何用例,但 TeX 的用例是值得怀疑的,因为原始 Computer Modern 字体中缺少其他必需的字符。
r
请注意,中只有一个cleveref
。我认为这可能有点太聪明了,可以这么说。