Changes in Version 2.x of jsMath
Version 2.4b (19 Nov 2005)
- Rewrote the
tex2math
plugin in order to allow <BR> tags within the mathematics that it locates. Normally, the text can not contain HTML tags, but because some content-management systems (namely Moodle) insert <BR> tags automatically in certain circumstances,tex2math
needs to be more sophisticated. It is now possible to individually control whether to to process each of the different math delimiters ($...$, $$...$$, \(...\) and \[...\]), so you can use some but not others. See thetex2math
plugin page for more information.
- The rewrite of
tex2math
makes it work with MSIE on the Mac. (There were problems with the pattern matching with MSIE on the Mac, but the new version oftex2math
has a work-around for that).
- Fixed a problem with the
tex2math
plugin in MSIE on the PC where math that contains less-than signs did not process correctly.
Version 2.4a (15 Nov 2005)
- The
tex2math
plugin has been enhanced to allow finer control over what is processed and what is not. You can now mark an element withCLASS="tex2math_ignore"
to preventtex2math
from processing the mathematics contained within the element. Converse, you can mark an element asCLASS="tex2math_process"
to allowtex2math
to process the mathematics within the element. Note that you can nest elements of these two classes, so you can turn off processing for large amounts of the page, and turn it back on for specific regions. See the tex2math documentation for additional details.
- You can disable
tex2math
entirely by including an element withID="tex2math_off"
. Any element will do, in particular, an empty SPAN will suffice. This is intended for when jsMath is used on a bulletin board system, and you want to prevent a whole page from being processed.
- Yet another attempt to fix the baseline alignment of some mathematics in MSIE. I think this time it is going to work. (Of course, I've thought that before.)
- Fixed some positioning problems with TeX source windows (produced by double-clicking on an equation) in MSIE and Opera. The underlying code was adjusted to make it work more reliably in all browsers.
- Fixes an alignment problem with the control panel buttons in MSIE in CSS1-compatibility mode.
Version 2.4 (13 Nov 2005)
- Added ability to double click on an expression to see the TeX code that produced it. You will get the TeX source in a small panel at the location of your pointer. You can drag the panel around using the drag bar at the top of the panel, and can close the panel using the small box at the upper left or by ALT-clicking anywhere within the panel.
- Added new functionality to the
tex2math
plugin so that you can specify the delimiters to use for in-line and display mathematics (in case you don't want to use the TeX and LaTeX delimiters). Work still needs to be done to make this more flexible, but it is a start. See the tex2math plugin page for more details.
- Modified the
tex2math
plugin so that it will not translate text that is inside PRE tags.
- Added a checkbox to the jsMath control panel that allows you to disable the tex2math plugin (if it is being used), so that in case it is incorrectly translating some of the text on the page, you can turn it off and see the full text of the page unchanged.
Version 2.3f (9 Nov 2005)
- The fix for a problem in Opera in v2.3e caused problems with FireFox in some circumstances. This has been remedied.
Version 2.3e (5 Nov 2005)
- Updated
tex2math
to allow double-dollar-signs to be processed as single-dollars (this is needed by the Moodle filter for jsMath to better emulate its original mimeTeX-based tex filter).
- Improved the method for handling the MSIE bug where it was having difficulty measuring the widths of math items in tables. (The terrible hack is not longer needed.)
- Fixed a similar problem with Opera and math in tables.
- Fixed a bug where math in tables could be missaligned when a cell contains only mathematics.
- Fixed a bug introduced in 2.3b where the initialization process was performed for every math element on the page (rather than only when the scaling factor changes), so this should provide a minor speed improvement.
- Fixed typo where </NOBR> was missing the '/'.
Version 2.3d (2 Nov 2005)
- The fix to improve mathematics in scaled text included in 2.3b missed one situation where MSIE could fail to display mathematics under some circumstances. That is fixed in this version.
Version 2.3c (28 Oct 2005)
- Worked around yet another bug in MSIE: when mathematics appears within an element whose width is determined by its contents (like TD elements), if the mathematics is the widest item in the element, then MSIE could display the typeset mathematics incorrectly. The work-around is to temporarily set the width of the math element to a (large) explicit value, then typeset it, then return the width to its original size. This is a hack (as is so much of what has to be done with MSIE), but it appears to work.
Version 2.3b (21 Oct 2005)
- Added a new
ConvertTeX2
function to thetex2math
plugin that looks for $$...$$, \(...\) and \[...\], but not $...$.
- Improved ability to handle mathematics within scaled text in MSIE when image fonts are in use. The old mechanism required that the image fonts be scaled, but the new method correctly determines the proper image size.
- Altered the pattern matching in
tex2math
to handle $$...$$ that contains internal single dollar signs, e.g., $$\hbox{If $x>2$ then $x>0$}$$
Version 2.3a (15 Oct 2005)
- Worked around a bug in MSIE with the
tex2math
plugin where theConvertTeX
orConvertLaTeX
call might fail if the mathematics was the last thing in a paragraph.
- Modified the
autoload
plugin so that it can be included into a web page via server-side includes (thus avoiding an additional file transfer). See the autoload plugin page for more details.
- The image font fallback method has been modified so that it will not request an image of a character that is not defined within a font. For example, many of the extra fonts do not define glyphs for all font positions; in the past, blank images were used for these characters, but now these positions are ignored (silently). The blank images for these characters have been removed from the
jsMath/font
directory and the.zip
files for these extra fonts, so they won't take up so much space.
Version 2.3 (3 Oct 2005)
- Major overhaul of the mechanism used to load extra fonts. The fonts now call
jsMath.Font.Register()
in order to get assigned a font family number, check for the existance of the font, put up warning messages, and other common functions. As a result, if you are using any of the fonts distributed from the extra fonts download page, you will need to download them again.
- If a page loads multiple extra fonts and they are not installed on the user's computer, a single message is issued that lists all the missing fonts (in the past only the first one was listed).
- There are a bunch of new extra fonts available for download (as requested by various jsMath users).
- The scripts used to make the support files for extra jsMath fonts are now available from the author's page on making extra fonts. This will allow you to create your own extra fonts if they are not already available on for jsMath.
- The
autoload
plugin now allows you to specify a list of fonts to be loaded automatically, and a list of JavaScript files to be run when jsMath.js is loaded. See the autoload plugin page for more details.
Version 2.2 (17 Sept 2005)
- Added a new plug-in (
plugins/autload.js
) that will load jsMath.js only if the page includes SPAN or DIV tags of class "math", or (optionally) if it contains TeX or LaTeX strings that would be recognized bytex2math
. See the author's documentation on the autoload plugin.
- The
tex2math
plugin was modified to prevent it from looking for mathematics within a <NOSCRIPT> block.
- If multiple extra fonts are loaded, a user without the TeX fonts would see multiple warning messages (one for each font). Now only the first message is shown. (A future enhancement will make the single warning message refer to all the missing fonts.)
- Fixed a typo that prevented
jsMath.Process()
andjsMath.ProcessBeforeShowing()
from properly locating elements by name.
Version 2.1d (14 Sept 2005)
- Removed a debugging alert message that was accidentally left in version 2.1c
- There was a problem with image fonts where the cached data about the size of the images was not being checked properly, so was recomputed every time a character was displayed. The cache is now properly handled, so that should speed up image mode.
- Fixed a bug where loading extra fonts while in image mode would cause the data about previously loaded image fonts to be lost. The fix requires new versions of the def.js files in the extra font directories, so if you have downloaded eufm10, eurm10, etc., you should download those font ZIP archives again. See the extra fonts download page.
Version 2.1c (12 Sept 2005)
- Fixed a problem introduced in v2.1b with the
\rule
and\space
macros.
- Fixed a bug with "Hi-Res Fonts for Printing" where the fonts where incorrectly scaled so that they appear far too small. (This worked in an early beta version of jsMath v2, but apparently hasn't worked properly in any production version.)
Version 2.1b (11 Sept 2005)
- Fixed a long-standing bug where horizontal lines are only displayed in black, not in the color specified by
\color
(or by a style from the surrounding text). [Fix suggested by Szekeres Tamás]
- Fixed a similar bug with
\rule
so that it now produces a box with the color of the surrounding text.
- Dimensions can now be enclosed in braces (for example,
\rule
can be\rule{10pt}{5pt}{3pt}
instead of\rule 10pt 5pt 3pt
).
- Fixed a bug where extra space was inserted in some equations for browsers that don't allow absolute positioning within an in-line element (e.g., Opera).
Version 2.1a (21 Aug 2005)
- Fixed a problem with the
document.domain
checking when the server where jsMath is obtained uses a non-standard port number. This would cause every page that uses jsMath to issue the warning about domains not matching (but jsMath would work correctly anyway).
Version 2.1 (20 Aug 2005)
- Because of the way JavaScript security works, jsMath must be loaded from a server in the same domain as the page on which jsMath is being used. In version 2.0, if jsMath was not loaded from the same server as the page that uses it, the control panel would not work, but the math would display properly. In version 2.1, jsMath attempts to set
document.domain
to the largest common domain between jsMath and the page that loaded it, so that as long as jsMath is coming from a server in the same domain as the page that loads it, the control panel will work. If not, a warning message will be produced to help the page author recognize the problem, and the control panel will put up a message when the user tries to open it. (MSIE on the Mac does not allow setting of thedocument.domain
variable, so if you load jsMath from another server, the control panel will not work for MSIE users on the Mac.)The machanism used to load the fallback files and other optional components currently requires the use of
document.write()
. This is not allowed in XML documents, and so an alternative method will be used in a future release of jsMath. That method will not be able to load code from servers that are not in the same domain as the main page, so in the future, if jsMath is loaded from a remote source, the mathematics may not display properly (in addition to the control panel not working). It is best not to rely on that behavior of the current release.
- Improved the look of the main control panel in some browsers, particularly older versions of several browsers.
- Fixed problems with the image fallback method in Netscape 7.1 and early versions of Mozilla, Firefox, etc.
- Fixed a problem where jsMath would not recognize Opera version 8.02.
- Worked around a problem with MSIE on the PC when it is not in "quirks mode" (i.e., when the web page specifies an appropriate DOCTYPE) where the baselines of mathematics were not properly aligned with the surrounding text.
- Added a hack to try to work around a bug in Safari on the Mac where images sometimes do not display properly once they are loaded. The images are correctly loaded but are simply not shown, and anything that causes the window to be redrawn will make the images show up. The hack is to change the size of the window slightly in order to cause the page to update, thus showing the images. This is done after a two second delay, so that the images have time to load.
Version 2.0b (9 Aug 2005)
- Fixed an error in checking for <, > and & within the text contained in
SPAN
orDIV
used to encapsulate the TeX mathematics.
- Added "width:auto" specifications to the CSS styles used for the jsMath button, control panel, and font warning messages. This avoids problems with pages that set a default width of 0 to overcome the MSIE peekaboo bug, for example.
- Changed the way the scaling factor is applied to the mathematics in order to make it work more reliably in some browsers.
- Fixed an error with the control panel that caused it to reload the page from the server rather than from the cache when changes are made to the control-panel values.
- Worked around a problem with OmniWeb on the Mac where the browser would crash if the scaling factor was changed in the control panel.
- Fixed a problem with MSIE on the PC that would cause \mapsto and \longmapsto to render incorrectly when the image fonts are used.
- Modified
tex2math
to try to make it work with MSIE on the Mac, which is pretty buggy and really gets confused when you modify the text nodes on the fly. This version works pretty well, but can still get messed up under certain conditions (the text gets jumbled unpredictably). This seems to happen most when there are mixed displayed and in-line text in one text node. Try putting displayed material in separate paragraphs.
Version 2.0a (4 Aug 2005)
- Fixed a problem that caused jsMath to fail with Safari in OS X 10.3.9 and 10.4. Worked around a problem with opening the control panel in these versions as well.
- Added processing of escaped dollar signs to
jsMath.ConvertTeX()
in thetex2math
plugin.
- Fixed a bug with the
tex2math
plugin where escaped backslashes or dollars would not inhibit processing of mathematics. Eg., "\\[x+1\]
" would still be processed.
- Worked around a bug in MSIE where displayed math equations could fail to be typeset by the
tex2math
plugin. (The solution is a hack that requires jsMath to use SPAN tags in place of the usual DIV tags, but these can not be centered in the same way, so jsMath must manually set the margins to center the equations. This is not quite the same as a centered DIV, as the centering will not be recomputed if the width of the element changes, e.g., if the window is resized. If there is a better solution to this, I'd be happy to hear about it.)
- Worked around another MSIE bug that caused characters to be improperly sized when they appear within a section of text that is scaled differenlty from the default text and an image fallback mode is in effect. The solution here is to force the images to be scalable, so the results may be less satisfactory than in other browsers when the text is significanly larger than the default size for the page.
Version 2.0 (2 Aug 2005)
This is a major release of jsMath, with a number of new features. In particular, the fallback mechanism has been improved and expanded, and there is a control panel that can be used to adjust the parameters used by jsMath. Some of the changes are the following:
- The fallback situation (when there are no TeX fonts installed) now uses images to replace the missing fonts rather than unicode fonts. That method was rather unsatisfactory, both in the quality of the results, and the reliability of available characters, while the image fonts are more accurate and faster (once the images have been loaded). The user can choose between two versions of the image fonts: one that uses images for everything, and one that uses native fonts for the letters and numbers (for speed) and images for the symbols. It is also possible to select the traditional unicode method if you wish.
- jsMath now has a control panel that can be accessed via a small floating button at the lower right-hand corner of the page. This panel lets the user set a number of global options, and those choices are kept in a cookie so the browser can retain those settings from one page to the next, or one session to the next, if the user desires. The panel lets the user select the type of font to use (TeX fonts, if available, images, or unicode fonts), a scaling factor for all the mathematics on the page, whether to use font images that include alpha channel for transparency, whether to show the font warning message, and whether to show the jsMath control button (the panel can be obtained by ALT-clicking on any typeset mathematics at any time). Finally, there is a button that will load the fonts at a higher resolution for printing (though they will not look so good on screen).
- The ability for web page authors to customize jsMath has been improved (see the author's documentation for details). This includes using more styles to control the appearance of various elements, and the ability to set the default values and override various routines within jsMath, in particular the font warning message.
- There is now an add-on that will search through the text areas of your document and convert dollar signs to appropriate
<SPAN>
or<DIV>
tags, so it is easier than ever to go from a standard TeX document to a jsMath web page. You can also use LaTeX's \(...\) and \[...\] notation.
- It is now possible to load
jsMath.js
in the<HEAD>
section rather than in the document body, but you will have to calljsMath.Setup.Body()
somewhere in the body of the document, in a separate<SCRIPT>
section that includes no other code, before callingjsMath.Process()
orjsMath.ProcessBeforeShowing()
, and it can not be called from the body'sonLoad
handler.
- jsMath now handles situations better where mathematics is displayed at a size other than the default font size. In the past, the positioning would not be as accurate in these situations, but now the alignment should be more precise.
- The code has been restructured internally to remove some unused routines, collect related routines together, simplify some routines, and speed up the interpretation of the math codes.
- Because of the image fonts, which are available in a range of sizes, the jsMath directory is now substantially larger than it used to be. Because of a bug in MSIE, two copies of all the font images must be kept (one with alpha channel, and one without). You can use jsMath without the images if you want, but this will deny your readers the better fallback methods.
- There have been a number of technical bug fixes, and improved support for several browsers, particularly MSIE and Konqueror.
See also the list of changes in version 1.x.
|
|