当我加载时enotez
backref
并设置字体选项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}