enotez 选项 backref 与 ebgaramond 一起添加行间距

enotez 选项 backref 与 ebgaramond 一起添加行间距

当我加载时enotezbackref并设置字体选项garamond(通过ebgaramond),由于某种原因,在放置尾注标记的行和前一行之间插入了一些额外的空格。

\documentclass{scrbook}

\usepackage{fontspec}
\usepackage[backref]{enotez}
\setenotez{list-heading = \section*{#1}}

\usepackage{lipsum}
\usepackage{ebgaramond}
\usepackage{hyperref}

\begin{document}

\lipsum[1]\endnote{\lipsum[1]}
\printendnotes

\end{document}

这些设置导致以下输出:

在此处输入图片描述

当我禁用该选项时,不会出现额外的行间距backref

在此处输入图片描述

当我使用其他字体(例如 libertine)时,也没有问题。是否可以在不牺牲选项backref或切换到其他字体的情况下删除间距?

答案1

不确定这个包到底在做什么,但寻找“backref”显示出一个可疑的框提升,减少提升的量使得日志显示基线跳过而不是行跳过间距(因此即使基线也恢复了)

老的:

....\glue(\baselineskip) 2.74857
....\hbox(7.7307+3.1755)x418.25555, glue set - 0.23798, direction TLT []
....\penalty 150
....\glue(\lineskip) 1.0
....\hbox(10.95+3.1755)x418.25555, glue set 147.7745fil, direction TLT []
....\penalty -300

新的:

....\glue(\baselineskip) 2.74857
....\hbox(7.7307+3.1755)x418.25555, glue set - 0.23798, direction TLT []
....\penalty 150
....\glue(\baselineskip) 2.7157
....\hbox(7.7088+3.1755)x418.25555, glue set 147.7745fil, direction TLT []
....\penalty -300

示例文档

\documentclass{scrbook}
\showoutput
\showboxdepth4
\usepackage{fontspec}
\usepackage[backref]{enotez}
\ExplSyntaxOn
\cs_set_protected:Npn \enotez_write_mark:nn #1#2
  {
    \bool_if:NTF \l__enotez_hyperfootnotes_bool
      {
        \enotezwritemark { \hyperlink {enz.#1} { \enmarkstyle #2 } }
        \bool_if:NT \l__enotez_hyperbackref_bool
          {
            \box_move_up:nn {.5em} % was 1em
              { \hbox:n { \hypertarget {enz.#1.backref} { } } }
          }
      }
      { \enotezwritemark { \enmarkstyle #2 } }
  }
\ExplSyntaxOff
\setenotez{list-heading = \section*{#1}}

\usepackage{lipsum}
\usepackage{ebgaramond}
\usepackage{hyperref}

\begin{document}

\lipsum[1]\endnote{\lipsum[1]}
\printendnotes

\end{document}

相关内容