如果过度使用“soul”和“soulpos”,会导致页面重启

如果过度使用“soul”和“soulpos”,会导致页面重启

我使用了很多高亮功能,因为它用于在交给讲师之前标记我对每个版本的修改。当我突出显示大量文本时,我发现有时页面会在中间重新开始。

经过一个小时的压力,我找到了原因,那就是如上所述的大量使用高光这里。该页面提到soul,但我使用soulpos。似乎两个包都有相同的错误。

下面是我用来突出显示的代码:

\usepackage{soulpos}
\ulposdef{\hly}{%
  \mbox{%
    \color{yellow}%
    \rule[-.8ex]{\ulwidth}{11pt}%
    \tolerance=1%
    \emergencystretch=\maxdimen}}

有解决办法吗?为什么会发生这种情况?这种错误可以修复吗?谢谢。

编辑:

从评论区来看,这个灵魂bug被讨论并解决了这里。可惜soulpos没用,\countdef而且同样的修复方法也不能用。

经过更多测试后编辑:

好吧,现在我变得更加困惑了:

  1. 使用单独的 cls,soulpos 没有遇到此问题。请参阅这里
  2. 由于没有单独的 cls,soulpos 甚至无法用减法解决。参见这里

这个(第 2 个)的页码有误,但如果我使用 .cls 则不会出现这种情况(参见第 1 个)

\documentclass{article}
\usepackage{soulpos}

\makeatletter
\newcount\SOUL@minus
% \newcount\SOULPOS@minus
\makeatother

\usepackage{xcolor}
\usepackage{blindtext}

\ulposdef{\hly}{%
  \mbox{%
    \color{yellow}%
    \rule[-.8ex]{\ulwidth}{11pt}%
    \tolerance=1%
    \emergencystretch=\maxdimen}}
 
\begin{document}

\Blindtext[4]
\blindtext
\hl{Closing words

New paragraph!}

\clearpage

\Blindtext[4]
\blindtext
\hly{Closing words

New paragraph!}

\end{document}

答案1

经过反复试验,根据 @quark67 的评论,我发现使用此组合可以解决我的问题。我还没有完全测试过,但目前它可以工作。

\usepackage{soulpos}
\newcount\SOUL@minus

经过更多测试后编辑:

好吧,现在我变得更加困惑了:

  1. 使用单独的 cls,soulpos 没有遇到此问题。请参阅这里
  2. 由于没有单独的 cls,soulpos 甚至无法用减法解决。参见这里

相关内容