我目前正在调整显示的代码测试某个段落是否有分页符?
使用 TikZ 支持下划线和高亮显示,类似如下LaTeX 中的酷炫文本突出显示,但不需要soul
或任何其他影响文本排版的包。
为此,我overlay,remember picture
在开始和结束时放置了一个 TikZ 坐标(使用),并使用它来绘制线条。目前,我只是通过添加\baselineskip
到第一个标记的 Y 坐标(或从第二个标记中减去它,如果它们之间有分页符)来计算中间线的基线。这对于普通文本很有效,但如果行距不等于,则会导致错误的位置,\baselineskip
例如由于行上的元素过高而导致。
是否有可能在 TeX 生成的每一行上自动放置这样的 TikZ 标记?除此之外,我还可能使用\zlabel
该包中的标记来确定页面。我搜索了一下zref
TeXBook并查看了源代码,lineno
但都没有成功。只有当线高于正常值时才添加标记就足够了。(我目前的有趣的想法TM解决这个问题的方法是让一些常用字母活跃起来,但我尽量避免这种花招。)
答案1
我不认为在 TeX 中可以做到这一点,因为它的段落构建方式。不幸的是,没有\everyline
参数。
可以尝试排版段落,\vbox
然后将其拆开,在每一行添加代码,参见这个答案。
我相信这可以用 LuaTeX 解决。
答案2
我在gmdoc-enhance
包中实现了类似的东西,在每个注释行上都有前导%
符号。它使空格字符处于活动状态,并在原则上扩展为\discretionary{}{\gmde@kommentarStart}{}~
,其中\gmde@kommentarStart
放置了一个 \hbox,其中包含我想要显示的内容。
这里的问题是,\gmde@kommentarStart
将针对每个空格进行评估,不仅针对那些创建换行符的空格,而且仅针对框实际上会出现在输出中的空格。此外,我必须确保没有其他换行符发生,这会破坏 TeX 的大部分换行算法(即我基本上不需要\raggedright
断字)。这对于我的用例来说是可以接受的,但可能不适合您。
我不确定它如何与 TikZ 一起工作(从未使用过它)。
(该软件包的文档是德文的,如果有人需要更多详细信息,请评论。)