[Tex/LaTex] Adobe Caslon Pro, XeLaTeX, fontspec – how to change the “dollar” symbol that’s used with oldstyle numbers

fontspecoldstylenumsxetex

I am using XeLaTeX with Adobe Caslon Pro, and I would like to have oldstyle numbers. But when I use the option Numbers=OldStyle in fontspec, my dollar sign changes from a full-height S with two lines through it to a tiny s with only one line through it. How can I get oldstyle numerals without changing the dollar sign?

I tried a number of options for ligatures in the fontspec command, however the actual ligatures they introduce are not pleasant.

Minimal Example (compiled with XeLaTeX):

\documentclass{article}
\usepackage{fontspec}

\setmainfont[
Mapping=tex-text,
%Numbers={OldStyle}
]{Adobe Caslon Pro}

\title{Title}
\author{Author}
\date{}

\begin{document}
\maketitle

\$100

\end{document}

Best Answer

I'm not sure I recommend doing what you are doing. Since the dollar sign is usually used with numbers, the font designer has decided to use a sign that matches the oldstyle numerals, which is why you get the small dollar sign. But if you really want to do this you can create a new font family for the large dollar sign and then redefine \$ to use this version:

\documentclass{article}
\usepackage{fontspec}

\setmainfont[
Mapping=tex-text,
Numbers={OldStyle}
]{Adobe Caslon Pro}
\newfontfamily\dollar{Adobe Caslon Pro}
\let\olddollar\$
\renewcommand{\$}{{\dollar\olddollar}}

\begin{document}

\$100

\end{document}

Alternatively, if you want to use both versions, you should not redefine \$ but create a new command \bigdollar and use that for the large dollar sign.

output of code