命令\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}