我的出版商要求我使用特定的字体大小和行高:
- 常规文本:字体大小:10pt,行高:12pt
- 脚注:字体大小:8pt,行高 10pt
如何在 LaTeX 中实现这一点?我在 koma 脚本中使用 scrbook 类。字体可以指定为 koma 脚本选项:
\documentclass[10pt]{scrbook}
非常感谢您的帮助。
答案1
使用字体大小选项时,10pt
常规文本大小已经是 10pt,基线跳过 12pt。所以不需要这样做。脚注大小也已经是 8pt,但基线跳过 8.5pt,而不是想要的 9pt。您可以对其进行修补,以更改基线跳过:
\documentclass[fontsize=10pt]{scrbook}
\usepackage{blindtext}
\usepackage{xpatch}
\xpatchcmd{\footnotesize}{{9.5pt}{10pt}}{}{\patchfailed}
\begin{document}
\blindtext\footnote{\blindtext}
\end{document}
但请注意:出版商通常使用每点 1/72 英寸,而 TeX 使用 1 pt = 1/72.27 英寸(1 bp = 1/72 英寸)。差异很小。尽管如此,它还是存在的。所以也许你想使用(但我不会):
\documentclass[fontsize=10bp]{scrbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{blindtext}
\makeatletter
\renewcommand*{\footnotesize}{%
\@setfontsize\footnotesize{8bp}{10bp}%
\abovedisplayskip 6bp \@plus2bp \@minus4bp
\abovedisplayshortskip \z@ \@plus1bp
\belowdisplayshortskip 3bp \@plus1bp \@minus2bp
\def\@listi{\leftmargin\leftmargini
\topsep 3bp \@plus1bp \@minus1bp
\parsep 2bp \@plus1bp \@minus1bp
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip
\let \@listi \@listi@footnotesize \protect \add@extra@listi {ftns}%
}
\makeatother
\begin{document}
\blindtext\footnote{\blindtext}
\end{document}
使用的原因lmodern
是:您需要一个可缩放的字体才能真正获得 10bp 和 8bp 的字体大小。默认字体不可扩展。因此您至少需要包fix-cm
,但我更喜欢lmodern
。
scrsize10pt.clo
您可以复制并重命名为 ,而不是将新的字体大小定义放入文档序言中。然后根据需要mysize10bp.clo
编辑和更改所有字体大小。要使用此方法,您必须使用mysize10bp.clo
mysize10bp.clo
scrsize10pt.clo
\makeatletter
\def\@fontsizefilebase{mysize}
\makeatother
\documentclass[fontsize=10bp]{scrbook}
答案2
如果要求是针对整个文档,我不明白为什么修改正常尺寸会有问题。
\documentclass[10pt]{scrbook}
\usepackage{lipsum}
\makeatletter
\g@addto@macro\footnotesize{%
\fontsize{8pt}{10pt}\selectfont%
}
\g@addto@macro\normalsize{%
\fontsize{10pt}{12pt}\selectfont%
}
\makeatother
\begin{document}
\lipsum*[1]\footnote{\lipsum*[2]}
\lipsum*[3]\footnote{\lipsum*[4]}
\end{document}
另外有趣的可能是grid
包裹。