节奏:scrartcl 中 parskip 和 baselineskip 的值不同

节奏:scrartcl 中 parskip 和 baselineskip 的值不同

我正在编写一些小型演示文件,每个文件都试图实现 Bringhurst 的一条具体建议印刷风格的元素。他建议保持页面的垂直节奏,并在必要时返回。这样做的效果之一是对页上的行处于相同的深度。

我想了解如何计算单个垂直测量值,但我不知道从哪里收集这些信息。所以我做了一些实验scrartcl;以下是两个极端:

\documentclass[a4paper,10pt,parskip=full]{scrartcl} 
\usepackage{fontspec}
\begin{document}
  lineskip: \the\lineskip\\
  baselineskip: \the\baselineskip\\
  baselinestretch: \baselinestretch\\
  parskip: \the\parskip\

给出
baselineskip: 12pt 和 parskip: 12pt 加上 1.20007pt。
它们几乎相等,而且正如我所用parskip=full,这对我来说是有意义的。

\documentclass[a4paper,12pt,parskip=full]{scrartcl} 
\usepackage{fontspec}
\linespread{1.2}
\begin{document}

结果是
baselineskip:17.39995pt 和 parskip:14.5pt 加上 1.45009pt。
使用这些设置,parskip=full根本不满,并且尝试恢复所需的节奏需要使用一些奇数垂直空间。

在使用诸如 scrartcl 之类的文档类来实现 Bringhurst 的建议时,我可能必须重新定义几乎每个使用的垂直空间(至少,这是我所期望的,或者担心的)。

  • 所显示的 baselinskip 和 parskip 之间的差异从何而来?为什么?
  • 如果我想实施这样的建议,我是否应该使用 scrartcl(或其他 koma-script 类)?

添加:Michels 建议我寻找网格,这让我找到了 Markus Kohm 的一个软件包(V0.1,2008 年...)gridset。它提供了一个命令,可以跳转到网格上的下一个垂直位置\baselineskip。现在可以故意离开网格(可能是为了引用一个区块),然后返回到网格:

\blindtext\\[0.5\baselineskip]
\emph{blindtext}
\vskipnextgrid
\blindtext

在这个例子中,的效果\vskipnextgrid是半个引线的垂直空间。我也用数学公式测试了这一点。结果或多或少令人满意,质量在很大程度上取决于周围的材料,但手动调整的解决方案也是如此。如果它不能起作用,它就不会起作用。

关于我对\parskipscrartcl 设置的问题:我设法找到了一个似乎完成的地方,但它似乎不受linespread(scrartcl.cls,第 378 行)的影响:

\setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{%
    1em \@plus 1fil}%

如果我正确理解了代码,parskip(第二个参数)设置为\baselineskip。这应该是baselineskip文档中实际使用的,但所做的更改\linepread{1.2}在这里不起作用。\setparsizes{.}{.}{.}在文档中调用也没有效果。

答案1

不是一个完整的答案,但(希望)是一个有用的提示:观察到的parskip=full类选项对 的更改的疏忽\baselinestretch似乎是由fontspec包引起的。以下示例(使用 XeLaTeX 编译,fontspec注释掉)产生的值\parskip约为 17.4 pt(即与 相同\baselineskip)。

\documentclass[a4paper,12pt,parskip=full]{scrartcl} 
% \usepackage{fontspec}
\linespread{1.2}
\begin{document}
  lineskip: \the\lineskip\\
  baselineskip: \the\baselineskip\\
  baselinestretch: \baselinestretch\\
  parskip: \the\parskip\\
\end{document}

答案2

基本上,如果我理解正确的话,为了能够有垂直节奏,您需要删除所有垂直可拉伸性(/skip/rubber/glue,即那些“加 x 减 y”),并统一分配所有垂直跳过(例如,列表之前和之后、显示的数学、水平对齐等)以保持垂直节奏。

最简单的方法是将它们定义为众多\baselineskip,但这可能不会产生最吸引人的结果(这就是它变成一种艺术形式的地方;-))。您的问题表明您正在使用 LaTeX,因此很抱歉无法列出所有有助于垂直拉伸的跳跃/橡胶/胶水,但至少在 Plain 格式中,可能会被忽视的一个确实是\parskip(在其默认设置下)如果需要的话可以提供一点垂直拉伸性。因此,至少有一个您想要通过以下方式完全删除:\parskip=0pt

相关内容