定义方程式的第二种标签类型

定义方程式的第二种标签类型

我已经使用 LaTeX 几年了,但找不到与最近出现的以下问题相关的任何有用的答案:

我的论文中有几个方程式,我在附录中给出了它们的推导。由于我不想每次都写“参见附录... 中的推导”,所以我想可以在相应的方程式编号中或末尾包含一些符号。到目前为止,我想到了以下内容:

\documentclass[a5paper]{scrartcl}
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight

\usepackage{amsmath}
    \makeatletter
        \def\tagform@#1{\maketag@@@{$\langle$#1$\rangle$\@@italiccorr}}
    \makeatother
    \numberwithin{equation}{section}
    \newcommand{\apptag}{\refstepcounter{equation}\tag*{$\langle$\theequation$\rangle$*}}

\begin{document}

\section{First Section}

Some equation without derivation:
%
\begin{align}
    a + b = c
\end{align}
%
Some equation with derivation:
%
\begin{align}
    d + e = f \label{d_and_e_and_f} \apptag
\end{align}
%

\section{Second Section}

\appendix

\section{Derivations}

To find \ref{d_and_e_and_f}, note that\ldots

\end{document}

这将产生以下输出:

在此处输入图片描述 其实,这个问题有几个疑问:

  1. 这是否绕过了宏定义中的任何巧妙程序\tag?我还没有深入研究过 LaTeX深刻,但我想确保这不会在以后产生适得其反的效果。

  2. 有没有更优雅的方法来实现相同的效果,可能使用一些amsmath我不知道的功能?如您所见,我已经找到并使用了一些“更深层次”的代码来重新定义括号;我想知道如果我在相应\addstartotag等式行的末尾使用一些自定义命令(如),是否有类似的东西可以简单地将星号添加到等式编号中。

  3. 有没有办法让星号出现在与方程式对齐的假想线的右侧?

  4. 附录中\ref加了星号,但我并不需要。有什么方法可以避免这种情况吗?

提前致谢! :)

答案1

我会使用该mathtools包。它还会处理引用(即删除您插入的多余字符)。

关键在于使用不同的标签设置,更新default标签表单并创建新的标签表单,然后使用\newtagform并更新标签表单。请参阅软件包的文档以获取更多信息。

因此我的第一个答案是:

 \documentclass[a5paper]{scrartcl}
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\usepackage{amsmath}
\usepackage{mathtools}
\renewtagform{default}{$\langle$}{$\rangle^{\phantom{*}}$}
\newtagform{appendix}{$\langle$}{$\rangle^{*}$}
\numberwithin{equation}{section}
\begin{document}

\section{First Section}

Some equation without derivation:
\usetagform{default}
\begin{equation}
    a + b = c
\end{equation}
%
Some equation with derivation:
%
\usetagform{appendix}
\begin{equation}
    d + e = f \label{d_and_e_and_f} 
\end{equation}
%

\section{Second Section}

\appendix

\section{Derivations}

To find \ref{d_and_e_and_f}, note that\ldots

\end{document}

得出的结果为:

在此处输入图片描述

请注意,这与指令手动对齐\phantom

更精致的解决方案

第二种解决方案是定义新的环境来负责标签的切换:在序言中添加以下两行:

\newenvironment{mynormalequation}{\usetagform{default}\begin{equation}}{\end{equation}}
\newenvironment{myappendixequation}{\usetagform{appendix}\begin{equation}}

然后它可以被扩展:

\documentclass[a5paper]{scrartcl}
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\usepackage{amsmath}
\usepackage{mathtools}
\renewtagform{default}{$\langle$}{$\rangle^{\phantom{*}}$}
\newtagform{appendix}{$\langle$}{$\rangle^{*}$}
\newenvironment{mynormalequation}{\usetagform{default}\begin{equation}}{\end{equation}}
\newenvironment{myappendixequation}{\usetagform{appendix}\begin{equation}}{\end{equation}}
\numberwithin{equation}{section}
\begin{document}

\section{First Section}

Some equation without derivation:
%\usetagform{default}
\begin{mynormalequation}
    a + b = c
\end{mynormalequation}
%
Some equation with derivation:
%
%\usetagform{appendix}
\begin{myappendixequation}
    d + e = f \label{d_and_e_and_f} 
\end{myappendixequation}

\begin{mynormalequation}
c=d
\end{mynormalequation}

\begin{mynormalequation}
c=d+0
\end{mynormalequation}

\begin{myappendixequation}
    d + e = f +0\cdot g\label{d_and_e_and_f_andg} 
\end{myappendixequation}


\section{Second Section}

\appendix

\section{Derivations}

To find \ref{d_and_e_and_f}, note that\ldots

\end{document}

仍然屈服:

在此处输入图片描述

相关内容