用带星号的罗马数字列举具体方程式

用带星号的罗马数字列举具体方程式

我正在起草一份包含重要方程组的文件,我想用罗马数字来枚举它们以突出显示。我考虑过使用子方程环境,但我不知道如何实际更改特定方程组的枚举和样式。此外,之后我想从当前系统派生出一个新系统,并且我想用罗马数字枚举新系统,并在罗马数字右侧添加星号(星号)。我无法通过网络搜索找到答案。我感谢所有帮助者提供的任何帮助。

答案1

(我已经更新了答案,以处理这种可能性——原帖没有提到,但可能对至少一些读者有一定意义——超链接包已加载,并且需要从交叉引用到方程式以及相应方程式的正确超链接。)

在以下解决方案中,我假设hyperref包已加载。如果此假设不正确,则应删除所有实例\renewcommand\theHequation{...}

这里采用的解决方案通过 (a) 将方程计数器重置为0(或任何适当的值)、(b)\theequation根据需要重新定义宏以及 (c) 重新定义宏来创建罗马数字和罗马数字加星号方程“数字\theHequation”。如果您的文档未加载该包,则不需要第三步hyperref。此外,该解决方案还定义了实用程序宏\SaveEqCtr\RestoreEqCtr允许在方程编号的普通形式和特殊形式之间来回切换。

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath}  % for gather environment
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional
\usepackage{cleveref} % for \cref macro

% Create a new counter, to enable toggling back and forth 
%   between ordinary and special forms of equation counters
\newcounter{SaveEqnCntr}
\newcommand\SaveEqCtr{\setcounter{SaveEqnCntr}{\value{equation}}}
\newcommand\RestoreEqCtr{\setcounter{equation}{\value{SaveEqnCntr}}}

\begin{document}

\begin{equation} 
     0+0=0 \label{a} 
\end{equation}
\SaveEqCtr  % Store the current value of 'equation' counter (=1)

\begingroup % Limit the scope of the next few directives to the current TeX group
\setcounter{equation}{0}
%% Display equation counter using Roman numerals:
\renewcommand\theequation{\Roman{equation}} 
%% If you use 'hyperref', choose a unique identifier, e.g., 
%%   the string 'AA', to redefine the '\theHequation' macro
\renewcommand\theHequation{AA\arabic{equation}} 
\begin{gather} 
     1+1=2 \label{b}  \\ 
     1+2=3 \label{c}  \\
     2+1=3 \label{d}
\end{gather}
\endgroup

\RestoreEqCtr % restore 'standard' form of equation counter
\begin{equation} 
     2+2=4 \label{e} 
\end{equation}
\SaveEqCtr    % Store the current value of 'equation' counter (=2)

\begingroup % Limit the scope of the next few directives to the current TeX group
\setcounter{equation}{0}
%% Display equation counter using Roman numerals plus a 'star'
\renewcommand\theequation{\Roman{equation}$^{\star}$}
%% If you use 'hyperref', choose a unique identifier, e.g., 
%%   the string 'BB', to redefine the '\theHequation' macro
\renewcommand\theHequation{BB\arabic{equation}}
\begin{gather} 
     3+3=6 \label{f} \\ 
     3+4=7 \label{g} \\
     4+3=7 \label{h}
\end{gather}
\endgroup

\RestoreEqCtr % restore 'standard' form of equation counter
\begin{equation} 
     4+4=8 \label{i} 
\end{equation}

\noindent
Cross-references to \cref{b,c,d}, \cref{f,g,h}, and \cref{a,,e,,i}.
\end{document}

答案2

我会使用\tag。毕竟,您只有一组特殊的方程式,并且每个方程式都需要一个标签。

使用(修改)Mico 的代码

\documentclass{article}
\usepackage{amsmath}  % for gather environment
\usepackage{cleveref} % for \cref macro

\newcounter{maineq}
\renewcommand{\themaineq}{\Roman{maineq}}
\NewDocumentCommand{\maineq}{sm}{%
  \IfBooleanTF{#1}{% call is \maineq*
    \tag{\ref{#2}*}\label{#2*}%
  }{% no *
    \stepcounter{maineq}%
    \tag{\themaineq}\label{#2}%
  }%
}


\begin{document}

Cross-references to \cref{good,bad,ugly} and to
\cref{good*,bad*,ugly*}

\begin{equation} 0+0=0 \label{a} \end{equation}

\begin{gather} 
  1+1=2 \maineq{good} \\ 
  1+2=3 \maineq{bad} \\
  2+1=3 \maineq{ugly}
\end{gather}

\begin{equation} 2+2=4 \label{e} \end{equation}

\begin{gather} 
  3+3=6 \maineq*{good} \\ 
  3+4=7 \maineq*{bad} \\
  4+3=7 \maineq*{ugly}
\end{gather}

\begin{equation} 4+4=8 \label{i} \end{equation}

\end{document}

在此处输入图片描述

使用cleveref不是强制性的,使用 进行交叉引用\ref也同样有效。无论如何,如果您使用hyperref,您可能需要将 的定义更改为\ref,准确地说\maineq\ref*

\NewDocumentCommand{\maineq}{sm}{%
  \IfBooleanTF{#1}{% call is \maineq*
    \tag{\ref*{#2}*}\label{#2*}%
  }{% no *
    \stepcounter{maineq}%
    \tag{\themaineq}\label{#2}%
  }%
}

如果不这样做,带星号的方程式中的标签将是指向原始方程式的超链接。

作为奖励,如果您再次使用\maineq*{good*},您将获得两个星号。

相关内容