包裹pdfrender

包裹pdfrender

平均能量损失

\documentclass[a4paper,11pt]{article}

\begin{document}

NAME: \hfill SURNAME: \hfill \pdfliteral {q 1 Tr [.1 .4]0 d .1 w}SIGN\pdfliteral{q}\\

This text is not black.

\end{document}

并显示

在此处输入图片描述

之后\pdfliteral,如何改变正常文本?

答案1

包裹pdfrender

该包pdfrender为您想要执行的操作提供了更高级别的接口。它使用 pdfTeX 的颜色堆栈来提供类似于颜色的渲染模式设置。通过颜色堆栈的解决方案还支持换行甚至分页。

\documentclass[a4paper,11pt]{article}
\usepackage{pdfrender}

\begin{document}

NAME: \hfill
SURNAME: \hfill
\textpdfrender{
  TextRenderingMode=Stroke, % 1 Tr
  LineWidth=.1, % .1 w
  LineDashPattern=[.1 .4]0, % [.1 .4]0 d
}{SIGN}

\bigskip
This text is back to normal (black).

\end{document}

结果

低电平通过\pdfliteral

对于一个单词来说,颜色堆栈是不必要的,因此下面的例子展示了如何使用 来实现\pdfliteral。重要的问题是,保存图形状态(操作符q、命令\pdfsave必须Q发生在与恢复图形状态(操作符、命令)完全相同的位置\pdfrestore。否则 TeX 坐标系将与 PDF 输出页面的坐标系不同步。

\documentclass[a4paper,11pt]{article}

\begin{document}

NAME: \hfill
SURNAME: \hfill
\mbox{%
  \pdfliteral direct{q 1 Tr .1 w[.1 .4]0 d}% without \pdfsave
  % \pdfsave
  % \pdfliteral direct{q 1 Tr .1 w[.1 .4]0 d}
  \rlap{SIGN}% position is *not* moved
  \pdfliteral direct{Q}% without \pdfrestore
  % \pdfrestore % same location as \pdfsave
  \hphantom{SIGN}% no we move
}

\bigskip
This text is back to normal (black).

\end{document}

或者,可以手动重置改变的文本渲染参数,假设使用默认值。

\documentclass[a4paper,11pt]{article}

\begin{document}

NAME: \hfill
SURNAME: \hfill
\pdfliteral direct{1 Tr .1 w[.1 .4]0 d}%
SIGN%
\pdfliteral direct{0 Tr 1 w[]0 d}%

\bigskip
This text is back to normal (black).

\end{document}

相关内容