我正在学习 Gonzalo Medina 的优秀代码用波浪线标记(突出显示)某个段落(\item{...}),以便稍后注意。我喜欢它!它对我很有用。但是,我注意到出现了两个问题,我不知道如何解决它们。
第一个问题:当 \Startsquiggly 和 \Endsquiggly 之间的文本生成两个分页符(因此有 3 页)时,页边空白处的线条不会覆盖第 2 页(刚好在第一个分页符之后),而是在第 3 页(第二个分页符之后)继续,并沿着剩余的文本到 \Endsquiggly。您的代码中是否有命令可以让描边也应用于第 2 页?示例:
\begin{document}
\Startsquiggly \lipsum[1]\Endsquiggly
\Startsquiggly\lipsum[1-11]\Endsquiggly
\end{document}
该命令的操作在第 2 页上无效。
第二个问题:如果我只输入:
\begin{document}
\Startsquiggly\lipsum[1-11]\Endsquiggly
\end{document}
然后编辑器给了我以下错误信息: ! Package pgf Error: No shape named `b' is known.
我认为,您代码中的 tikzmark{b} 似乎丢失了...但是,第二个问题在第一个示例中没有出现。您能想到解决这些问题的方法吗?
注意:
- 我也看到了在跨多页的页边空白处画一条垂直线,它非常好,但我不知道如何才能在左边距有几条平行线而不是只有一条。
- 我也看到了使用 mdframed 包的多个左边距条没问题,但是文本段落宽度会随着行数而变化,我不想这样。而且我不太理解代码,对我来说太难了。
- 我也看到了在页边空白处添加一个横线使用 pdfcomment 包但存在相同的第一个问题,它在第 2 页上不起作用(并且我也无法在 xelatex 中编译....)。
答案1
这是用 制作的替代解决方案 tcolorbox
。为标记框定义了一个新环境。这些行保留到损坏的框和所需的尽可能多的页面。
\documentclass{article}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\newtcolorbox{mybox}[1][]{%
enhanced, blank, breakable,
overlay={\draw[decoration={coil,aspect=0},decorate,ultra thick,gray] ([xshift=5mm]frame.north east)--([xshift=5mm]frame.south east);}
}
\begin{document}
\lipsum[1]
\begin{mybox}\lipsum[1]\end{mybox}
\lipsum[1]
\begin{mybox}\lipsum[1-12]\end{mybox}
\end{document}