将方程编号放在左边距

将方程编号放在左边距

我用

\renewcommand{\theequation}{{\hspace*{-3.05cm}\thesection.\arabic{equation}}}

将我的公式编号移到边距(公司设计),它看起来像这样:

边距中的方程编号

问题是,显然这个命令也用于在文本中进行引用,所以当我这样做时,(\ref{equation:label})我得到了这个:

不良引用

如您所见,后面的所有内容(都向左拉了 3.05 厘米,如上所定义。有没有办法让引用和方程式环境对方程式编号使用不同的命令,以便我可以按照我需要的方式定义它们?

编辑

以下是 MWE:

\documentclass[leqno,11pt,parskip,oneside]{scrartcl}
\usepackage[left=5.6cm,right=2.2cm,top=5.5cm,bottom=3.55cm,headsep=1.9cm]{geometry}
\usepackage{mathtools}
\usepackage[hyperref]{xcolor}
\usepackage{chngcntr}

\counterwithin*{equation}{section}

% remove brackets from equation numbers
\newtagform{brackets}{}{}
\usetagform{brackets}

% Equation numbers
\renewcommand{\theequation}{{\fontsize{8bp}{8bp}\selectfont\hspace*{-3.05cm}\thesection.\arabic{equation}}}

\begin{document}
\section{TestSection}
\begin{equation}
a = b+c
\label{test}
\end{equation}

This is a reference (\ref{test})

\end{document}

答案1

正如您所使用,mathtools您已经拥有了所需的所有工具(!)。您甚至调用了正确的宏,\newtagform--您可以在其中指定标签的格式:

\newtagform{brackets}{\hspace*{-3.05cm}\fontsize{8bp}{8bp}\selectfont}{}

这样做时,你需要小心\eqref(因为它的使用\tagform@就像@DavidCarlisle 的解决方案中那样被重新定义;只是花费更少的努力;)

您可以使用 Davids 解决方案的补丁来修复此问题或定义自定义命令:

\newcommand{\myeqref}[1]{\textup{(\ref{#1})}}

省略了\tagform@。或者您也可以将\renewcommand\eqref其本身改为这种形式(应该不会有害,但我现在不能肯定地说)。

输出完整代码

完整代码

\documentclass[leqno,11pt,parskip,oneside]{scrartcl}
\usepackage{lipsum}
\usepackage[left=5.6cm,right=2.2cm,top=5.5cm,bottom=3.55cm,headsep=1.9cm]{geometry}
\usepackage{mathtools}
  \newtagform{brackets}{\hspace*{-3.05cm}\fontsize{8bp}{8bp}\selectfont}{}
  \usetagform{brackets}
  \renewcommand{\theequation}{\thesection.\arabic{equation}}
\usepackage[hyperref]{xcolor}
\usepackage{chngcntr} 
  \counterwithin*{equation}{section}

\newcommand{\myeqref}[1]{\textup{(\ref{#1})}}% or
%\renewcommand{\eqref}[1]{\textup{(\ref{#1})}}

%for testing purposes
\DeclareMathOperator{\dop}{d}
\DeclareMathOperator{\spot}{spot}
\DeclareMathOperator{\low}{lower}

\setcounter{section}{6}

\begin{document}
\section{Test section}
\lipsum[1]    
\begin{equation}\label{test}
\dop^2_p = 2\cdot\dop^2_{\spot}\cdot\bigg(\frac{\Phi}{\Phi_{\low}}\bigg)
\end{equation}    
This is a reference \myeqref{test}. \lipsum[2]
\end{document}

答案2

\theequation以这种方式重新定义是错误的。LaTeX\thezzzz宏应该可以安全地扩张在目录和其他扩展上下文中格式化只是号码。

定位数字的代码应该在其他地方。如果您正在使用,amsmath那么重新定义的宏是\maketag@@@

具有默认定义

\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}

现在 MWE 已提供:

\documentclass[leqno,11pt,parskip,oneside]{scrartcl}
\usepackage[left=5.6cm,right=2.2cm,top=5.5cm,bottom=3.55cm,headsep=1.9cm]{geometry}
\usepackage{mathtools}
\usepackage[hyperref]{xcolor}
\usepackage{chngcntr}

\counterwithin*{equation}{section}

% remove brackets from equation numbers
\newtagform{brackets}{}{}
\usetagform{brackets}

% Equation numbers
\renewcommand{\theequation}{\thesection.\arabic{equation}}

\makeatletter
\let\oldmaketag@@@\maketag@@@
\def\oldtagform@#1{\oldmaketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{\oldtagform@{\ref{#1}}}}
\def\maketag@@@#1{\hbox{\hskip1sp\m@th\llap{%
\fontsize{8bp}{8bp}\normalfont\normalcolor
\normalfont#1\hspace{3.05cm}%
}}}
\makeatother

\begin{document}
\section{TestSection}
\begin{equation}
a = b+c
\label{test}
\end{equation}

This is a reference (\ref{test})


This is a reference \eqref{test}

\end{document}

相关内容