Difference between revisions of "Enabling math markup"
(legacy) |
(Change source-code blocks to standard format) |
||
Line 2: | Line 2: | ||
As of MediaWiki version 1.18 the math rendering has been put into the [[MW:Extension:Math|Math extension]]. See [[MW:Manual:Math]] for more details. To download the latest version of the extensions, use: | As of MediaWiki version 1.18 the math rendering has been put into the [[MW:Extension:Math|Math extension]]. See [[MW:Manual:Math]] for more details. To download the latest version of the extensions, use: | ||
− | + | <source lang="bash"> | |
+ | git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Math.git | ||
+ | </source> | ||
Note that as of MediaWiki 1.19, the extension repository has become out of sync with the codebase and a specific version needs to be used which you can download from [http://www.mediawiki.org/wiki/Special%3aExtensionDistributor?extdist_extension=Math&extdist_version=branches/REL1_19&extdist_submit=Continue]. | Note that as of MediaWiki 1.19, the extension repository has become out of sync with the codebase and a specific version needs to be used which you can download from [http://www.mediawiki.org/wiki/Special%3aExtensionDistributor?extdist_extension=Math&extdist_version=branches/REL1_19&extdist_submit=Continue]. | ||
== Build the texvc binary == | == Build the texvc binary == | ||
Enabling math markup requires latex, dvips, gs, and convert. OCaml 3.06 or later from [http://caml.inria.fr caml.inria.fr] is required to compile ''texvc''. On Debian-based systems the requirements can be installed with the following packages: | Enabling math markup requires latex, dvips, gs, and convert. OCaml 3.06 or later from [http://caml.inria.fr caml.inria.fr] is required to compile ''texvc''. On Debian-based systems the requirements can be installed with the following packages: | ||
− | + | <source> | |
apt-get install dvipng cjk-latex ocaml | apt-get install dvipng cjk-latex ocaml | ||
− | </ | + | </source> |
*Run ''make'' from within the MediaWiki's ''math'' directory to build the ''texvc'' binary on your system. | *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. | *Make sure the directories ''tmp'' and ''math'' under 'images' exist and are writable. | ||
Line 16: | Line 18: | ||
== Example == | == Example == | ||
The following maths code: | The following maths code: | ||
− | + | <source> | |
<math> | <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 | 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> | </math> | ||
− | </ | + | </source> |
Line 38: | Line 40: | ||
To allow the web-server to have ''sudo'' access without compromising security the following line can be added to the sudoers file using ''visudo''. | To allow the web-server to have ''sudo'' access without compromising security the following line can be added to the sudoers file using ''visudo''. | ||
− | + | <source> | |
+ | www-data ALL=NOPASSWD: /path/to/wiki/extensions/Math/math/texvc | ||
+ | </source> | ||
'''Update:''' On my most recent server installation, math wasn't rendering, and the server was delivering messages about a security problem whenever math formulas tried to render. I didn't need to modify any files, as ''texvc'' was already being called as root, so I just added the binary path to the ''sudoers'' file and it worked. | '''Update:''' On my most recent server installation, math wasn't rendering, and the server was delivering messages about a security problem whenever math formulas tried to render. I didn't need to modify any files, as ''texvc'' was already being called as root, so I just added the binary path to the ''sudoers'' file and it worked. |
Revision as of 18:11, 22 May 2015
![]() |
Enabling math markup Organic Design procedure |
As of MediaWiki version 1.18 the math rendering has been put into the Math extension. See MW:Manual:Math for more details. To download the latest version of the extensions, use:
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Math.git
Note that as of MediaWiki 1.19, the extension repository has become out of sync with the codebase and a specific version needs to be used which you can download from [1].
Contents
[hide]Build the texvc binary
Enabling math markup requires latex, dvips, gs, and convert. OCaml 3.06 or later from caml.inria.fr is required to compile texvc. On Debian-based systems the requirements can be installed with the following packages:
apt-get install dvipng 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.
- Note: on Debian 7 we also required the texlive-latex-extra package.
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:
Nginx
After we changed over from Apache to Nginx I spent many hours trying to figure out why the texvc binary wouldn't produce the PNG file. The binary was being executed properly by shell_exec in MathTexvc.php, but for some reason would not build the image.
I couldn't find anything logged about a problem anywhere, and there were no differences in PHP configuration that I could find. I tried adjusting render.ml to leave the temporary files so I could analyse those (by removing the lines deleting then from the unlink_all function then running name clean and make to rebuild the texvc binary, but it wouldn't produce any of the files except the .tex one.
The only working solution I could come up with was to run the texvc as root using sudo by changing line 123 of MathTexvc.php as follows:
To allow the web-server to have sudo access without compromising security the following line can be added to the sudoers file using visudo.
www-data ALL=NOPASSWD: /path/to/wiki/extensions/Math/math/texvc
Update: On my most recent server installation, math wasn't rendering, and the server was delivering messages about a security problem whenever math formulas tried to render. I didn't need to modify any files, as texvc was already being called as root, so I just added the binary path to the sudoers file and it worked.
See also
- MW:Manual:Math
- MW:Extension:Math
- MW:Manual:Enable TeX
- MW:Manual:Running MediaWiki on Debian GNU/Linux#TeX_Support
- MW:Manual:Troubleshooting math display errors
- There was a problem extracting the database on 13/11 due to duplicate entries in the math table, see 13 November 2006.