XY 矩阵篡改脚注计数器

XY 矩阵篡改脚注计数器

排版以下 MWE:

\documentclass[a4paper]{report}
\usepackage[all]{xy}
\usepackage{mathtools}

\begin{document}
\arabic{footnote}
$$\arabic{footnote}\xymatrix{\arabic{footnote}0\overset{\arabic{footnote}\addtocounter{footnote}{+1}\arabic{footnote}}{=}\arabic{footnote}H_1(U\cup V)\ar[r]^{\partial} & H_0(U\cap V}\arabic{footnote}.$$
\arabic{footnote}\addtocounter{footnote}{+1}\arabic{footnote}
\end{document}

产量:

在此处输入图片描述

为什么footnote计数器在 内部发生变化xymatrix,然后在 中发生变化\overset

答案1

最好避免在数学中使用脚注。

您的示例可以简化并显示对xy每个单元格进行多次排版,确切地说是三次:

\documentclass[a4paper]{report}
\usepackage[all]{xy}
\usepackage{mathtools}

\newcounter{test}
\newcommand{\dotest}{\stepcounter{test}}

\begin{document}

\xymatrix{{}\dotest\thetest \ar[r] & X}

\end{document}

在此处输入图片描述

您可以通过将脚注从 中分离出来来避免此问题\xymatrix\xyfootnote命令不能放在 里面\[..\],因为amsmath不允许\label在同一个等式中有多个命令。

\documentclass[a4paper]{report}
\usepackage[all]{xy}
\usepackage{mathtools}

\newcommand{\xyfootnote}[2]{%
  \refstepcounter{footnote}\label{#1}%
  \footnotetext{#2}%
}
\newcommand{\xyfootnotemark}[1]{\textsuperscript{\ref{#1}}}
\newcommand{\fnequal}[1]{\overset{\text{(\ref{#1})}}{=}}

\begin{document}

\xyfootnote{testA}{This is the text of the first footnote}%
\xyfootnote{testB}{This is the text of the second footnote}%
\[
\xymatrix{A\fnequal{testA}B \ar[r] & X\xyfootnotemark{testB}}
\]

\end{document}

在此处输入图片描述

可能更倾向于\xyfootnote在里面\[...\];为此,请执行

\documentclass[a4paper]{report}
\usepackage[all]{xy}
\usepackage{mathtools}

\makeatletter
\newcommand{\xyfootnote}[2]{%
  \refstepcounter{footnote}\ltx@label{#1}%
  \footnotetext{#2}%
}
\makeatother
\newcommand{\xyfootnotemark}[1]{\textsuperscript{\ref{#1}}}
\newcommand{\fnequal}[1]{\overset{\text{(\ref{#1})}}{=}}

\begin{document}

\[
\xyfootnote{testA}{This is the text of the first footnote}%
\xyfootnote{testB}{This is the text of the second footnote}%
\xymatrix{A\fnequal{testA}B \ar[r] & X\xyfootnotemark{testB}}
\]

\end{document}

相关内容