当字符本身是某种颜色时,我如何才能制作出轮廓鲜明的字符。一张图片来说明我想要什么:
上述问题在于:
- 字母周围的轮廓宽度不一致。
- 按照我的方法(使用 tikz,在彩色节点下方有一个放大的黑色节点),没有简单的方法来控制轮廓的宽度。
您知道用 TeX 实现此目的的方法吗?我使用的是 XeTeX 的纯格式,但我对所有实现此目的的方法都很感兴趣。
答案1
这pst 文本包可以做到这一点。
\documentclass{minimal}
\usepackage{pst-text}
\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{2cm}
\begin{document}
\pscharpath[fillstyle=solid,fillcolor=magenta!50]{\RM TeXnik}
\end{document}
也许您可以将其迁移到普通的 (Xe)TeX。
答案2
这轮廓包也可以这样做。您需要使用 Type 1 字体(查看文档);以下是示例代码
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{pslatex}
\usepackage{contour}
\usepackage{color}
\pagestyle{empty}
\begin{document}
\contourlength{2pt} %how thick each copy is
\contournumber{20} %number of copies
\contour{red}{\Huge \textcolor{green}{This is the text.}}\\
\end{document}
输出为: 将轮廓长度更改为 1pt 将使轮廓不太明显。
答案3
pdfrender
pdfTeX 或 LuaTeX包(较新版本需要包luatex85
)允许使用许多参数配置轮廓,如填充颜色、描边颜色或描边线宽。
由于 pdfTeX 的颜色堆栈,分页符也支持颜色设置。
例子:
\documentclass[12pt]{article}
% \usepackage{luatex85} % for LuaTeX
\usepackage{xcolor}
\usepackage{pdfrender}
\definecolor{CharFillColor}{rgb}{1,.8,.8}
\begin{document}
\sffamily
\textpdfrender{
TextRenderingMode=FillStroke,
LineWidth=.2pt,
FillColor=CharFillColor,
}{Lorem ipsum.}
\end{document}
答案4
几年后,我在一份名为“DVIPDFMx 中特殊命令的实际使用”,作者:Jin-Hwan Cho(TUG2005),我找到了有关与 dvipdfmx 一起使用的低级 PDF 命令的信息:
\special{pdf:bcolor [.8 0 .8] [0]} % two arrays: first defines fill, second the stroke.
% If array has one entry, it's meaning grayscale, if three: RGB, if four: CMYK.
\special{pdf:literal direct .4 w 2 Tr} % .4 here is the stroke width
F
\bye