5

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}
4
  • Please post an MWE (minimum working example) showing us what you've done so far. This'll greatly help in diagnosing the problem and coming up with a solution.
    – Mico
    Mar 13, 2013 at 1:22
  • 1
    MWE added per your request.
    – Hesam
    Mar 13, 2013 at 1:51
  • Thanks for adding the MWE. I've taken the liberty of editing the title of your posting since the question isn't really about ligatures
    – Mico
    Mar 13, 2013 at 2:55
  • 2
    what you're trying to do is an anachronism. There's a reason why the $ sign changes from one to two strokes when you switch from text figures to lining figures. Lining figures became popular around 1800, replacing text figures almost entirely for a century. It was at the same time that (conincidentally) the two-stroke version became fashionable. That's why text figures were rarely seen accompanied by a two-stroke dollar sign, and vice versa. Until recently -- when people got the technical means (and the presumptuousness) to do whatever they like, no matter how awkward it might look ;)
    – Nils L
    Mar 17, 2013 at 10:04

1 Answer 1

3

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

2
  • 2
    One could also specify \renewcommand{\$}{{\dollar\char"0024}}, obviating the need to execute \let\olddollar\$. (Position 24 for the "standard" $ symbol is pretty much the norm for most fonts.)
    – Mico
    Mar 13, 2013 at 2:46
  • 1
    The point of the matter: The reduced dollar sign is a property of the font itself. It is included in the Open Type feature that calls for Old Style numbers. This is typical of many Open Type fonts, not just Adobe Caslon Pro. If the font designer had not created a specially styled dollar symbol for Old Style, then the ordinary dollar symbol would appear. Alan's code essentially selects non-Old Style (that is, Lining) for the dollar sign, but Old Style for the digits.
    – user139954
    Sep 6, 2017 at 14:47

You must log in to answer this question.

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