答案1
如果您找不到其他方法,您可以随时编辑为 enscript 的特殊转义生成的 PostScript bggray
(与我对您之前的回答类似)问题)。
当您在输入中使用bggray{0.5}
特殊转义字符(可以使用 进行更改-e
)后,enscript 将输出代码来调用 PostScript 函数bgs
来绘制背景阴影。您可以在 的输出enscript
和输入之间修改此函数ps2pdf
以查找特定的阴影值,例如0.01
绘制一条细线而不是背景框。
我的版本enscript
定义bgs
为
/bgs { % x y height blskip gray str -> - show string with bg color
...
x y blskip sub str stringwidth pop height Box
x y ... Box
我们可以使用sed
脚本更改绘图线
enscript ... |
sed '
/^\/bgs/,/^}/{
/x y blskip sub str stringwidth pop height Box/{
s/^/ %--% /
a\
/lh height .05 mul def \
/y2 y height .2 mul add def \
gray 0.01 eq { x y2 blskip sub str stringwidth pop lh Box /gray 0 store } \
{ x y blskip sub str stringwidth pop height Box } ifelse
}
}' |
ps2pdf ...
我添加了两个可以轻松更改的部分:线条开头/lh
将线条的粗细定义为高度的一部分。更改.05
以使线条更粗(即更粗)。下一行开始/y2
将下划线向上移动框高度的 0.2 倍;这对应于我在你的上一个问题中所做的修复。
请注意,您必须小心,确保 bggray 转义符位于文本旁边,不要在尾随空格下划线。例如,
enscript -fCourierBold12 -e@ -p- | ...
@bggray{0.01}underlined text@bggray{1} normal text