我用
\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}