为什么我们在 LaTeX 中只能使用有限的字体大小?现代字体完全基于矢量且可扩展 - 为什么 LaTeX 不能做到这一点?或者也许可以,但我不知道怎么做。
另请参阅问题连续大小的括号?
答案1
正如 egreg 已经评论的那样,可以加载任意大小的矢量字体。使用一小组尺寸与良好的设计关系比任何技术限制都大得多。通常,大多数文档不需要很多不同的尺寸,而是需要一小组具有明确关系的尺寸。LaTeX 常用的尺寸比率是由多年的印刷传统确定的。当然,如果您正在做文本布局的设计部分,那么您可能需要设置这些“逻辑”字体大小以映射到任意实际尺寸。
另一点是,大多数字体在不同大小下具有不同的设计特征。典型的例子是最小的字体大小,它们通常与较大的字体大小略有不同。因此,将 6 pt 字体缩放到 12 pt 可能不会产生与使用原生 12 pt 版本完全相同的结果。因此,通常最好保守地进行缩放:将 12 pt 缩放到 12.5 pt 可能没问题,但将 6 pt 缩放到 30 pt 可能就不行了。
答案2
您可以使用 small 包按一定比例缩放字体scalefnt
。它提供了\scalefont{<factor>}
执行此操作的宏。该包没有附带手册,但有一些文件内文档作为注释:
此包定义了一个命令
\scalefont
。此后,\scalefont{.75}
当前字体和基线跳过将缩放至其原始大小的 75%。可以指定任何比例因子。如果您使用基于位图字体大小的传统 fd 文件,LaTeX 的字体系统会将请求的字体大小四舍五入为最接近的可用大小。如果您使用可缩放字体(例如
psnfss
或type1cm
包),则将准确使用请求的字体大小。
它基本上不仅执行\fontsize{<factor><current font size>}{<factor><current baselineskip>}\selectfont
而且还处理可拉伸的基线跳跃(例如12pt plus 1pt minus 1pt
)。
您还可以使用 提供的宏来缩放少量文本graphicx
,即\scalebox{<factor>}{<text>}
或\resizebox{<width>}{<height>}{<text>}
(!
如果需要与另一个值一起缩放,则使用这两个值之一)。但是,结果可能并不总是符合印刷标准。
有点相关的是relsize
提供\smaller
和\larger
宏的包,通过自动更改为下一个较低或高度预定义的字体大小,使字体大小变小或变大。
答案3
另一种方法是使用 tikz(一如既往),具体取决于您要做什么。您只需要将“变换形状”选项应用于包含文本的节点。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[transform shape]
\draw \foreach \x in {0.5,0.55, ..., 1.0} {node[scale=\x,anchor=mid west] {asdf} ++(0,-0.7)}
++(1.8,0)
\foreach \x in {1.0,1.05, ..., 1.5} {++(0,0.7) node[scale=\x,anchor=mid east] {asdf}}
++(0.05,0)
\foreach \x in {1.5,1.55, ..., 2.0} {node[scale=\x,anchor=mid west] {asdf} ++(0,-0.7)}
++(3.3,0)
\foreach \x in {2.0,2.05, ..., 2.5} { ++(0,0.7) node[scale=\x,anchor=mid east] {asdf}};
\end{tikzpicture}
\end{document}
答案4
或者您可以不断调整大小geometry
,保持所需的比例。