正确编号方程的问题

正确编号方程的问题

我正在尝试使用 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}

现在将每一个都封装equationfloatequ环境中。

关于标题的格式,我认为你需要

\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浮点说明符,因此不允许浮动。

相关内容