我想将“FP6”排版为小写字母。将{\sc fp6}
字母排版正确无误,但数字 6 太高了,结果看起来很丑。
使数字具有适合小型大写字母的高度的最佳解决方法是什么?
(如果相关的话,我正在使用iopart
我认为使用 Computer Modern 的课程。)
答案1
在其他条件相同的情况下,您可能正在使用 Computer Modern Roman,这并不是因为iopart
已加载它,而是因为如果您未明确指定任何其他字体,它就是默认字体。(您的 pdf 阅读器可以为您确认这一点。通常,您需要做的就是打开文档,然后根据阅读器查看“属性/字体”。查找字体名称,如“CMR10”(CM 10pt roman)和“CMCSC10”(CM 10pt small caps)。)
您的问题有很多解决方案。除了 Niel 指出的明确重新缩放内衬数字(但请注意“伪造”小写字母不会让您陷入不良的字距调整问题)外,最简单的两个方法是:
如果您希望使用现代计算机,请使用
\oldstylenums
将普通的“衬线”(大写)数字转换为“旧式”(“文本”或小写)数字。例如。\textsc{fp}\oldstylenums{6}
但请注意,一些 CMR 旧式数字看起来不像您想要的 osf(数字“6”恰好是其中之一)。或者,您可能更喜欢不同字体提供的旧式图形的外观和感觉。但是,并非每种字体都提供这些功能(即,
\oldstylenums
在使用大多数其他非 CMR 字体时,您可能需要应用该命令)。
以下代码可能有助于检查许多打开文本图形的字体。假设每种字体都已加载到您的系统中,只需逐一取消注释并重新注释下面每一行注释,然后编译每一行以查看您最喜欢哪种外观和感觉。但请注意,此技术排版全部文档中的数字将以旧样式显示。不过,这意味着您不需要\oldstylenums
随时应用该命令。
\documentclass{article}
\usepackage[T1]{fontenc}
%\usepackage[sc,osf]{mathpazo} % Palatino with pazo math fonts
%\renewcommand*\rmdefault{pplx} % Palatino with lining (uppercase) nums
%\renewcommand*\rmdefault{pplj} % Palatino with text (lowercase or oldstyle) nums
%\usepackage[osf]{venturis}
%\usepackage[osf]{libertine}
%\usepackage[osf]{MinionPro}
%\usepackage[fulloldstylenums]{kpfonts}
\begin{document}
\textsc{fp9876543210}
9876543210
\end{document}
答案2
您可以使用小型大写字母以外的方法,只需重新缩放所有文本,如下所示:
\documentclass{article}
\usepackage{scalefnt}
\newcommand\smaller[2][0.85]{{\scalefont{#1}#2}}
\begin{document}
\textsc{small caps} and \smaller[0.76]{ALLCAPS TEXT RESCALED BY 0.76}
are slightly different in the Roman family of Computer Modern, but not
by very much.
I like using this technique (with the default scaling above) for writing
proper names of problems and complexity classes in theoretical computer
science, such as \smaller{3-SAT} and \smaller{\sffamily NP} (compare with
3-SAT and \textsf{NP}, which attract disproportionate attention due to
their size).
\end{document}