TeX notation filter

From MoodleDocs

The TeX Filter is a core Moodle filter intended to allow one to convert tex expressions into GIF, PNG or SVG images. The filter relies on some additional binaries to accomplish this for expressions contained between appropriate tokens. Where these binaries are not available, Moodle provides for a fallback through the use of Mimetex. Versions of MimeTex for Linux (glib2.3 32bit), Windows, Mac OS X and FreeBSD are included in the Moodle distribution. There are other technologies available for displaying Tex (see the section on Mathematics tools for a discussion.)

Note: being based on binaries it requires the availability of three PHP program execution functions: exec, shell_exec and system.

Methods and Usage

To avoid confusion you should note that the TeX filter has two separate methods for converting the TeX notation to images. The preferred method is a collection of three binaries that you are responsible for installing (if they are not already present, though many webhosts make these available) and configuring on your server. The filter settings page relates entirely to this method. If this fails for any reason the filter will fall back to a single binary - MimeTeX. A number of different builds are included in the Moodle distribution for popular operating systems, though Mimetex and its bigger brother, MathTex are easy enough to compile and install if you have systems administration experience.

Before doing anything else, you need to go to Settings > Site administration > Plugins > Filters and activate the TeX Notation Filter. If you want to use the Algebra filter (another core filter) since the Algebra Filter is really only a "front end" to the Tex filter, you should also turn on the Algebra filter. For more information on the Algebra Filter see the Algebra filter.

Once the filter is turned on and properly configured you can make use of it by including a TeX expression delimited by double-dollar signs. Example:

   $$ \sqrt{x + y} $$

If this does not display properly, see the information on debugging.

MimeTeX

Moodle may use a pre-built MimeTeX binary (located in the filters/tex directory) as a fallback if it can't properly access dvips, convert and latex binaries. There are a number of different versions for different operating systems. The TeX filter picks the appropriate binary for the detected host operating system (you will need to hack the script if your operating system is not included). Note that your web server needs to be set up with appropriate permissions for running binaries in that location.

The MimeTeX manual is available but is arguably intended for persons with systems administration experience and does not specifically address the Moodle environment.

You should only use MimeTeX if installing the full LaTeX system fails or the binaries are not available on your system. The results are not nearly as good.

Compatability with MathJax

In Moodle 2.8 onwards, the TeX Notation and MathJaxloader filter may be used in combination. If both filters are enabled on the page, images will be displayed first by the TeX notation filter, and the MathJax version of the TeX expression will replace a little while later when MathJax has finished loading and processing. If both filters are available, a teacher may decide which to use in an activity by enabling one and disabling the other.

Site administration settings

Location: TeX Notation settings link in Settings > Site administration > Plugins > Filters > Manage filters

The TeX filter settings page are primarily intended to adjust the operation of the LaTeX renderer. The defaults for the three path settings are selected according to the detection of the operating system on which Moodle is running. These are simply suggested common values - Moodle does not check that the binaries actually exist at these locations. More recent versions of Moodle show a green tick or a red cross next to the path setting - this shows that the binary exists at that location (only). The settings have no effect on the operation of the MimeTex binary (used if any of these binaries are not found).

Installing the binaries

This depends on your platform, but for a typical install you are going to need a LaTeX implementation. On modern Linux implementations you should look for the 'texlive' package (e.g. apt-get install texlive) although a Windows version is available (see Tex Live). It is highly unlikely that you will have all these binaries as part of a standard install. If you cannot find texlive you may have to install LaTeX, Ghostscript and ImageMagick separately. While not endorsed by Moodle.org, a simple installation binary for Windows is MikTeX.

For security reasons, you should ensure shell escape is disabled (shell_escape = f) in your LaTeX configuration (if is enabled, this will be set to "t"). This is to prevent the risk of users being able to execute external commands. Note that this is usually disabled by default. (If this is set to "p" i.e. restricted mode, a predefined set of commands are allowed, if this is the desired behaviour, be extremely careful which commands are allowed given all users will have access to these).

The filter settings page will try to guess the most likely location for the binary files depending on the detected platform. If correct, green ticks will appear against each setting. If red crosses appear you will need to check and modify the settings as required. A simple check is made to establish if the binaries exist at the given paths. A tick or a cross is displayed alongside each as a result. Note that this does not check that the application actually works, just that it is there.

Some systems supply the fonts as separate packages. If you are having problems make sure you have all the fonts you need installed. You may need to track down an 'extra' fonts package to get the required maths fonts.

LaTeX preamble

Enables the LaTeX preamble to be specified. The default should work for most users, but you may need to change it to support non-Latin character sets etc. Please see the LaTeX documentation for further details.

Transparent colour

This should be set to your normal text background colour. The default setting is #FFFFFF (i.e., white).

Density

This setting effects the size of the resulting image. The default setting is 120 pixels, and it produces an image of reasonable quality, but for some complicated equations, this still may not be enough. It may be that anything less is not going to produce an image of sufficient quality but the image size can be controlled by the TeX encoding when the page is rendered.

Path of latex binary

Path to standard latex binary.

On Unix based systems it is normally "/usr/bin/latex". On a MacOS X, the path is "/usr/texbin/".

In Windows, using MiKTeX, it is usually something like C:\texmf\miktex\bin\latex.exe

Path of dvips binary

Path to standard dvips binary - generally distributed as part of a LaTeX system.

On Unix based systems it is normally "/usr/bin/dvips". On a MacOS X, the path is "/usr/texbin/".

On Windows using MikTeX is usually something like C:\texmf\miktex\bin\dvips.exe

Path of convert binary

Path to standard convert binary. It is necessary to produce GIF or PNG images from using the latex and dvips binaries. This is distributed as part of the Ghostscript system, or ImageMagick in Linux.

On Unix based systems it is normally "/usr/bin/convert". On a MacOS X, the path is "/usr/local/bin/".

On a Windows-based PC the path is something like C:\Program Files\ImageMagick\convert.exe (for ImageMagick, but something else for GhostScript.)

Path of dvisvgm binary

This binary is used instead of convert to produce SVG images. This is distributed as part of TeXlive on Linux although it may be require the full or extra packages to be installed.

On Unix based systems it is normally "/usr/bin/dvisvgm".

On a Windows-based PC a compiled binary is available from sourceforge and can placed in the same directory with the latex binary.

Path of mimetex binary

If this is blank and the binaries above are missing or fail, the TeX filter will attempt to use a mimetex binary distributed with Moodle. If you have installed mimetex on the server and would rather use it include the path here.

Debugging TeX filter

The TeX filter has a debugging script (which will be much more helpful if you turn on Debugging) included that should help if you are having problems. The URL will be as follows...

  http://your.moodle.path/filter/tex/texdebug.php

You can either enter this path explicitly or with appropriate role permissions the TeX images (or more likely incorrectly rendered text, if you need debugging) will link to this. On more recent versions of Moodle you are required to be logged in as an Administrator to access this facility.

See also