为什么不缩放包含文本的元素

为什么不缩放包含文本的元素

\resizebox为什么使用、和类似命令来缩放包含文本的元素(例如表格)不是一个好主意\scalebox

(我找不到有关此问题的现有问题,但我经常在评论中提到它,因此我认为提出一个可以轻松链接到的问题可能是个好主意)

答案1

对于好的字体来说,不同的字体大小不仅大小不同,而且字母的实际形状也不同。

请考虑以下示例:

\documentclass{article}
\usepackage{adjustbox}

\begin{document}

\resizebox{3cm}{!}{\tiny Q}
\resizebox{3cm}{!}{\Huge Q} 

\end{document} 

在此处输入图片描述

可以看出,字母的形状不同。对于小字体,笔画比大字体更粗。这确保小符号仍然可读。

如果仅仅缩放字体,字母的大小会从当前字体大小改变,但字母的形状不会改变。

为了获得最佳效果,最好选择合适的字体大小,而不是缩放包含文本的元素。

答案2

缩放包含文本的元素将导致字体大小与文档的其余部分不一致。

特别是自动缩放以使表格适合文本宽度(\resizebox{\textwidth}{!}{...})将确保每个表格都有不同的字体大小,看起来很混乱。

答案3

仅适用于具有不同光学尺寸的字体,例如 Latin Modern 为 5pt 和 17 pt。如果没有这样的字体文件,您将得到相同的结果。例如 Libertinus:

\documentclass{article}
\usepackage{graphicx}
\usepackage[T1]{fontenc}
\begin{document}

\resizebox{3cm}{!}{\tiny Q}
\resizebox{3cm}{!}{\Huge Q} 

\fontfamily{LibertinusSerif-LF}\selectfont
\resizebox{3cm}{!}{\tiny Q}
\resizebox{3cm}{!}{\Huge Q} 

\end{document}

在此处输入图片描述

嵌入的字体为:

bash-3.2$ pdffonts document.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
DJAQCM+LMRoman5-Regular              Type 1C           WinAnsi          yes yes yes      4  0
OQYFCQ+LMRoman17-Regular             Type 1C           WinAnsi          yes yes yes      5  0
AJPGYT+LibertinusSerif               Type 1C           WinAnsi          yes yes yes      6  0
OWXLSH+LMRoman10-Regular             Type 1C           WinAnsi          yes yes yes      7  0

相关内容