jsLaTeX is the latest plugin I developed for jQuery and I wrote it so that I could easily be able to embed LaTeX directly into my blog but anyone can use it for their site.
You can download the normal, unpacked version for development or the packed version for production.
Click here to view a demo
Here is a link to the jQuery plugin page, where you can find all the releases.
Usage Instructions
1. Download the jquery.jslatex.js file from one of the above-mentioned links and add it to your page along with jQuery (if it is not already added):
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script src="jquery.jslatex.js"></script>
2. The simplest way to invoke the script is by calling the plugin with no parameters:
<script> $(function () { $(".latex").latex(); }); </script>
<div class="latex"> \int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi </div>
The above will render the following:
\int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi
The plugin works by taking the inner HTML of the specified container obviously assuming that it is valid LaTeX, and displays the image using CodeCogs LaTeX engine. The rendered output replaces the equation inside the container.
The plugin also accepts 3 optional parameters:
- format
- url
- callback
[format]
The format parameter is used to specify the format of the returned output. There are currently 3 supported formats:
- gif
- png
- swf
[url]
The url parameter is used to change the engine of the LaTeX generator. Let's take an example with a different engine, and in this case I will be using SITMO's LaTeX engine.
The url SITMO's engine uses to render the output is as follows:
where equation is the the LaTeX equation you wish to render.
Now we must tell the plugin where to put the equation and we do this by using the {e} specifier. This is how it can be used:
$(".latex").latex({url: 'http://www.sitmo.com/gg/latex/latex2png.2.php?z=100&eq={e}'});
As you can see from the above example, we placed the {e} specifier where the equation should be and then the engine takes care of the rest.
Here is an example of using the new engine to render the output:
\int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi
The plugin currently supports another specifier: {f} and this is used for those engines that allow you to specify a file-format output. The file-types that are currently supported are the ones mentioned in the [format] section.
If we take the 'original' engine url, we can turn into a url with specifiers like such:
Here are examples of Engines you can use (ready with specifiers):
Engines |
---|
http://latex.codecogs.com/{f}.latex?{e} |
http://www.sitmo.com/gg/latex/latex2png.2.php?z=100&eq={e} |
http://www.forkosh.dreamhost.com/mathtex.cgi?{e} |
http://chart.apis.google.com/chart?cht=tx&chl={e} |
[callback]
The callback parameter allows you to pass a function that will be executed after the image has been retrieved. In your callback function, this will refer to the newly created element (as a jQuery object) that contains the rendered output.
The following example will set a border around your rendered output.
$(".latex").latex({ callback : function() { this.css({ border: '1px solid black'}); } });
With the above callback, we can now render the following:
\int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi
bryanwb · 796 weeks ago
Tomash · 796 weeks ago
Andreas Grech 47p · 796 weeks ago
Dr. Drang · 796 weeks ago
Benjamin Flesch · 796 weeks ago
your demo is flawed: http://falconsflyingcircus.com/~dre/jslatex/
Look at the first two formulars and note that in the second on the 1 + x² under the line of the integral became a 1x². Seems to be a problem with html encoding the url parameters of your XHR.
Best wishes,
Benjamin Flesch
Andreas Grech 47p · 796 weeks ago
thanks for feedback. I'm gonna look it into that.
<a href="http://plugins.jquery.com/node/12075" target="_blank">http://plugins.jquery.com/node/12075
*Update*
Bug has now been fixed.
Thomas Gatt · 796 weeks ago
Andreas Grech 47p · 796 weeks ago
rana · 796 weeks ago
Andreas Grech 47p · 796 weeks ago
Amre · 796 weeks ago
Andreas Grech 47p · 796 weeks ago
Unfortunately, not all of the syntax works; and oddly enough, some equations work on some engines but don't work on others :/
That's why I provided the ability to change the LaTeX engine in the plugin.
Ivo Nascimento · 796 weeks ago
Andreas Grech 47p · 796 weeks ago
sitmo · 795 weeks ago
The z argument in our sitmo url is the zoom-factor.
Have fun
web design company · 746 weeks ago
Ananjan Chaudhuri · 739 weeks ago
My name is Ananjan Chaudhuri and I work for Packt Publishing, a U.K. based publishing firm specializing in focused IT books. You can read more about us here: http://www.packtpub.com/
I came across your blog via a Google search and noticed a good amount of relevant information and blog updates related to jquery.
I would like to inform you that Packt has recently published 3 new books on jquery:
1.CMS Design Using PHP and jquery
2.PHP jquery Cookbook
3.jquery Plugins Development Beginner's Guide
Keeping in mind your knowledge in this subject and having looked at your contributions, I feel you'd make an excellent reviewer of this book. In case you'd like to write a review about any of the above mentioned books on your website and/or Amazon, simply let me know your shipping details (required for registration of new reviewers) and I'll have the eBook added to your account and would provide you with the download instructions in my next e-mail. You can then download this book instantly.
If you have any queries, do let me know and I'd be happy to assist.
I look forward to hearing your thoughts on this.
Have a good day!
Ananjan.
jquery plugins · 483 weeks ago
marcos · 476 weeks ago
Php website design · 460 weeks ago
Ismuji · 198 weeks ago