Difference between revisions of "Enabling math markup"

From Organic Design wiki
(Transparency (not working on current versions): different for new versions)
(Adding OS X notes)
Line 5: Line 5:
 
}}
 
}}
 
{{info|Use this procedure to add math rendering support which is not included in the [[install a new server]] procedure by default as it requires many additional program libraries (about 200MB worth)}}
 
{{info|Use this procedure to add math rendering support which is not included in the [[install a new server]] procedure by default as it requires many additional program libraries (about 200MB worth)}}
 +
 +
 +
Enabling math markup requires latex, dvips, gs, and convert.
 +
 +
The file in path {$IP}/math/README explains how to compile ocmal and texvc. You can run an example from the command line
 +
 +
texvc <temp directory> <output directory> <TeX code> <encoding>
 +
 +
e.g.
 +
 +
texvc /Library/WebServer/Documents/mediawiki-biodev3-1.14.0/images/tmp /Library/WebServer/Documents/mediawiki-biodev3-1.14.0/images/math "y=mc+c" iso-8859-1
  
 
== Example ==
 
== Example ==
Line 45: Line 56:
 
</pre>}}
 
</pre>}}
  
== See also ==
+
 
 +
 
 +
==OSX Specific installation==
 +
*Modify the file '''render.ml''' to include the full absolute paths to latex, dvips convert etc.
 +
<pre>
 +
