我怎样才能创建像 \tag 这样的命令,但用于章节编号?

我怎样才能创建像 \tag 这样的命令,但用于章节编号?

命令\tag允许amsmath为方程提供自定义标签,该标签用于所有对该方程的引用(例子我正在对一本书进行 T E Xing,这本书的章节编号为 1、∞、2、3、…,因此定义一个\chaptertag命令并像这样使用它会很方便:

% what I'm hoping to do
\documentclass{amsbook}
\numberwithin{equation}{section}
\newtheorem{thm}[equation]{Theorem}
% I don't know how to do this
\newcommand{\chaptertag}[1]{ ... }

\begin{document}

\chapter{Integration}
\chaptertag{\ensuremath{\infty}}

\section{Stokes' theorem}
\begin{thm}[Stokes]
If $M$ is a compact, smooth manifold-with-boundary and $\omega \in
\Omega^{n-1}(M)$, then
\begin{equation}
\int_M d\omega = \int_{\partial M} \omega.
\end{equation}
\end{thm}

\end{document}

以下是预期的输出:

在此处输入图片描述

我知道还有其他方法可以做到这一点(我使用 的变体制作了上面的屏幕截图\fnsymbol),但我对 -like 命令感兴趣,\tag因为它可以更轻松地重新排序章节。

总之,我怎样才能定义一个\chaptertag行为类似\tag但用于章节编号的命令?

答案1

需要在相关章节之前立即重新定义\thechapter\thesection,并且需要在下一章节之前立即恢复默认定义。如果您有多个具有特殊“编号”的章节,建议定义宏(在下面的示例中称为\specialform\defaultform),以收集与重新定义相关的宏。

在此处输入图片描述

\documentclass{amsbook}
\numberwithin{equation}{section}
\newtheorem{thm}[equation]{Theorem}

\newcommand\specialform[1]{%
   \let\savechapter\thechapter
   \renewcommand\thechapter{#1}
   \let\savesection\thesection
   \renewcommand\thesection{\thechapter.\arabic{section}}
   \addtocounter{chapter}{-1}}
\newcommand\defaultform{%
   %% revert to original forms
   \renewcommand\thechapter{\savechapter}
   \renewcommand\thesection{\savesection}}

\begin{document}
\chapter{In the beginning}
\dots

\specialform{$\infty$}

\chapter{Integration}     \label{ch:int}
\section{Stokes' Theorem} \label{sec:stokes}
\begin{thm}[Stokes]       \label{thm:stokes}
If $M$ is a compact, smooth manifold-with-boundary and $\omega \in
\Omega^{n-1}(M)$, then
\begin{equation}          \label{eq:omega}
\int_M d\omega = \int_{\partial M} \omega.
\end{equation}
\end{thm}

Chapter \ref{ch:int}, section \ref{sec:stokes}, theorem \ref{thm:stokes}, equation \eqref{eq:omega}


\defaultform

\chapter{Next}
\section{Pythagoras}
\begin{thm}[Pythagoras]
We have 
\begin{equation} \label{eq:pyth}
a^2+b^2=c^2\,.
\end{equation}
\end{thm}

\end{document}

相关内容