on September 5, 2005 by lieven in iMath, mac, Comments (0)

latexrender plugin for wordpress under tiger

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”); Swhereimagemagickis =
  “/usr/local/bin”; if (Soldpath) { Swhereimagemagickis .=
  “:Soldpath”;} putenv(“PATH=Swhereimagemagickis”); //
  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

 Slatexformula =
  strreplace(“”,””,Slatexformula);     Slatexformula
  =
  strreplace(“”,””,Slatexformula); 

( 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->tmpdir.”/”.Sthis->tmpfilename.”.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 wrapformula(Slatexformula) { 
  Sstring  =
  “\documentclass[“.Sthis->fontsize.”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{\Cc}{\Bbbk}\n”; 
  Sstring .= “\\newcommand{\C}{\mathbb{C}}\n”;  Sstring .=
  “\\newcommand{\Q}{\mathbb{Q}}\n”;  Sstring .=
  “\\newcommand{\Z}{\mathbb{Z}}\n”;  Sstring .=
  “\\newcommand{\N}{\mathbb{N}}\n”;  Sstring .=
  “\\newcommand{\wis}[1]{{\\text{\em \usefont{OT1}{cmtt}{m}{n}
  #1}}}\n”;  Sstring .= “\pagestyle{empty}\n”;  Sstring
  .= “\begin{document}\n”;  Sstring .=
  “S”.Slatexformula.”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
  // addfilter(‘commenttext’,
  ‘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.

No Comments

Leave a comment

XHTML: Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>