Some typographers say it's a good habit to increase the letterspace when writing words in caps or small caps. So my question is, how to do it with pdflatex and/or xelatex? And while we're at it, which words would you alter this way? Acronyms like USA, NATO, IBM, GNU, etc.? How about words like PCs, UdSSR, FreeBSD or TV-Station?
5 Answers
Use the microtype package, loading it with [tracking=smallcaps]
should take care of small caps
For all-uppercase words you can use microtype's \textls
, e.g.
\newcommand{\versal}[1]{\textscale{0.9}{\textls*[80]{#1}}}
(I came across this here, check the provided “Präambel”, the spacing/scaling might be font specific, so use with care and check your output, maybe someone else could comment on this one)
hope this helps
In XeLaTeX with the fontspec package you can select a font with the LetterSpace feature:
\newcommand\tracked[1]{%
{\addfontfeature{LetterSpace=2}#1}}
LetterSpace=s is an additional s/F space between letters where F is the font size.
(I swear I once saw an example of letterspacing involving additional glue rather than just fixed space, but I can't see anything around that this could be. Any idea?)
Another example, this is what's used in the TUGboat journal:
\usepackage{relsize}
\def\acro#1{\textsmaller{#1}\@}
They also have a list of abbreviations/acronyms you can use to get some ideas how/what to letterspace, see tugboat.dtx
For example,
\def\MacOSX{Mac\,\acro{OS\,X}}
or
\def\MathML{Math\acro{ML}}
You can use the microtype package and AssBurger's \versal
command if you want additional microtypgraphic features like increased letterspace.
Something I found on a UK mailing list while searching for a solution to increase the letterspace that I think is important to know:
Possibly the ‘ultimate’ in this field is the microtype, which uses the micro-typography capabilities of current PDFTeX to provide a \textls command, which operates according to parameters declared in a \SetTracking command. Microtype’s ‘tracking’ facility expands the natural spacing font itself, rather than inserting space between characters.
-
4Welcome to tex.sx!
microtype
and its\textls
command were already pointed out in Assburger's answer.– lockstepMar 9, 2012 at 23:23 -
1Thank you for the nice welcome! With my answer I just wanted to highlight, that
\textls
builds on the natural spacing of the font. If I have to decide among a selection of working solutions, I would choose this one because of consistency. Apr 2, 2012 at 19:57
you can also use the soul package for letterspacing with xelatex since microtype is not supported yet by xelatex (as far as I know)
I would use letterspacing on small caps for titles.
-
As long as you don't use non-ascii characters, it seems. All č, ć, ž, đ, š letters are simply lost with soul.– Meho R.Feb 7, 2011 at 12:12
-
@MehoR.Use Heiko Oberdiek’s extended package
soulutf8
: see the documentation at ctan.uib.no/macros/latex/contrib/oberdiek/soulutf8.pdf– SveinungMar 18, 2012 at 23:23