这个问题要求延长这个答案.考虑代码:
\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。另外,我认为额外的字母间距看起来不太好,但如果需要的话,这是一种比在字母之间添加空格更干净的方法。除此之外,我认为这很简单。