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.

4

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

  • 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}? – Justin J Stark Aug 5 '11 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}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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