使用 amsplain 的参考文献的字体大小(以 pt 为单位)

使用 amsplain 的参考文献的字体大小(以 pt 为单位)

我有以下文件:

\documentclass[12pt]{amsart}
\usepackage[leqno]{amsmath}
\usepackage[margin=1in]{geometry}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
Hello world!
\bibliographystyle{amsplain}
\begin{thebibliography}{13}
\bibitem[1]{1}
 A. Einstein. ``The theory of everything''.
\end{thebibliography}
\end{document}

我想确保参考文献中的文本是 10 pt 字体。我读到过 amsplain 默认使用 \footnotesize,当使用 amsart 12 pt 时,它会转换为 10 pt。但是,我担心我的特定设置是否实际上不会产生 amsplain 使用的默认 10 pt 字体。

答案1

在使用 时,参考资料部分中的打印大小amsart是在环境中定义的thebibliography,而不是由 定义的amsplain。此外,它以用户可修改的方式定义,通过命令\bibliofont,该命令(在 中amsart)默认为\footnotesize

进一步调查表明,\footnotesize等于\Small,其(以amsart)遵循所有 AMS 文档类别共有的大小进程:

  • \normalsize-- 默认为,10pt除非被\documentclass选项覆盖(您已指定12pt

  • \small-- 缩小一号;因为12pt这是11pt(在现代计算机体系中实际上是 10.95pt)

  • \Small-- 减小两个尺寸,默认值为\footnotesize;因为12pt 这是10pt您要查找的,除非\footnotesize已重新分配

  • \SMALL-- 缩小三个尺寸;9pt12pt选择

因此,除非您重新分配任何“替代”名称以使用不同的大小值,否则您的引用将被设置为10pt类型。

答案2

我使用了etoolbox并将该命令附加到\thebibliography\fontsize{10}{15}\selectfont命令。

\documentclass[12pt]{amsart}
\usepackage[leqno]{amsmath}
\usepackage{etoolbox}%
\usepackage[margin=1in]{geometry}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}

\apptocmd{\thebibliography}{\fontsize{10}{15}\selectfont}{}{}%
\begin{document}
Hello world!
\bibliographystyle{amsplain}
\begin{thebibliography}{13}
\bibitem[1]{1}
 A. Einstein. ``The theory of everything''.
\bibitem[2]{1}
 S. Cooper. ``Penny, Penny, Penny''.
\end{thebibliography}
\end{document}

在此处输入图片描述

答案3

如果您想随时了解当前字体,可以使用以下技巧:

\newcommand{\whatsthefont}{%
  \begingroup\edef\x{\endgroup
  \noexpand\texttt{\expandafter\string\the\font=\fontname\font}}\x
}

确保\edef在字体尚未更改为用于排版字符串的打字机字体时扩展\expandafter\string\the\font和。请注意,表示当前字体的内部字体标识符,扩展为与当前字体对应的 TFM 文件的名称。\fontname\font\the\font\fontname\font

完整示例

\documentclass[12pt]{amsart}
\usepackage[leqno]{amsmath}
\usepackage[margin=1in]{geometry}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}

\newcommand{\whatsthefont}{%
  \begingroup\edef\x{\endgroup
  \noexpand\texttt{\expandafter\string\the\font=\fontname\font}}\x
}

\begin{document}
Hello world!

\whatsthefont

\begin{thebibliography}{13}
\bibitem[1]{1}  \whatsthefont
\end{thebibliography}
\end{document}

在此处输入图片描述

因此,您会看到,在参考书目中选择了十点字体。

添加“\usepackage{newtxtext}”后也一样:

在此处输入图片描述

答案4

首先是好消息:如果您使用amsart带有类选项的文档类12pt,则参考书目部分中的材料确实将被设置为10pt

确定这个结果需要一点侦查。如果我们深入研究该文件amsart.cls(定义 amsart 文档类),就会发现以下环境定义bibliography

\newenvironment{thebibliography}[1]{%
  % ... (details irrelevant)
  \normalfont\bibliofont % ... (details irrelevant)
  % ... (details irrelevant)

\bibliofont其中几行之前被定义为

\newcommand{\bibliofont}{\footnotesize}

在同一个文件中,\footnotesize通过指令设置\def\footnotesize{\Small},并\Small通过以下方式定义

\DeclareRobustCommand{\Small}{\@xsetfontsize\Small 4%
   %% ... further details irrelevant
}

\@xsetfontsize宏接受两个参数,其定义相当密集,如下所示

\def\@xsetfontsize#1#2{%
  \chardef\@currsizeindex#2\relax
  \edef\@tempa{\@nx\@setfontsize\@nx#1%
    \@xp\ifcase\@xp\@currsizeindex\@typesizes
      \else{99}{99}\fi}%
  \@tempa
}

正如我所说,这有点复杂。这段代码中最相关的宏是\@typesizes,对于12pt文档类选项,其定义如下:

\DeclareOption{12pt}{\def\@mainsize{12}\def\@ptsize{2}%
  \def\@typesizes{%
    \or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
    \or{\@xiipt}{14}% normalsize
    \or{\@xivpt}{17}\or{\@xviipt}{20}\or{\@xxpt}{24}%
    \or{\@xxvpt}{30}\or{\@xxvpt}{30}}%
  \normalsize \linespacing=\baselineskip
}

这一系列\or语句是解决难题的关键:由于的第二个参数\Small是“4”,因此第四条件为真,即{10}{12}字体大小和基线跳过。

唷!

顺便说一句,amsart文档类会自动加载amsmathamsfonts包——无需通过\usepackage语句加载它们。

相关内容