我来找你是因为我在重新定义命令时遇到了问题。
在这种情况下,我试图更改数学方程的编号。问题是在“Eq”之前和引用“a”(粗体)之前添加了一个空格,如下所示。
我在网上寻找解决这个问题的方法。所以我输入了“\ignorespaces”,但问题仍然存在……
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[leqno]{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lipsum}
\usepackage[french]{babel}
\usepackage[showframe]{geometry}
\makeatletter
\renewcommand\theequation{
\ignorespaces\@alph\c@equation
}
\renewcommand\tagform@[1]{
\maketag@@@{
\ignorespaces Eq.~\ignorespaces#1.\unskip\@@italiccorr
}
}
% reference
\renewcommand{\eqref}[1]{
\ignorespaces\ref{#1}
}
\makeatother
\begin{document}
\chapter{First chapter}
\section{Section 1}
\lipsum[1]
\begin{align}
f(x) = x^2 + \frac{1}{\sqrt[3]{x}}
\label{eq1}
\end{align}
\textbf{See equation \ref{eq1}.}
\lipsum[2]
\begin{align}
g(x) = x^3 + \frac{4}{\sqrt{x}}
\label{eq2}
\end{align}
\end{document}
你知道该怎么解决吗?我确信这是一个愚蠢的解决方案,但现在我还没想出来。
答案1
无需重新发明轮子:您可以使用命令\newtagform
来执行此操作mathtools
,该命令会加载amsmath
。
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[leqno]{mathtools}
\usepackage{lipsum}
\usepackage[french]{babel}
\usepackage[showframe]{geometry}
\renewcommand{\theequation}{\alph{equation}}
\newtagform{alph}[Eq. ]{}{}
\usetagform{alph}
\begin{document}
\chapter{First chapter}
\section{Section 1}
\lipsum[1]
\begin{align}
f(x) = x^2 + \frac{1}{\sqrt[3]{x}}
\label{eq1}
\end{align}
\textbf{See equation \ref{eq1}.}
\section{Section 2}
\lipsum[2]
\begin{align}
g(x) = x^3 + \frac{4}{\sqrt{x}}
\label{eq2}
\end{align}
\end{document}
答案2
根据@egreg的评论进行编辑:(感谢@egreg)
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[leqno]{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lipsum}
\usepackage[french]{babel}
\usepackage[showframe]{geometry}
\makeatletter
\renewcommand\theequation{%
\@alph\c@equation
}
\renewcommand\tagform@[1]{%
\maketag@@@{%
Eq.~\ignorespaces#1.\unskip\@@italiccorr
}%
}
% reference
\renewcommand{\eqref}[1]{%
\ref{#1}%
}
\makeatother
\begin{document}
\chapter{First chapter}
\section{Section 1}
\lipsum[1]
\begin{align}
f(x) = x^2 + \frac{1}{\sqrt[3]{x}}
\label{eq1}
\end{align}
\textbf{See equation \ref{eq1}.}
\lipsum[2]
\begin{align}
g(x) = x^3 + \frac{4}{\sqrt{x}}
\label{eq2}
\end{align}
\end{document}
%
在行末添加一些s,如下所示:
如果你不加注释就保留它们,这些标记将被视为空格。
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[leqno]{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lipsum}
\usepackage[french]{babel}
\usepackage[showframe]{geometry}
\makeatletter
\renewcommand\theequation{%
\ignorespaces\@alph\c@equation
}
\renewcommand\tagform@[1]{%
\maketag@@@{%
\ignorespaces Eq.~\ignorespaces#1.\unskip\@@italiccorr
}%
}
% reference
\renewcommand{\eqref}[1]{%
\ignorespaces\ref{#1}%
}
\makeatother
\begin{document}
\chapter{First chapter}
\section{Section 1}
\lipsum[1]
\begin{align}
f(x) = x^2 + \frac{1}{\sqrt[3]{x}}
\label{eq1}
\end{align}
\textbf{See equation \ref{eq1}.}
\lipsum[2]
\begin{align}
g(x) = x^3 + \frac{4}{\sqrt{x}}
\label{eq2}
\end{align}
\end{document}
上述代码应该可以工作