let cmd_dvips tmpprefix = "/usr/local/teTeX/bin/powerpc-apple-darwin-current/dvips -q -R -E " ^ tmpprefix ^ ".dvi -f >" ^ tmpprefix ^ ".ps"
 +
      2 let cmd_latex tmpprefix = "/usr/local/teTeX/bin/powerpc-apple-darwin-current/latex " ^ tmpprefix ^ ".tex >/dev/null"
 +
      3 (* Putting -transparent white in converts arguments will sort-of give you transperancy *)
 +
      4 let cmd_convert tmpprefix finalpath = "/usr/local/bin/convert -quality 100 -density 120 " ^ tmpprefix ^ ".ps " ^ finalpath ^ " >/dev/null 2>/dev/nu        ll"
 +
      5 (* Putting -bg Transparent in dvipng's arguments will give full-alpha transparency *)
 +
      6 (* Note that IE have problems with such PNGs and need an additional javascript snippet *)
 +
      7 (* Putting -bg transparent in dvipng's arguments will give binary transparency *)
 +
      8 let cmd_dvipng tmpprefix finalpath = "/usr/local/teTeX/bin/powerpc-apple-darwin-current/dvipng -gamma 1.5 -D 120 -T tight --strict " ^ tmpprefix ^        ".dvi -o " ^ finalpath ^ " >/dev/null 2>/dev/null"
 +
</pre>
 +
Now compile texvc with '''make''' to create a texvc executable that knows where the locations of the components are.
 +
 
 +
==LocalSettings.php changes==
 +
<pre>
 +
$wgEnableUploads      = true;  # Change to allow uploads
 +
 
 +
$wgUploadDirectory  = "{$IP}/images";
 +
$wgUploadPath      = "{$wgScriptPath}/images";
 +
$wgUseTeX          = true;
 +
$wgMathPath        = "{$wgUploadPath}/math";
 +
$wgTexvc            = "{$IP}/math/texvc";  # Path to compiled texvc
 +
$wgMathDirectory    = "{$wgUploadDirectory}/math";
 +
$wgTmpDirectory    = "{$wgUploadDirectory}/tmp";
 +
</pre>
 +
==See also==
 +
*[http://www.mediawiki.org/wiki/Mediawiki_and_LaTeX_on_a_host_with_shell_access#The_traditional_.3Cmath.3E Mediawiki and LaTeX]
 +
*[http://www.mediawiki.org/wiki/Manual:Enable_TeX Manual:Enable TeX]
 +
*[http://www.mediawiki.org/wiki/Manual_talk:Running_MediaWiki_on_Mac_OS_X#Mathematics Manual_talk:Running_MediaWiki_on_Mac_OS_X#Mathematics]
 +
*[http://www.mediawiki.org/wiki/TeX#TeX TeX#TeX]
 
*[http://www.mwusers.com/forums/showthread.php?t=8168&highlight=math Thread on mwusers]
 
*[http://www.mwusers.com/forums/showthread.php?t=8168&highlight=math Thread on mwusers]
 
*[[:Category:Articles containing maths|Articles containing maths]]
 
*[[:Category:Articles containing maths|Articles containing maths]]
 
*There was a problem extracting the database on 13/11 due to duplicate entries in the math table, see [[13 November 2006]].
 
*There was a problem extracting the database on 13/11 due to duplicate entries in the math table, see [[13 November 2006]].

Revision as of 21:36, 13 May 2009

Procedure.svg Enabling math markup
Organic Design procedure
Info.svg Use this procedure to add math rendering support which is not included in the install a new server procedure by default as it requires many additional program libraries (about 200MB worth)


Enabling math markup requires latex, dvips, gs, and convert.

The file in path {$IP}/math/README explains how to compile ocmal and texvc. You can run an example from the command line

texvc <temp directory> <output directory> <TeX code> <encoding>

e.g.

texvc /Library/WebServer/Documents/mediawiki-biodev3-1.14.0/images/tmp /Library/WebServer/Documents/mediawiki-biodev3-1.14.0/images/math "y=mc+c" iso-8859-1

Example

The following maths code

<math>
e^x = \sum_{n = 0}^{\infty} {x^n \over n!} = 1 + x + {x^2 \over 2!} + {x^3 \over 3!} + {x^4 \over 4!} + \cdots
</math>

Should give the following output

[math]e^x = \sum_{n = 0}^{\infty} {x^n \over n!} = 1 + x + {x^2 \over 2!} + {x^3 \over 3!} + {x^4 \over 4!} + \cdots[/math]

Build the texvc binary

OCaml 3.06 or later from caml.inria.fr is required to compile texvc

apt-get install dvipng tetex-extra cjk-latex ocaml

Run make from within the MediaWiki's math directory to build the texvc binary on your system.

Make sure the directories tmp and math under 'images' exist and are writable.

LocalSettings.php customization

The following lines need to be added;

{{{1}}}

Transparency (not working on current versions)

The /wiki/math/render.ml script has notes about swtches that can be added to the convert and dvips commands to give transparency, but these images will not work correctly in Microsoft browsers prior to IE7. After making changes to render.ml, you must rebuild the texvc executable by issuing a make clean && make.

For older codebases, we used the following render.ml hack instead.

let cmd_convert tmpprefix finalpath = "convert -quality 100 -density 480 " \
    ^ tmpprefix ^ ".ps -negate -unsharp 8 -resize 25% " ^ finalpath ^ " >/dev/null 2>/dev/null \
    && convert " ^ finalpath ^ " -fill black -colorize 100% " ^ finalpath ^ ".png \
    && composite -compose CopyOpacity " ^ finalpath ^ " " ^ finalpath ^ ".png " ^ finalpath


OSX Specific installation

  • Modify the file render.ml to include the full absolute paths to latex, dvips convert etc.
let cmd_dvips tmpprefix = "/usr/local/teTeX/bin/powerpc-apple-darwin-current/dvips -q -R -E " ^ tmpprefix ^ ".dvi -f >" ^ tmpprefix ^ ".ps"
      2 let cmd_latex tmpprefix = "/usr/local/teTeX/bin/powerpc-apple-darwin-current/latex " ^ tmpprefix ^ ".tex >/dev/null"
      3 (* Putting -transparent white in converts arguments will sort-of give you transperancy *)
      4 let cmd_convert tmpprefix finalpath = "/usr/local/bin/convert -quality 100 -density 120 " ^ tmpprefix ^ ".ps " ^ finalpath ^ " >/dev/null 2>/dev/nu        ll"
      5 (* Putting -bg Transparent in dvipng's arguments will give full-alpha transparency *)
      6 (* Note that IE have problems with such PNGs and need an additional javascript snippet *)
      7 (* Putting -bg transparent in dvipng's arguments will give binary transparency *)
      8 let cmd_dvipng tmpprefix finalpath = "/usr/local/teTeX/bin/powerpc-apple-darwin-current/dvipng -gamma 1.5 -D 120 -T tight --strict " ^ tmpprefix ^         ".dvi -o " ^ finalpath ^ " >/dev/null 2>/dev/null"

Now compile texvc with make to create a texvc executable that knows where the locations of the components are.

LocalSettings.php changes

 $wgEnableUploads       = true;  # Change to allow uploads

 $wgUploadDirectory  = "{$IP}/images";
 $wgUploadPath       = "{$wgScriptPath}/images";
 $wgUseTeX           = true;
 $wgMathPath         = "{$wgUploadPath}/math";
 $wgTexvc            = "{$IP}/math/texvc";  # Path to compiled texvc
 $wgMathDirectory    = "{$wgUploadDirectory}/math";
 $wgTmpDirectory     = "{$wgUploadDirectory}/tmp";

See also