![使用 \textsuperscript 在 amsart 文档中的连续脚注之间添加逗号](https://linux22.com/image/247002/%E4%BD%BF%E7%94%A8%20%5Ctextsuperscript%20%E5%9C%A8%20amsart%20%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84%E8%BF%9E%E7%BB%AD%E8%84%9A%E6%B3%A8%E4%B9%8B%E9%97%B4%E6%B7%BB%E5%8A%A0%E9%80%97%E5%8F%B7.png)
我正在尝试在文档中连续的脚注标记之间插入逗号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,而不是ams
bug。尝试一下
\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@size
ie \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}$
两个或更多脚注之间即可。
欢喜吧!:-)