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