# Matching punctuation size to small caps

Normal apostrophes are too big for small caps and this is making my running headers look weird.

I'm getting around this by shrinking each apostrophe to \footnotesize and lowering it by -0.55ex.

Is there a more elegant way to do this?

(Notes. 1: Presumably this applies to other punctuation, but apostrophes are my only immediate concern. 2: I'd rather not scale the font, as suggested here, as this leads to kerning issues. 3: In a related vein, at very large font size, apostrophes and quotes look too fat, I find, so I tend, as here, to use a smaller font size and adjust the height using a \raisebox.)

\documentclass{article}

\begin{document}

WOULDN'T'VE --- full caps

{\sc wouldn't've} --- dislike

{\sc wouldn\raisebox{-.055ex}{\footnotesize'}t\raisebox{-.055ex}{\footnotesize'}ve} --- like

\end{document}


-
Looks like a good solution to me. Perhaps defining a \newcommand{\Apost}[1][-0.055ex]{\raisebox{#1}{\footnotesize'}} would be a good idea. The optional first paramter in case you ever want to tweak it a bit. You could use also use a \scalebox to shrink it a bit. –  Peter Grill Nov 14 '12 at 8:50
I didn't know about \scaleboxes. Thanks. I'll indeed define a short command name, if I end up sticking with the above solution. –  Daniel Harbour Nov 14 '12 at 10:07
How about \newcommand{\Apost}[1][0.5ex]{\scalebox{0.6}{\raisebox{#1}{'}}}? –  Peter Grill Nov 14 '12 at 10:12
Thanks. I'll play with that. –  Daniel Harbour Nov 14 '12 at 11:16

Too long for a comment: You are comparing lowercase small caps letter with uppercase letters, but you should also take the other variants into account:

\documentclass{article}
\usepackage[T1]{fontenc}
%\usepackage{lmodern}
\begin{document}
wouldn't've WOULDN'T'VE

{\scshape wouldn't've WOULDN'T'VE}

{\scshape wouldn\raisebox{-.055ex}{\footnotesize'}t\raisebox{-.055ex}{\footnotesize'}ve
WOULDN\raisebox{-.055ex}{\footnotesize'}T\raisebox{-.055ex}{\footnotesize'}VE}

\end{document}


-
Point taken, but my current purpose is very narrow: I want punctuation size to match character height in running headers, which are in small caps (no lowercase or full caps). –  Daniel Harbour Nov 14 '12 at 10:05
Then is it not easier to change the running headers to smaller-size full caps? There are lots of packages to change headers. Automatically changing quotes to a special command only in headers (but, I presume, not in TOC or any other places) will be difficult and clunky at best. –  Jean-Christophe Dubacq Nov 14 '12 at 10:09
@DanielHarbour -- I have to agree with Jean-Christophe Dubacq: redefining your apostrophes for your small caps headers will need careful attention for things like tables of contents (if you have them, I guess). Lowering the apostrophe (or re-sizing it) will make it look rather absurd if the entries in the table of contents are not also in small caps (and one would hope they are not!). –  jon Nov 14 '12 at 10:36
I'm producing a series of pamphlets, so no table of contents. I tend to avoid small uppercase as a substitute for small caps, because the characters come up a bit thin (though I notice plenty of journals do this). Nonetheless, I might try the suggestion out if the pamphlets end up as a single book at some point. Thanks for the suggestions and comments. –  Daniel Harbour Nov 14 '12 at 11:12
@DanielHarbour: I don't think that you did get my point: Even small caps shape you can have upper and lower case letters. What about names like O'Leary or d'Arcy? –  Ulrike Fischer Nov 14 '12 at 11:14

Another approach is to make the apostrophe an active character and define it to use \raisebox only when small caps are in effect. I have small cap chapter headings and running headings but the table of contents is not small caps. This works for me:

\let\horn@scshape\scshape

\def\horn@apos{'}
\def\horn@@apos{\raisebox{-0.4ex}{\kern0.06em'}}

% make ' (apostophe) active for the argument to chapter so we can lower it for small caps
\let\horn@chapter\chapter
\def\chapter{
\begingroup
\catcode\'=\active\begingroup\lccode\~=\'\lowercase{\endgroup\def~{\protect\horn@apos}}
\horn@@chapter
}

\def\horn@@chapter#1{%
\horn@chapter{#1}
\endgroup
}
`
-