我尝试在 align* 环境中将多个脚注放在等号上。使用一个脚注,这很容易:
\begin{align*}
x\overset{\footnotemark}{=}y
\end{align*}
\footnotetext{Comment1}
没关系。所以,我认为当我添加更多脚注时,LaTeX 会自动理解我:
\begin{align*}
x\overset{\footnotemark}{=}y\overset{\footnotemark}{=}z
\end{align*}
\footnotetext{Comment1}
\footnotetext{Comment2}
但当然没有。过了一会儿我修改了它:
\begin{align*}
x\overset{\footnotemark[1]}{=}y\overset{\footnotemark[2]}{=}z
\end{align*}
\footnotetext[1]{Comment1}
\footnotetext[2]{Comment2}
而且它成功了!有点……首先,我使用的是 hyperref,而这些脚注没有链接。其次,当我尝试创建新的脚注时:
\begin{align*}
x\overset{\footnotemark[1]}{=}y\overset{\footnotemark[2]}{=}z
\end{align*}
\footnotetext[1]{Comment1}
\footnotetext[2]{Comment2}
And now for something completely different\footnote{Python, M.}.
它把编号弄乱了。
此外,手动插入脚注不会打印它们:
\begin{align*}
x\overset{\footnote{Comment1}}{=}y\overset{\footnote{Comment2}}{=}z
\end{align*}
(有链接,但没有脚注)。
有没有什么巧妙的方法可以做我想做的事?
答案1
如果不需要超链接,那么这样使用stackengine
就足够了:
\documentclass{article}
\usepackage{stackengine}
\usepackage{hyperref}
\textheight 1.5in
\stackMath
\begin{document}
\[
y \stackon[1.5pt]{=}{\setstackgap{S}{0.5pt}%
\Shortstack{\footnotemark[1] \footnotemark[2] \footnotemark[3]}} x
\footnotetext[1]{Comment 1}
\footnotetext[2]{Comment 2}
\footnotetext[3]{Comment 3}
\]
\end{document}
就超链接而言,我可以编译以下代码:
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{hyperref}
\textheight 1.5in
\stackMath
\begin{document}
\[
y \stackon[1.5pt]{=}{\Shortstack{\footnote{Comment 1}\\\footnote{Comment 2}}} x
\]
\end{document}
尽管超链接出现在等号上方,但其编号错误,并且没有指向页面底部的任何有意义的文本。