Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am using the following code

\usepackage{microtype,textcase}
\textls*[110]{\textbf{\MakeUppercase{Specialties}}}

I would like to achieve even letter spacing. Unfortunately, the kerning of the "ALT" is not good. Is there any way to make this better (even spacing)?

Edit: One thing that improves the letter spacing between the L and T is to do

\usepackage{microtype,textcase}
\textls*[110]{\textbf{\MakeUppercase{Specia{l}{t}ies}}}

but the A and the L are still too far apart. Also, I am using this code as a command with the "Specialties" part being an argument. It would be nice to have a solution to make the letter spacing even without having to do tricks like this.

share|improve this question
1  
Something you could try is adjusting the kerning between L and T with SetExtraKerning as in mhp's answer here: tex.stackexchange.com/questions/4062/… –  Philippe Goutet Aug 18 '11 at 13:02

2 Answers 2

Here I introduce the routine \spaceout[added space]{string} to indicate text to be spaced out. The optional argument can specify the extra space added between each letter of the argument (here I default it to 0.5pt). Spaces are properly parsed in the argument, using similar logic to my answer at How to bold custom calligraphic text.

In my MWE here, I show how \spaceout can be used both to compress or expand text spacing.

\documentclass{article}
\usepackage{tabto}
\def\theLetterSpace{0.5pt}
\newcommand\spaceout[2][\theLetterSpace]{%
  \def\LocalLetterSpace{#1}\expandafter\spaceouthelpA#2 \relax\relax}
\def\spaceouthelpA#1 #2\relax{%
  \spaceouthelpB#1\relax\relax%
  \ifx\relax#2\else\ \kern\LocalLetterSpace\spaceouthelpA#2\relax\fi
}
\def\spaceouthelpB#1#2\relax{%
  #1%
  \ifx\relax#2\else
    \kern\LocalLetterSpace\spaceouthelpB#2\relax%
  \fi
}
\parskip 1ex
\usepackage{microtype,textcase}
\begin{document}

\textls*[110]{\textbf{\MakeUppercase{Specialties}}}  OP\#1

\textls*[110]{\textbf{\MakeUppercase{Specia{l}{t}ies}}}  OP\#2

\textls*[110]{\textbf{\MakeUppercase{Speci\spaceout[-.6pt]{alt}ies}}} \verb|\spaceout|

\vspace{3ex}
test test test test test test  no spacing

test \spaceout{test test test test} test  0.5pt added spacing

test \spaceout[1.5pt]{test test test test} test  1.5pt added spacing

test \spaceout[5pt]{test test test test} test  5pt added spacing
\end{document}

enter image description here

And below, we see an example on bold sans caps:

enter image description here

which uses the following code:

\documentclass{article}
\usepackage{tabto}
\def\theLetterSpace{0.5pt}
\newcommand\spaceout[2][\theLetterSpace]{%
  \def\LocalLetterSpace{#1}\expandafter\spaceouthelpA#2 \relax\relax}
\def\spaceouthelpA#1 #2\relax{%
  \spaceouthelpB#1\relax\relax%
  \ifx\relax#2\else\ \kern\LocalLetterSpace\spaceouthelpA#2\relax\fi
}
\def\spaceouthelpB#1#2\relax{%
  #1%
  \ifx\relax#2\else
    \kern\LocalLetterSpace\spaceouthelpB#2\relax%
  \fi
}
\parskip 1ex
\begin{document}
\sffamily\bfseries
THIS IS MY HEADING  \tabto{2.5in}no added spacing

\spaceout{THIS IS MY HEADING}  \tabto{2.5in}0.5pt added spacing

\spaceout[1.5pt]{THIS IS MY HEADING}  \tabto{2.5in}1.5pt added spacing

\spaceout[3pt]{THIS IS MY HEADING}  \tabto{2.5in}3pt added spacing
\end{document}
share|improve this answer

Although "not good" may be very subjective, I would suggest encompassing any faulty kerning letters with {.}. This should reduce or eliminate the automatic effects of kerning.

Another letter spacing alternative is provided by the soul package. The following minimal example illustrates the differences/similarities:

\documentclass{article}

\usepackage{microtype}
\usepackage{soul}

\sodef\myspace{}{.2em}{1em plus1em}{2em plus.1em minus.1em}% User-defined letter spacing

\begin{document}

\textls*[110]{\textbf{\MakeUppercase{Special{t}ies}}}

\so{\textbf{\MakeUppercase{Specialties}}}

\myspace{\textbf{\MakeUppercase{Special{t}ies}}}

\end{document}​

Different letter spacing techniques

share|improve this answer
1  
I was using the soul package initially but switched to microtype; they seem to give similar results. Putting a letter in {.} helps a lot. Out of curiosity, is there any way to take an argument specialties and convert it to {S}{P}{E}{C}{I}{A}{L}{T}{I}{E}{S}? –  Justin J Stark Aug 5 '11 at 16:37

Your Answer

 
discard

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.