5

I am using text/old-style figures in my document with the Palatino font, and I find that the dollar sign (\$) is too large for most dollar figures. I've found that it looks good if I take the font size of just the dollar sign down by one, like so:

{\small\$}1,000

But this is a pain, so I'd like to change \$ so it handles the size shift automatically.

My immediate thought was to do \def\${{\small\$}}, but obviously (obvious after you've naïvely tried it anyway), that results in infinite recursion. What sort of control sequence can I use to represent the font dollar sign other than \$?

2 Answers2

3

Here's a possibility; we have just to redefine \textdollar (and possibly \mathdollar, if you plan to use it in math). I scale it vertically, but not horizontally.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[osf]{mathpazo}
\usepackage{graphicx}

\DeclareTextCommand{\textdollar}{T1}{\scalebox{1}[.85]{\symbol{`\$}}}

\begin{document}

\$100 or \$600

{\footnotesize \$100 or \$600}

\end{document}

enter image description here

Note. The command \$ is defined (with the T1 encoding) to either do \textdollar or \mathdollar, depending on the context. So there's no need to redefine \$.

egreg
  • 1,121,712
2

Store the original copy of \$ and then redefine it to suit your needs:

enter image description here

\documentclass{article}
\let\olddollar\$% Store \$
\begin{document}

This solution is worth \$0.02.

\renewcommand{\$}{{\small\olddollar}}%
This solution is worth \$0.02.

\end{document}

Note though that this change may not work as expected when using \$ inside (say) a \footnote. For that you should consider the relative font size of $ inside \normalsize. That is, \small is "one size smaller" than \normalsize. The relsize package offers \smaller which would help here. See Change font size relative to current font size.

Werner
  • 603,163
  • Oh, duh :-)

    Thanks for the tip on relsize – I don't anticipate ever using a dollar sign in anything except running text, but it's always better to head off possible problems ahead of time. So in the end I used

    \usepackage{relsize} / \let\olddollar\$ / \renewcommand\${{\relsize{-0.5}\olddollar}}

    – scorchgeek May 11 '15 at 23:09
  • @SorenBjornstad: Use \renewcommand{\$}{{\smaller\$}}. – Werner May 11 '15 at 23:10
  • Unless I've misread it, according to the docs, \smaller is equivalent to \relsize{-1}, which is not what I want – that takes it down to 8 point rather than the 9 point value of \small. – scorchgeek May 11 '15 at 23:11
  • @SorenBjornstad: \smaller is equivalent to \smaller[1] which is equivalent to \relsize{-1}, which prints \small under \normalsize, whatever your \normalsize is. If \normalsize is 10pt, then \small is 9pt. See What point (pt) font size are \Large etc.? – Werner May 11 '15 at 23:17
  • I'm not trying to be contrary (and thanks for your help!), but they are definitely not identical. The docs say: "Half-steps are possible, as in \relsize{-0.5} to change from 10 pt \normalsize to 9 pt \small, but other numbers are rounded to the nearest half-integer." \smaller yields a smaller dollar sign than \relsize{-0.5} (and the dollar sign produced by the latter looks superior in terms of size to my eyes). If I zoom to 500% in my PDF viewer and measure, the unmodified $ is 38pt high, the \relsize{-0.5} and the {\small$} are both 34pt high, and the \smaller sign is 30pt high. – scorchgeek May 11 '15 at 23:33
  • @SorenBjornstad: Sure, go for it! To obtain various mid-step sizes, you may have to use lmodern. – Werner May 11 '15 at 23:34
  • I guess it maybe doesn't matter, but I'm not clear on how this is a "mid-step size" – the size I get with \relsize{-0.5} is exactly identical to what I get from \small. – scorchgeek May 11 '15 at 23:37
  • @SorenBjornstad: You're right. Strange; I was expecting something different; I checked \${\small\$}{\smaller\$}{\relsize{-1}\$}{\relsize{-0.5}\$}. Use what suits you best. – Werner May 11 '15 at 23:49