8

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.

1

2 Answers 2

5

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

1
  • 2
    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}? Aug 5, 2011 at 16:37
4

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}

You must log in to answer this question.

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