在方程式编号中添加“Eq.”但不要在引用中添加

在方程式编号中添加“Eq.”但不要在引用中添加

也许我已经在看它了,但我看不到它,所以如果有人能给我一个简短的提示,我会很高兴。

\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\renewcommand{\theequation}{\textit{Eq. \thesection.\arabic{equation}}} 

\begin{document}

\section{Vogelpohlsche Volumenformel}
\begin{equation}
n = \frac{10^{-8} F}{6 C \cdot \eta \cdot V}
\label{eq:Example}
\end{equation}

A reference to the equation \ref{eq:Example} is helpful.

\end{document}

与此 MWE 一样,我将出现在右侧的方程的编号重新定义为“Eq. 1.1”,这样效果很好。但是当我在文本中引用方程时,我通常会写出整个单词“equation”并添加引用。这里它还给出了引用的缩写(“对方程 Eq. 1.1 的引用很有帮助。”)。如何在编号中包含“Eq.”而不在引用中包含“Eq.”?

我想避免使用额外的软件包,我也查阅了类似的问题,但没有找到解决方案

如何以不同的方式设置方程标签和引用的样式?

感谢您的意见并祝大家度过愉快的一天!

答案1

到目前为止,您所做的就是更改 的定义,\theequation使其包含Eq.。这意味着使用\label和创建的任何引用\ref也将包含Eq.,而这并不是您想要的。如中所述使用 amsmath 更改方程编号的外观,您需要修改\tagform@宏。由于此命令包含一个 at 字符@,这是 (La)TeX 的特殊字符,因此您需要在 内执行此操作\makeatletter....\makeatother。以下 的重新定义\tagform@可实现您想要的效果:

\makeatletter
\def\tagform@#1{\maketag@@@{(\ignorespaces\textit{Eq.~#1}\unskip\@@italiccorr)}}
\makeatother

请注意,我使用了Eq.~#1而不是Eq. #1。这只是在 fromEq.的原始定义上添加了内容,即\tagform@amsmath.sty

\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}

由于现在通过重新定义Eq添加了 ,因此不再需要。但是,您仍然希望在节内对方程进行编号,因此必须注意这一点。与其重新定义,不如使用 ,因为这会导致每当节计数器增加时,方程计数器都会重置。\tagform@\theequation\theequation\numberwithin{equation}{section}

通过这些更改,您的 MWE 将成为:

\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\numberwithin{equation}{section}

\makeatletter
\def\tagform@#1{\maketag@@@{(\ignorespaces\textit{Eq.~#1}\unskip\@@italiccorr)}}
\makeatother

\begin{document}

\section{Vogelpohlsche Volumenformel}
\begin{equation}
n = \frac{10^{-8} F}{6 C \cdot \eta \cdot V}
\label{eq:Example}
\end{equation}

A reference to the equation \ref{eq:Example} is helpful.

\end{document}

输出为:

在此处输入图片描述

答案2

这就是你需要的吗?

\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\renewcommand{\theequation}{\thesection.\arabic{equation}}

\makeatletter
\def\tagform@#1{\maketag@@@{(\ignorespaces\textit{Eq.\ #1}\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{{\normalfont(\ref{#1}}\normalfont)}}
\makeatother

\begin{document}

\section{Vogelpohlsche Volumenformel}
\begin{equation}
n = \frac{10^{-8} F}{6 C \cdot \eta \cdot V}
\label{eq:Example}
\end{equation}

A reference to the equation \eqref{eq:Example} is helpful.

\end{document}

在此处输入图片描述

答案3

您可以以一种相当通用的方式来做到这一点:

\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{section}

\makeatletter
% detach tags and references
\renewcommand{\eqref}[1]{\textup{\eqrefform@{\ref{#1}}}}
\let\eqrefform@\tagform@

\newcommand{\changetag}[1]{%
  \renewcommand\tagform@[1]{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}%
}
\makeatother

\begin{document}

\section{Normal}
Here is an equation
\begin{equation}
a=b\label{normal}
\end{equation}
In \eqref{normal} we see something.

\changetag{\textit{Eq.\ #1}}

\section{Changed}
Here is an equation
\begin{equation}
x=y\label{changed}
\end{equation}
In \eqref{changed} we see something.

\end{document}

在此处输入图片描述

当然,在普通文档中您会为标签选择单一格式。

参数\changetag是您想要的格式,其中#1代表方程编号。

\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{section}

\makeatletter
% detach tags and references
\renewcommand{\eqref}[1]{\textup{\eqrefform@{\ref{#1}}}}
\let\eqrefform@\tagform@

\newcommand{\changetag}[1]{%
  \renewcommand\tagform@[1]{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}%
}
\makeatother

\changetag{\textit{Eq.\ #1}}

\begin{document}

\section{First}
Here is an equation
\begin{equation}
a=b\label{a}
\end{equation}
In \eqref{a} we see something.

\section{Second}
Here is an equation
\begin{equation}
x=y\label{b}
\end{equation}
In \eqref{b} we see something.

\end{document}

在此处输入图片描述

相关内容