可以连续调整大小的字体吗?

可以连续调整大小的字体吗?

为什么我们在 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 的字体系统会将请求的字体大小四舍五入为最接近的可用大小。如果您使用可缩放字体(例如psnfsstype1cm包),则将准确使用请求的字体大小。

它基本上不仅执行\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,保持所需的比例。

相关内容