Promises and pie-crusts are made to be broken, a wiser man once
said. Still, promises have a much longer life-span and sometimes their
real content becomes redundant over time.
A year ago, I
promised
to document how I got the
LaTeXRender Plugin for WordPress working under OS X. The procedure
consisted of some trial-and-error operations, installing non-standard
versions of software and hardcoding certain directories throughout
certain files…
Not something I was looking forward
to when I decided to upgrade this WordPress blog but,
surprisingly, things went pretty smoothly this time (Mac-technology
has improved a lot). So, please don’t worry too much about this
post and follow the (late) instructions below.
First
things first : I will assume you have the ‘generic’ LaTeX
running under Tiger (10.4),that is, use the i-Installer to download BOTH
LaTeX and Imagemagick! Further, in order to get WordPress up and
running, have the standard
MySQL 4.0 package installed for 10.3 (not version
4.1…) and don’t use the generic Mac-PHP version, but
instead download Marc
Liyanage’s PHP5 package which has plenty of additional
packages installed (notably, GDlib and MCRYPT which comes in handy if
you want to fight spam-comments using BotCheck).
\r
\n
Download wp-
latexrender.zip and follow the instructions given to the letter
(there is one undocumented extra directory you have to fill in at the
start of the latexrender-plugin.php file). There is
just one additional thing to do. Find in the
class.latexrender.php file the line starting
with
// convert dvi file to postscript using dvips
and include the following lines just before it
:
// begin of workaround // extending the PATH environmental variable Soldpath = getenv(“PATH”); Swhere_imagemagick_is = “/usr/local/bin”; if (Soldpath) { Swhere_imagemagick_is .= “:Soldpath”;} putenv(“PATH=Swhere_imagemagick_is”); // end of workaround
activate the plugin and it
should work! Still, there are three things you may want to change. In
the latex.php file uncomment the indicated lines as
you will be using htmlArea to input your posts. In addition, if you
have the MarkDown-plugin enabled, it is best to append additional
lines such as
Slatex_formula = str_replace(“_”,”_”,Slatex_formula); Slatex_formula = str_replace(“_”,”_”,Slatex_formula);
(
between the first ” ” should be the beginning and end
em-tag respectively) or underscores will be interpreted as em-tags.
If you run into additional similar problems, the procedure is to
comment-out the line
unlink(Sthis->_tmp_dir.”/”.Sthis->_tmp_filename.”.tex”);
near the end of class.latexrender.php , look in the
tmp directory for the TeX-file, detect the problem and add similar
lines to the ones above to solve it. Another useful thing to do
is to add TeX-packages in the class.latexrender.php file. My own
version has the following predefined symbols and loaded
packages
function wrap_formula(Slatex_formula) { Sstring = “\\documentclass[“.Sthis->_font_size.”pt]{“.Sthis->_latexclass .”}\\n”; Sstring .= “\\usepackage[latin1]{inputenc}\\n”; Sstring .= “\\usepackage{amsmath}\\n”; Sstring .= “\\usepackage{amsfonts}\\n”; Sstring .= “\\usepackage{amssymb}\\n”; Sstring .= “\\usepackage{xy}\\n”; Sstring .= “\\xyoption{all}\\n”; Sstring .= “\\\\newcommand{\\vtx}[1]{*+[o][F-]{Scriptscriptstyle #1}}\\n”; Sstring .= “\\\\newcommand{\\mathbb{C}c}{\\Bbbk}\\n”; Sstring .= “\\\\newcommand{\\mathbb{C}}{\\mathbb{C}}\\n”; Sstring .= “\\\\newcommand{\\mathbb{Q}}{\\mathbb{Q}}\\n”; Sstring .= “\\\\newcommand{\\mathbb{Z}}{\\mathbb{Z}}\\n”; Sstring .= “\\\\newcommand{\\mathbb{N}}{\\mathbb{N}}\\n”; Sstring .= “\\\\newcommand{\\mathbf}[1]{{\\\\text{\\em \\usefont{OT1}{cmtt}{m}{n} #1}}}\\n”; Sstring .= “\\pagestyle{empty}\\n”; Sstring .= “\\begin{document}\\n”; Sstring .= “S”.Slatex_formula.”S\\n”; Sstring .= “\\end{document}\\n”; return Sstring; }
which, among other things, allow all commenters to add
quiver-pictures using xymatrix and vtx to depict vertices. Oh yes, you
can allow comments to include LaTeX-code by uncommenting the
line
// add_filter(‘comment_text’, ‘addlatex’);
in the latexrender-plugin.php
file (but before you do make sure you have spam under control, such as
with BotCheck mentioned above). That’s all for now. If you want
to use TeX in a comment, make sure to put the code between tags [ tex
] and [ /tex ] (omitting the extra spaces). If you want me to add
other LaTeX-packages, leave a comment.