[XeTeX] Maths and Symbols in Latex

Ross Moore ross at maths.mq.edu.au
Thu Jul 1 02:51:11 CEST 2004

Hi Jon an Jonathan,

On 01/07/2004, at 4:54 AM, Jonathan Kew wrote:

> On 30 Jun 2004, at 11:45 am, Jon Breitenbucher wrote:
>> On Jun 30, 2004, at 2:21 PM, Jonathan Kew wrote:
>>> I'd recommend using {\char"2022} rather than {\XeTeXglyph...} <snip>
>> Strange, when I do \renewcommand{\textdollar}{\char"0024} I must 
>> enter {\textdollar}100,000 in the source or I get an error

> Try
> 	\renewcommand{\textdollar}{\char"0024\relax}

I'd recommend using   \renewcommand{\textdollar}{{\char"0024}}
or  \renewcommand{\textdollar}{{^^^^0024}}
with the extra braces.
The advantage is that the expansion of the macro acts as a single
token, if ever the \textdollar becomes a parameter to another macro,
after some expansion; e.g. when writing into the .aux or .toc file,
or for the index or bibliography.

Even better is to use a declaration:


Here's an example to better show the distinction
between these approaches:


Compare \textbf\textdollari100,000 with \textbf\textdollarii100,000
and  \textbf\textdollariii100,000.}

This typesets fine, until you uncomment the \listoffigures usage,
then run LaTeX twice:

Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
(/usr/local/teTeX/share/texmf/tex/latex/base/size11.clo)) (./chtest.aux)
! Missing number, treated as zero.
<to be read again>
l.1 ...00 and \textbf \textdollariii 100,000.}}{1}

Here's what the .aux file looks like:

[glenlivet:~] rossmoor% more chtest.aux
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces 
\textbf  \char "0024\relax 100,000 with \textbf  {\char "0024}100,000
and \textbf  \textdollariii  100,000.}}{1}}

The .lof file is similar.

Debugging this kind of problem is damnably difficult,
as you don't get a decent refence to the line of your source
that needs changing. Besides, everything looks OK at first glance.

> That should ensure that as TeX is reading the number, it stops where 
> you want and doesn't continue reading if the macro happens to be 
> followed by digits.
> Or you could use
> 	\renewcommand{\textdollar}{^^^^0024}
> as the ^^^^ notation reads exactly 4 hex digits, if I remember right.

Best if all such definitions are made robust for LaTeX.

Hope this helps,


> (147712 is the decimal equivalent of hex 0024100, in case you wondered 
> where that came from.)
> Jonathan
> _______________________________________________
> XeTeX mailing list
> postmaster at tug.org
> http://tug.org/mailman/listinfo/xetex
Ross Moore                                         ross at maths.mq.edu.au
Mathematics Department                             office: E7A-419
Macquarie University                               tel: +61 +2 9850 8955
Sydney, Australia                                  fax: +61 +2 9850 8114

More information about the XeTeX mailing list