使用 relsize 获取精确的字体大小

使用 relsize 获取精确的字体大小

我正在对一本使用 XeLaTeX 编写的书的呈现方式进行微调,准备将其发送给打印机。这本书有很多表格,它们的格式都相同。其中一张表格的列标题有点太宽了,我想稍微调整一下字体大小,让它们周围留出更多空间,但又不会让它们明显变小。我试图\textscalerelsize包可以做到这一点,但我发现它不允许任意缩放字体。以下是显示此情况的 MWE:

\documentclass[10pt]{article}
\usepackage{relsize}

\begin{document}
Test
\textscale{0.95}{Test}
\textscale{0.85}{Test}
\textscale{0.849}{Test}
\end{document}

当我使用 编译此文件时xelatex,第二个和第三个“测试”看起来大小相同,而第三个和第四个之间有明显差异,尽管第三个应该比第二个小 10% 以上,而第四个应该仅小 0.1%,这不应该是可察觉的。查看 PDF 输出,似乎它们分别被四舍五入为 10pt、9pt、9pt 和 8pt。有没有办法在不进行四舍五入的情况下实现这一点?

答案1

relsize是选择最接近的标准尺寸\small,或者\footnotesize在两种情况下获得相同的尺寸。更简单的scalefnt包只是按照您的要求执行。

在此处输入图片描述

\documentclass[10pt]{article}
\usepackage{scalefnt}
\showoutput
\begin{document}
Test
\scalefont{0.95}{Test}
\scalefont{0.85}{Test}
\scalefont{0.849}{Test}
\end{document}

请注意,当您更改字体时,您仍然会在视觉上看到 8.5pt 左右的差异,默认声明lm

\DeclareFontShape{TU}{lmr}{m}{n}%
  {<-5.5>    \UnicodeFontFile{lmroman5-regular}{\UnicodeFontTeXLigatures}
   <5.5-6.5> \UnicodeFontFile{lmroman6-regular}{\UnicodeFontTeXLigatures}
   <6.5-7.5> \UnicodeFontFile{lmroman7-regular}{\UnicodeFontTeXLigatures}
   <7.5-8.5> \UnicodeFontFile{lmroman8-regular}{\UnicodeFontTeXLigatures}
   <8.5-9.5> \UnicodeFontFile{lmroman9-regular}{\UnicodeFontTeXLigatures}
   <9.5-11>  \UnicodeFontFile{lmroman10-regular}{\UnicodeFontTeXLigatures}
   <11-15>   \UnicodeFontFile{lmroman12-regular}{\UnicodeFontTeXLigatures}
   <15-> \UnicodeFontFile{lmroman17-regular}{\UnicodeFontTeXLigatures}
   }{}

因此在最后两种情况下,您会看到 8pt 设计字体和 9pt 设计字体分别缩放到大约 8.5pt。

相关内容