Если вы не найдете другого пути, вы всегда можете отредактировать PostScript, сгенерированный для bggray
специального выхода (enscript, аналогично моему ответу на ваш предыдущий вопрос).
Когда вы используете в своем вводе bggray{0.5}
после специального escape-символа (, который вы можете изменить с помощью -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 высоты блока; это соответствует исправлению, которое я сделал в вашем последнем вопросе.
Обратите внимание, что вы должны быть осторожны, чтобы не подчеркивать завершающие пробелы, убедившись, что escape-символы bggray находятся рядом с текстом. Например,
enscript -fCourierBold12 -e@ -p- |...
@bggray{0.01}underlined text@bggray{1} normal text