固定行高

固定行高

我的出版商要求我使用特定的字体大小和行高:

  • 常规文本:字体大小: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.clomysize10bp.closcrsize10pt.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包裹。

相关内容