55

I am trying to enlarge letter spacing. I have already tried soul package, but it seems it can enlarge only for a single phrase and i would like to enlarge for entire document.

Soul command was something like this:

\so{phrase with more letter spacing here}

Which is the command to set a higher letter spacing for all the document?

1
  • I am not sure why you'd want to increase tracking for all typeface styles. The microtype package lets you add tracking selectively. For example, the following increases tracking for small caps only: \usepackage[tracking=smallcaps,expansion=alltext,protrusion=true]{microtype}\SetTracking[spacing={25*,166,}]{encoding=*,shape=sc}{50}. (It also adds some other nice options which improve the overall look and feel of you document.:-)
    – user10274
    Dec 28, 2012 at 18:04

2 Answers 2

65

You can use the microtype package with it's letterspace=<value> option. Legal values are between -1000 and 1000, specified in thousandths of an em, with the value 0 keeping the text as it would normally appear. microtype provides the command \textls{<letterspaced text>} and the switch \lsstyle:

\documentclass{scrartcl}

\usepackage[letterspace=150]{microtype}
\usepackage{kantlipsum}% to provide sample text
\begin{document}
\kant[1]

\lsstyle
\kant[1]

\end{document}

enter image description here

One should not know how to space out letters without knowing the typograhic rules when to apply it. Many LaTeX users will be well aware of them but some might not so I am going to repeat them here. Not covering exceptions the basic rules are:

  1. Never space out lowercase letters! Instead of a single word you will get a series of single letters. If you actually want to typeset a series of letters there are better ways than to space out a word.

    enter image description here

  2. Always (modestly) space out uppercase letters (and maybe small caps, too). Without they usually look too tight and letters like O may cause white holes in a word. Too much spacing again will turn a word into a series of single letters.

    enter image description here enter image description here

5
  • tried this and i got: "pdfTeX error (font expansion): auto expansion is only possible with scalable fonts."
    – dynamic
    Jul 6, 2012 at 8:04
  • 4
    @yes123: If you tried exactly this example and got the message your TeXsystem is either very outdated or you changed the default configuration of pdftex. If you added \usepackage[T1]{fontenc}: Install the cm-super fonts (large package) or switch to the lmodern fonts with \usepackage{lmodern} Jul 6, 2012 at 8:16
  • It doesn't work with xelatex: Package microtype Error: Letterspacing currently doesn't work with xetex.
    – Drarig29
    Jan 24, 2021 at 19:07
  • @Drarig29 with XeLaTeX you can use the option provided by fontspec, see the other answer
    – cgnieder
    Jan 24, 2021 at 19:09
  • @cgnieder yes, I hadn't noticed that the other answer was especially for XeTeX yet.
    – Drarig29
    Jan 24, 2021 at 20:23
30

If you are using XeTeX or LuaTeX you can change the spacing with fontspec:

\documentclass{article}

\usepackage{fontspec}
\defaultfontfeatures{LetterSpace=50}
\setmainfont{Latin Modern Roman}

\usepackage{lipsum}
\begin{document}
\lipsum[1]
\end{document}

But I’m really not sure if it’s a good idea to increase the letter spacing from a typographic and readability enhancement point of view.

2
  • The good thing about using the package microtype is that you don't need to set a fixed spacing before hand, it automatically calculates the best spacing at every region of your text. It also has more advanced features such as protrusion, kerning, tracking...
    – skan
    Nov 3, 2017 at 16:33
  • 1
    @skan: Of course, but at the time I wrote the answer microtype was not compatible with Lua- or XeTeX. Furthermore there is also an answer suggesting microtype, so consider mine as addendum ;-)
    – Tobi
    Nov 3, 2017 at 18:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .