Problem producing pounds symbol (£) in math mode

I'm having trouble getting a pounds symbol to appear in math-mode contexts in my document. The problem seems to be the use of the newpxtext package. MWE:

\documentclass{article}

\usepackage{newpxtext}
\usepackage[T1]{fontenc}

\begin{document}

$\pounds$

\end{document}

When I typeset the above, I just get a blank instead of the pounds symbol. Any advice on how to make it display?

• Odd. It works for me using TeXLive 2015 (MacTeX). You could try $\hbox{\pounds}$, though that does not answer the question why it works for me but not for you. – sgmoye Nov 13 '15 at 20:04
• well I first tried in on overleaf and it failed to work as described in the question, however, on a fully uptodate texlive 2015 it indeed works fine. Make sure you distribution is uptodate. Oh and Welcome to TeX.SX! – ArTourter Nov 13 '15 at 20:09
• Compiles without errors and warnings in current MiKTeX 2.9. – Mensch Nov 13 '15 at 20:46
• I tried with TeX Live 2014 and indeed the pounds sign doesn't appear. However, since it's a text command, it should be inside \mbox anyway. – egreg Nov 13 '15 at 23:30

2 Answers

When \pounds is found in math mode, LaTeX executes \mathsterling, otherwise it does \textsterling.

If we look at newpxtext.sty in a TeX Live 2014 distribution, we find

\re@DeclareMathSymbol{\mathsterling}{\mathord}{operators}{163}

The package is version 1.232, released 2015/04/07. This line is commented out in the current version 1.293 released 2015/08/07.

With your code compiled on a system using version 1.232 or earlier, the code points to the character in slot 163 of Computer Modern Roman (cmr10), because this is the font used for operators; but the font has nothing beyond slot 127.

It's even worse if you also load newpxmath, because you'll find č instead of the sterling symbol, because the normal text font in T1 encoding is used and in slot 163 one finds č.

The line was a remnant of pxfonts.sty, because the text font selected by this package indeed had a sterling symbol in that slot.

Solutions

1. Preferred: upgrade your TeX system and always load newpxmath along with newpxtext.

2. Temporary: load newpxmath and add manually to your preamble the current definition of \mathsterling, that is,

\renewcommand{\mathsterling}{\mbox{\textsterling}}

To be honest, I don't find this new definition particularly appealing, because the symbol would not scale in subscripts/superscripts.

If you need an italic sterling in math mode, scaling in subscripts/superscripts, whatever is your TeX distribution, add

\usepackage{amsmath}
\renewcommand{\mathsterling}{\text{\normalfont\itshape\textsterling}}

Full example

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{amsmath}
\usepackage{newpxtext,newpxmath}

\renewcommand{\mathsterling}{\text{\normalfont\itshape\textsterling}}

\begin{document}

$\pounds_{\pounds}$

\end{document}

The output is the same using an older TeX distribution (I tested it with TL 2012, 2013 and 2014).

Depending on your TeX distribution, the text-mode and math-mode renditions of \pounds may differ. I get the following output from running your code on a system with MacTeX2015 and version 1.293 (2015/08/07) of newpxtext:

Since newpxmath isn't loaded, the symbol produced by $\pounds$ is the math-italic glyph from the Computer Modern font family.

If the newpxmath package were loaded as, all three glyphs would be the same, at least on my system.

\documentclass{article}
\usepackage{newpxtext}
\usepackage[T1]{fontenc}
\begin{document}
\pounds, $\mbox{\pounds}$, $\pounds$
\end{document}