我正在尝试使用 amsmath 创建一些带有标题和参考的方程式。我想隐藏边距中的方程式编号。我知道可以使用 equation* 环境来完成此操作,但这似乎对参考编号存在问题。当我使用 equation* 时,参考文献显示为“第 1.1 节”等。此外,同一小节中的多个方程式具有相同的参考文献(“第 1.1 节”)
在边距编号行上使用 \nonumbering 似乎也不起作用。它似乎阻止了方程计数器的递增,并且所有方程都标记为“方程 1”
如果可能的话我建议避免使用浮点数。
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{hyperref}
\begin{document}
\section{Details}
\lipsum[1]
\subsection{More Details}
\lipsum[1]
% Equation 1
\begin{equation*} \label{eq:myFirstEq}
y = mx + b
\end{equation*}
% I want a caption below the equation
\begin{center}
\textbf{\autoref{eq:myFirstEq} - My Equation}
\end{center}
% Equation 2
\begin{equation*} \label{eq:mySecondEq}
a^2 + b^2 = c^2
\end{equation*}
\begin{center}
\textbf{\autoref{eq:mySecondEq} - Another Equation}
\end{center}
\lipsum[1]
I'm going to reference \autoref{eq:myFirstEq} and \autoref{eq:mySecondEq} here.
\end{document}
答案1
对于我来说,引用未编号的方程式是没有意义的,无论如何,可以通过重新定义\tagform@
(这是排版方程式编号的命令)来完成不执行任何操作。
\makeatletter
\renewcommand\tagform@[1]{\relax}
\makeatother
梅威瑟:
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{hyperref}
\makeatletter
\renewcommand\tagform@[1]{\relax}
\makeatother
\begin{document}
\section{Details}
\lipsum[1]
\subsection{More Details}
\lipsum[1]
% Equation 1
\begin{equation} \label{eq:myFirstEq}
y = mx + b
\end{equation}
% I want a caption below the equation
\begin{center}
\textbf{\autoref{eq:myFirstEq} - My Equation}
\end{center}
% Equation 2
\begin{equation} \label{eq:mySecondEq}
a^2 + b^2 = c^2
\end{equation}
\begin{center}
\textbf{\autoref{eq:mySecondEq} - Another Equation}
\end{center}
\lipsum[1]
I'm going to reference \autoref{eq:myFirstEq} and \autoref{eq:mySecondEq} here.
\end{document}
输出:
编辑
如果您想为方程式添加标题,可以采用这种方式。
加载float
包并定义
\newfloat{floatequ}{H}{loe}
\floatname{floatequ}{Equation}
现在将每一个都封装equation
在floatequ
环境中。
关于标题的格式,我认为你需要
\captionsetup[floatequ]{font=bf,labelfont=bf,labelsep=endash}
梅威瑟:
\documentclass[11pt]{article}
\usepackage{caption,float}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{hyperref}
\newfloat{floatequ}{H}{loe}
\floatname{floatequ}{Equation}
\captionsetup[floatequ]{font=bf,labelfont=bf,labelsep=endash}
\makeatletter
\renewcommand\tagform@[1]{\relax}
\makeatother
\begin{document}
\section{Details}
\lipsum[1]
\subsection{More Details}
\lipsum[1]
\begin{floatequ}
% Equation 1
\begin{equation} \label{eq:myFirstEq}
y = mx + b
\end{equation}
\caption{My equation}
\end{floatequ}
\begin{floatequ}
% Equation 2
\begin{equation} \label{eq:mySecondEq}
a^2 + b^2 = c^2
\end{equation}
\caption{Another equation}
\end{floatequ}
\lipsum[1]
I'm going to reference \autoref{eq:myFirstEq} and \autoref{eq:mySecondEq} here.
\end{document}
输出:
如果需要,您还可以通过添加以下代码来打印方程列表
\listof{floatequ}{List of Equations}
请注意,由于我已将floatequ
环境定义为仅接受H
浮点说明符,因此不允许浮动。