如何在 ConTeXt 中创建具有实体内部的轮廓文本?

如何在 ConTeXt 中创建具有实体内部的轮廓文本?

按照以下说明进行\definespotcolor操作康特克斯花园,我创建了一些概述的文字:

\defineeffect[outline][alternative=outer,rulethickness=.25pt]
\starttext
    \starteffect[outline]
        \ssa This text appears as an outline.
    \stopeffect
\stoptext

但我发现,这会使文本具有黑色轮廓和透明内部,因此当页面有背景图像时,背景文本会透过来显示。如何创建具有黑色轮廓的白色文本?

答案1

这是一个使用的解决方案 覆盖

覆盖演示

% macros=mkvi

\definetextbackground [dark] [backgroundcolor=darkblue]

\defineeffect [outline] [
  alternative=outer,
  rulethickness=.25pt,
]

\definecolor [outlinedtext.color.fill]    [red]
\definecolor [outlinedtext.color.outline] [white]

\def\filledoutline#1{%
  \startoverlay
    {\directcolored[outlinedtext.color.fill]%
     #1}
    {\directcolored[outlinedtext.color.outline]%
     \starteffect[outline]#1\stopeffect}%
  \stopoverlay%
}

\starttext
  before
  \endgraf
  \starttextbackground[dark]%
    \filledoutline{\ssa This text appears as an outline.}
  \stoptextbackground
  \endgraf
  after
\stoptext

PS: 有关更复杂的方法,请参阅metafun 手册,第 8.6 节:轮廓字体(grep 为圖形文字)。

相关内容