我有以下文件:
\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
-- 缩小三个尺寸;9pt
供12pt
选择
因此,除非您重新分配任何“替代”名称以使用不同的大小值,否则您的引用将被设置为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
文档类会自动加载amsmath
和amsfonts
包——无需通过\usepackage
语句加载它们。