如何指定轮廓粗细和填充/轮廓颜色?

如何指定轮廓粗细和填充/轮廓颜色?

这个问题要求延长这个答案.考虑代码:

\documentclass[12pt]{book} 
\usepackage{xcolor}
\usepackage{cabin}
\usepackage{scalefnt}

\input pdf-trans
\font\f=qx-lmr10    at 60pt
\newbox\qbox

\def\outline#1{%
\setbox\qbox\hbox{\f #1}%
\boxgs{2 Tr .8 g}{}\copy\qbox
}%
\pagestyle{empty}
\parindent=0pt

\begin{document}
\Huge

\outline{\cabin{\scalefont{1.5}{D i f f e r e n t \, F i l l c o l o r}}}
\end{document}

产生

在此处输入图片描述

问题:我该如何修改此代码(TikZ在本例中无需修改)才能将填充颜色更改为蓝色?另外,轮廓颜色必须是黑色吗?如果不是,我该如何指定颜色及其粗细?

谢谢。

答案1

使用pdfrender评论中提到的包看起来是一个更好的选择,但如果您只想对代码进行最少的修改,则可以使用 PDF 代码调整填充颜色。

目前执行此操作的代码是:0.8 g。数字从 0 到 1,表示g灰度。要使用颜色,您可以使用rg运算符指定 RGB 颜色。您需要三个数字,每个通道一个,例如:

0.6 0.6 1 rg

给出浅蓝色。也可以使用 CMYK 颜色,例如,

0.5 0 0 0 k

给出 50% 青色。

轮廓仅使用 LaTeX 放在颜色堆栈上的当前颜色,因此您只需添加即可\color{???}设置轮廓颜色。

可能有更好的方法,但您也可以插入 PDF 代码来设置轮廓的宽度:

2 w

将轮廓宽度设置为 2 bp(大点)。

平均能量损失

\documentclass[12pt]{book} 
\usepackage{xcolor}
\usepackage{cabin}
\usepackage{scalefnt}

\input pdf-trans
\font\f=qx-lmr10    at 60pt
\newbox\qbox

\def\outline#1{%
\setbox\qbox\hbox{\f #1}%
\boxgs{2 Tr 2 w 0.25 0 0 0 k}{}\copy\qbox
}%
\pagestyle{empty}
\parindent=0pt

\begin{document}
\Huge

{\color{cyan}%
\outline{\cabin{\scalefont{1.5}{D i f f e r e n t \, F i l l c o l o r}}}%
}
\end{document}

输出

答案2

你已经得到了你想要的解决方案,所以让我补充一点上下文/metafun一个,以防有用户碰巧路过。

\setupbodyfont[dejavu,ss,60pt]
\definecharacterkerning[mine][factor=0.1]
\starttext
\startMPpage[offset=1dk]
draw lmt_outline [
  text = "\setcharacterkerning[mine]Different fillcolor",
  kind = "both",
  drawcolor = "blue",
  fillcolor = "yellow",
  rulethickness = 1.75,
] ;
\stopMPpage
\stoptext

黄色和蓝色轮廓文字

一些评论:我没有安装 cabin 字体,所以我使用了 dejavu。另外,我认为额外的字母间距看起来不太好,但如果需要的话,这是一种比在字母之间添加空格更干净的方法。除此之外,我认为这很简单。

相关内容