TeX font symbols for surface and volume integral (unicode 0x222f and 0x2230)

64 views
Skip to first unread message

nageh

unread,
Aug 4, 2011, 4:44:49 AM8/4/11
to MathJax Users
Davide and other devs, may I ask you to add symbols for the surface
and volume integrals (unicode 0x222f and 0x2230) into the TeX font
files? These are much sought symbols. I was adding code to MathJax
(extension, fontdata.js and other /font files) for \oiint and \oiiint
but then realized that the symbols were not available in the TeX font
files.

Thanks a lot!
-nageh

Frédéric WANG

unread,
Aug 8, 2011, 5:31:05 AM8/8/11
to mathja...@googlegroups.com
Le 04/08/2011 10:44, nageh a �crit :
Thank you for reporting this. FYI, more stretchy symbols will be added
in the next release. These symbols are available in the STIX and Asana
fonts, but I'm not sure MathJax can currently get them (Davide can tell
more about the current status). You can enable the MathML output and do
experiments with other layout engines such as Firefox or MathPlayer.

Davide P. Cervone

unread,
Aug 12, 2011, 5:13:10 PM8/12/11
to mathja...@googlegroups.com
Nageh:

Sorry for the delay in getting back to you. We had some internal
discussions about this, and that takes time.

There are several issues that complicate your request. First, in
order to add new characters, we would need to have public-domain
versions of the glyphs for those characters, or create them
ourselves. None of the implementations I found for \oiint and \oiint
would match the other integrals in the MathJax fonts (so I didn't
check whether they were PD or not), which means we would have to
create them ourselves (not something we really want to get into).
Second, every character we add to the MathJax fonts requires
corresponding image font files and increases the size of the (already
large) image font installation. Third, some people (including you, as
I recall) have the MathJax fonts already installed locally, so if we
add characters to the fonts, there is a serious backward-compatibility
problem with people having old versions of the fonts. We are not
really interested in making new versions of the fonts for that
reason. On the other hand, it would be possible to make ADDITIONAL
font files with new characters, and that is a possibility for the
future (there are a number of characters I'd like to see as well),
though we would likely not include new image font versions of these.

You mention that you have been editing the extensions, fontdata.js and
other /font files. I would recommend against that, especially the /
font files, as these are generated programmatically from the fonts
themselves, so there is nothing you can add to those that would be
valuable, since every glyph in the fonts is already included (anything
you add would simply cause problems).

You could use \mathop{\unicode{x222F}}, for example, to get these
characters, but it will be difficult to get the different size for
displaystyle and textstyle this way.

Davide

Paul Topping

unread,
Aug 12, 2011, 5:23:38 PM8/12/11
to mathja...@googlegroups.com
It think it is very difficult to add characters to fonts because of the
backward compatibility issue. I would suggest we keep a list of
characters that would be nice to have and, at some point that may or may
not ever arrive, publish a new font that adds these characters but has a
different name (eg, "MathJax2" or whatever) and then have MathJax look
for both the new and old versions of the font

Paul

Davide P. Cervone

unread,
Aug 12, 2011, 5:40:23 PM8/12/11
to mathja...@googlegroups.com
The characters used by MathJax are not just in one font, but actually
are divided up among about 25 different fonts. It would be possible
to add a 26th font that includes any new characters that we want
(without the need to replace the original 25, so no compatibility
problem). There is data (the fontdata.js file that Nageh mentions)
that indicates which characters come from which fonts, so that could
be used to link the new font into the existing set seamlessly. This
is what I was suggesting as the probable means of adding new
characters in the future. (In fact, it would be possible for Nageh or
others to do this themselves to suit their own needs, though it is not
a trivial task, and the data file is not documented.) But I would not
want to do this for just two characters, or for each character as
someone requests it, so I would expect to put together a collection of
new characters before taking such a step.

Most such special-character needs can be handled through the \unicode
command, but this is not the case for stretchy characters, or for
"large operator" symbols like the ones Nageh is requesting. There are
a number of characters that it would be very useful to have in order
to handle more stretchy delimiters and stretchy arrows, and I do hope
to add these in this way at some point in the future. Nageh's
requests could be included at that point, along with other large
operators. That is, provided we can find or easily create the
required glyphs for them.

Davide

Paul Topping

unread,
Aug 12, 2011, 5:53:57 PM8/12/11
to mathja...@googlegroups.com
Regardless of one font or many, it will be important for
interoperability and consistency to maintain a set of characters that
are guaranteed to work with a given version of MathJax. Private
additions of fonts (and macros, for that matter) will cause problems
when someone moves equations from one website to another. As I
understand it, the \unicode command will only pass through the reference
to the character and makes no guarantee that a font is present to
display it. So it only solves the problem if someone ensures via a
separate mechanism that all readers have a font that contains that
character.

Robert Miner

unread,
Aug 12, 2011, 6:00:57 PM8/12/11
to mathja...@googlegroups.com
Right. I think we are all on the same page.

We get into trouble with backward compatibility if we change our
existing fonts, so adding new font(s) in the future is the way to go.

--Robert

Reply all
Reply to author
Forward
0 new messages