Outlined characters

How could I produce characters which are outlined when the character itself is in some color. A picture to illustrate what I'm after:

The problems with the above are that:

• the outline is of no consistent width around the letter.
• the way I've done it (using tikz with a upscaled black node below the colored one), there is no easy way to control the width of the outline.

Do you know of a way to accomplish this with TeX? I am using plain-format with XeTeX, but I'm interested in all ways to accomplish this.

-
Related: tex.stackexchange.com/a/85694/86 –  Loop Space Apr 12 '13 at 14:41
Also related: tex.stackexchange.com/questions/96766/… –  Scott H. Apr 12 '13 at 16:26

The pst-text package can do this.

\documentclass{minimal}
\usepackage{pst-text}
\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{2cm}

\begin{document}
\pscharpath[fillstyle=solid,fillcolor=magenta!50]{\RM TeXnik}
\end{document}


Perhaps you can migrate this to plain (Xe)TeX.

-
+1 but text-search will be no longer possible. :-) –  xport Aug 8 '11 at 19:22
Since the OP used tikZ this should be no major problem. –  Thorsten Donig Aug 8 '11 at 19:34
I don't get the same output (no color) with the example. –  morbusg Aug 18 '11 at 15:16

The contour package can do this, too. You'll need to use Type 1 fonts (check the documentation); here is sample code

\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}


The output is: Changing the contourlength to 1pt will give a less pronounced outline.

-
What did the log file say was the problem? –  DJP Aug 11 '11 at 4:33
With a minimal: \input eplain \beginpackages\usepackage{contour}\endpackages bar\bye, I get: Undefined control sequence. \newlength –  morbusg Aug 11 '11 at 5:05
When I put "minimal" into the documentclass, instead of "article" I get an "Undefined control sequence" error. It was fixed by removing "\Huge" from the code. If that doesn't work, maybe try to find a minimal example that doesn't work and repost as question? –  DJP Aug 11 '11 at 5:35
Oh, right, so... There is the language TeX, and then there are macro-packages which build up on the primitives provided by the language: plain-tex, latex, and context, for example. I am using the plain-tex macro-package, for which there exists a macro-collection called eplain which allows loading some macro-packages designed to work with latex, to be loaded in plain-tex. I didn't realize you could load eplain with latex. –  morbusg Aug 11 '11 at 6:04
You should specify \textcolor{}{} outside the contour, at least in Beamer. See tex.stackexchange.com/questions/78386/…. –  Mechanical snail Oct 23 '12 at 2:03

Some years later, in a file I found which I believe to be called “Practical use of special commands in DVIPDFMx” by Jin-Hwan Cho (I would put a link here to it, but I am unable to find where I found it originally from; TUG2005), I found information on the low-level PDF command for use with dvipdfmx:

\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


-
Do you know any good resources where I can learn more about these PDF literals? –  Henri Menke Jan 30 at 13:45
@Henri: You can find the document I'm talking about in the answer here, and for the PDF reference, you can see here. I think I also remember some talks related to PStricks which also cover some of the PDF subset, but I don't have any links for you now; sorry. –  morbusg Jan 30 at 17:38