TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

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.

share|improve this question
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
up vote 12 down vote accepted

The pst-text package can do this.


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

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

enter image description here

share|improve this answer
+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

\contourlength{2pt} %how thick each copy is
\contournumber{20}  %number of copies
\contour{red}{\Huge \textcolor{green}{This is the text.}}\\

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

share|improve this answer
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

enter image description here

share|improve this answer
Do you know any good resources where I can learn more about these PDF literals? – Henri Menke Jan 30 '15 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 '15 at 17:38

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.