setspace 使自定义类变得复杂:最好的解决方法?

setspace 使自定义类变得复杂:最好的解决方法?

背景 – 具有“透明”键值选项的类

我有一个用于论文类文档的自定义类,允许使用键值选项设置字体、样式、长度和橡皮长度。这是一个工作正在进行中(变成了一个小厨房水槽),但使用起来非常透明,这是我在与 LaTeX 包中的各种不透明行为斗争之后的主要目标:

\documentclass [
    font-size / main = 11.5pt , % any font size
    linespace / main = 1.25 , % any line spacing
    linespace / caption = 1.0 , % 
    glue / footer = 2ex plus 0.2ex minus 0.1ex ,
    glue-above / display = 2ex plus 2ex minus 1ex , % nice and stretchy
    glue-below / display = 2ex plus 2ex minus 1ex ,
    toc / depth = section ,
]{desert}

使用的值与用户传递的值完全一致。请注意,字体大小、行距、行距和粘合度的任何值(例如 10.775pt)都可以。

设置空间兼容性问题

设置空间做出一些选择,这些选择对于使用文章、报告和书籍的大多数文档来说效果很好,但可能会出现问题。请参阅此处的代码: https://github.com/rf-latex/setspace/blob/main/setspace.sty

我的目的不是批评原作者——我已经愉快地使用了 setspace 十年,但它与我刚刚起步的班级开始了一场争论,并且setspace 是各种包的依赖项。

集合空间奇事
  1. displayskip(也)将、、和nodisplayskip的拉伸和收缩分量归零。(它对 执行相同的操作,但仅适用于非 2e LaTeX;请参阅abovedisplayskipbelodisplayskipabovedisplayshortskipbelowdisplayshortskip\baselineskip \baselinestretch\baselineskip第 393 行

  2. singlespaceonehalfspacedoublespace环境、命令和选项检查 documentclass 字体选项,查找10pt11pt12pt

    • 标题和脚注中的间距显得更大(其中活动字体大小小于文档类字体大小)。
    • 对于除 10、11 或 12 之外的任何字体大小,其行为都会有很大不同。
    • 产生的行距似乎出乎意料。双倍行距“通常”是指在打字机上按两次回车键所得到的结果。因此,对于 10pt 字体,行距为 12pt,则得到 12pt+12pt =24pt。Setspace 会添加额外的 x 高度而不是额外的行,即 12pt+10pt =22pt)。
  3. \begin{spacing}{2.0}产生的间距与 不同,\begin{doublespace}因为只有后者使用了 leading + x-height 定义。\begin{onehalfspace}有同样的问题。正如 @Mico 指出的那样,零元开关(例如\doublespacing)的工作方式相同。

  4. 相邻间距环境之间的 Vspace 可能不正确。(最好的可能是max{vspace-after-previous-paragraph, vspace-before-next-paragraph}?)

  5. 它通过重新定义footinsmpfootins调用来修改脚注\def\baselinestretch {\setspace@singlespace}

  6. 它对xfloat第 425 行我不明白。

当前的解决方法......以及更好的想法?

我取消\displayskip并避免使用 setspace 的环境、命令和选项。对于脚注,脚杂似乎可以避免 setspace 的更改。我忽略了 #4,并假设 #6 不会造成问题。

有没有更好的方法与 setspace 的功能共存? 我的课程的主要目标是透明度,而 setspace 有一些相当不透明的行为。我不想重新发明轮子。

相关内容