使用 \textsuperscript 在 amsart 文档中的连续脚注之间添加逗号

使用 \textsuperscript 在 amsart 文档中的连续脚注之间添加逗号

我正在尝试在文档中连续的脚注标记之间插入逗号amsart。我尝试在不使用该footmisc包的情况下执行此操作,因为出于某种原因,它会导致我的文档中的脚注过度缩进。(我也在使用该setspace包,这似乎导致了这种过度缩进。)

\textsuperscript对于我需要处理的少数情况来说,这似乎是一个不错的解决方案。但出于某种原因,它导致第二个脚注标记被放大。例如,

\documentclass{amsart}
\begin{document}
No comma.\footnote{One.}\footnote{Two.} 
Comma, but with font enlargement.\footnote{One.}\textsuperscript{,}\footnote{Two.}
\end{document}

如果我使用 ,效果很好\documentclass{article},但amsart使用 ,效果会变大。有什么办法可以解决这个问题吗?

答案1

就像 David Carlisle 所说的那样,这似乎是 中的一个错误。您可以在文档的序言中amsart使用以下 的定义来获取文档中的较小尺寸:\@makefnmark

\makeatletter
\def\@makefnmark{%
  \leavevmode
  \raise.9ex\hbox{\fontsize\sf@size\z@\normalfont\tiny\@thefnmark}}
\makeatother

完整示例:

\documentclass{amsart}

\makeatletter
\def\@makefnmark{%
  \leavevmode
  \raise.9ex\hbox{\fontsize\sf@size\z@\normalfont\tiny\@thefnmark}}
\makeatother

\begin{document}
No comma.\footnote{One.}\footnote{Two.} 
Comma, without font enlargement.\footnote{One.}\textsuperscript{,}\footnote{Two.}
\end{document}

在此处输入图片描述

答案2

我认为这可能算作 中的一个错误amsart,但看起来第一次使用数学时,数学字体大小会重新调整。脚注标记从 6pt 变为 7pt。如果您在文档开头添加一些数学,即使是隐藏的,例如

\setbox0\hbox{$s$}

然后始终使用一致的(较大的)尺寸。

答案3

这看起来像是 LaTeX 的一个 bug,而不是amsbug。尝试一下

\documentclass{article}
\title{A Document}
\author{Author}
\begin{document}
\footnote{Test}
\makeatletter
\showthe\sf@size
\makeatother
$1+2=3$
\footnote{Test}
\end{document}

这使

\sf@size ->6

\documentclass{article}
\title{A Document}
\author{Author}
\begin{document}
\footnote{Test}
$1+2=3$
\makeatletter
\showthe\sf@size
\makeatother
\footnote{Test}
\end{document}

给出

\sf@size ->7

这是在数学模式之前,\sf@size=6但在数学模式之后\sf@size=7(由于 LaTeX 重新定义\sf@sizeie \DeclareMathSizes{\@xpt}{\@xpt}{7}{5})。

\@makefnmark现在让我们看看LaTeX 和 ams 中的定义之间的区别。在文件中latex.ltx\@makefnmark定义为

\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}

也就是说,您进入数学模式并插入脚注编号,因此\sf@size每个脚注的值为 7。

但在 ams 类中,它是这样\@makefnmark定义的

\def\@makefnmark{%
  \leavevmode
  \raise.9ex\hbox{\fontsize\sf@size\z@\normalfont\@thefnmark}%
}

也就是说,脚注编号始终以水平模式输入(您永远不会进入数学模式)。因此,如果您想知道在

\documentclass{article}
\title{A Document}
\author{Author}
\begin{document}
\footnote{Test}
$1+2=3$
\makeatletter
\showthe\sf@size
\makeatother
\footnote{Test}
\end{document}

对于第一个脚注而言\sf@size=6,但是一旦 LaTeX 看到数学模式,它就会发生变化\sf@size=7,因此下一个脚注编号将用 排版\sf@size=7。在 LaTeX 中,由于您总是在数学模式下排版脚注编号,因此\sf@size=7对于所有脚注,但在 ams 类中,由于脚注编号是在水平模式下排版的,因此一旦您排版一些数学, 的值\sf@size就会从 6 变为 7。

答案4

我正在使用一个相对简单的命令,并且效果很好:

\footnote{text--1}$^{,\thinspace}$\footnote{text--2}

如您所见,我使用“power-to-a-number”命令将逗号放到正确的位置,并在逗号后使用“thinspace”将脚注稍微分开。总而言之:只需将其放在$^{,\thinspace}$两个或更多脚注之间即可。

欢喜吧!:-)

相关内容