Note: You are currently viewing documentation for Moodle 2.3. Up-to-date documentation for the latest stable version is available here: Using TeX Notation.

Using TeX Notation

From MoodleDocs

While there are quite a few notational systems employed for the purpose of representing Math notation, Moodle core provides a TeX filter that can be configured to employ identified latex, dvips and convert binaries to display a gif or png representation of a Tex expression (and hopefully will soon be able to take advantage of newer Tex distributions which will rely on latex and dvipng.) The Moodle core Tex filter falls back to the use of MimeTex if these binaries can't be located. Note that the core TeX filter is not the only way to display Tex expressions in Moodle and the discussion of Mathematics tools address a variety of other solutions. Additionally, the results obtained from the Moodle Tex or algebra filters are dependent on the Tex binaries you have installed.

If you use the Moodle native TeX Notation, you have to realize that this is not the only way of using TeX in Moodle and there are quite a few other "flavors" in the Tex world. You must also accept that the Moodle implementation of TeX is very limited, and a lot of things that work in other varieties of TeX and Latex will not work in TeX Notation. For example, there are three major Tex modes, but the Moodle core Tex filter employs only one. To make matters even more confusing, Moodle Docs now use Tex Live, which uses the delimiters <math>statement</math> to denote TeX statements, yet these pages demonstrate the use of tokens, the $$ statement $$ token, that implement TeX in Moodle's native TeX Notation. Essentially, what may work in one Tex implementation, may not work in another - yet a lot of the actual maths coding is exactly the same, no matter how it is denoted.

TeX itself is felt by some to present a significant learning curve, and the internet offers a number of tutorials. A.J. Hildebrand, a Math professor at UIUC offers resources and a tutorial here that you may find helpful. However, the basics of TeX can be mastered quite quickly.

There are a number of Maths tools available and probably one of the more useful tools for using Tex in Moodle (or elsewhere for that matter), is Dragmath which will allow you to use a GUI constructor to build your expression, and then insert it in the format you choose.

There is now, for Moodle 2.x, and Advanced Maths Tools plugin.


The discussion in these pages is centred entirely upon using the TeX Notation filter in Moodle. The code examples given are proven to work inside Moodle, but much of the discussion that addresses Tex syntax can be generalized to other applications that parse Tex. So far, all items tested work in both Moodle 1.9.x and Moodle 2.0 without change or further refinement.

Using TeX Notation with the Moodle Tex filter

For the most part, the TeX Notation has been built using a sub-set of characters from the TeX "default" character set. The trouble is there does not seem to be a "default" character set for TeX. This is one of the most confusing aspects of using TeX Notation in Moodle. When we realise that the documentation we are using is related to the creation of printed documents, and we want to use TeX on line, in Moodle, then further problems occur. There are no environment statements to be made. There are few \begins and \ends. If you go to Administration > Modules > Filters > Filter Manager you will see what filters have been enabled. If you then go to the TeX Notation page, the default preamble is editable via the text box. Using this tool you can add in or subtract font packages and other packages, change the default font package, etc.

Language Conventions

To invoke the TeX filter, use the $$ symbols to open and close statements. To invoke a particular command or control sequence, use the backslash, \. A typical control sequence looks like:

 $$ x\ =\ \frac{\sqrt{144}}{2}\ \times\ (y\ +\ 12) $$  
Fraction and square root.

Additional spaces are placed into the equation by using the \ without a trailing character. Escape characters, of which there are a few in Moodle's TeX Notation, have the \ in front of them. These are usually set aside for reserved characters.

NOTE:it also appears that different Moodles will produce different results with regard to spacing so it may require a bit of trial and error to get right.

Available Characters

There seems to be a number of differences between what characters are available in Tex Notation and what are not and what is described in Mimetex. There also seems to be great discrepancies between what the Tex and Latex manuals tell you is available and what is actually available. If you are using such manuals or web sites, they are likely to be more confusing than helpful. Using TeX Notation 2 shows a lot of what is available, but not all.

Windows and TeX

Using TeX in Windows is simpler than it used to be. Download and install a TeX for Windows program, like MikTeX. (MikTeX is probably the most useful at this point in time for Windows Users.) Also, a graphics package is required for rendering the scripted TeX statements into images, and probably the most readily available and easily installable program useful for this purpose would be ImageMagick. While there may be better programs available for these purposes, these are the most immediately useful.

 The programs are easily installed and configured however, be aware, that for XP you can use the Program 
 files folder to install the graphics program, but not the textmf folder, it should be installed as a stand 
 alone folder. It has been noted that in Windows Vista or Windows 7 you should never use system folders for 
 latex distributions, GhostScript or Imagemagick.

Known Issue

The introduction of PHP 5.3 caused some TeX rendering to break in Moodle. The flaw was traced back to the way deprecated functions were reported. Moodle Tracker responded with this:

In file filter/tex/pix.php line 29:


corrupts TeX images with php 5.3.X and there are at least 2 easy ways to fix it:

1) To totally remove line 29 and error reporting from that file

2) To change line 29 to:

 error_reporting(E_ALL & ~E_DEPRECATED);

so that php 5.3.X does not show the deprecated functions warnings that otherwise would prevent showing of TeX images.

Reserved Characters and Keywords

Most characters and numbers on the keyboard can be used at their default value. As with any computing language, though, there are a set of reserved characters and keywords that are used by the program for its own purposes. TeX Notation is no different, but it does have a very small set of Reserved Characters. This will not be a complete list of reserved characters, but some of these are:

 @ # $ % ^ & * ( ) . 

To use these characters in an equation just place the \ in front of them \$ or \%. If you want to use the backslash, just use \backslash. The only exception here seems to be the &, ampersand. See the characters listed in Using TeX Notation 2 for more details.

The Keywords, they are different. There is only one that is of concern here and that it the word "line". If the \line control sequence, or command, is not properly implemented, then the consequences can be indeterminate. Controlling lines is an adventure of its own, so getting it right when written is important, you can always reposition the line, but you might get it really wrong if you do not use it with some caution.

To use the \line control sequence, go to your text editor, open the filter\lib.php file. In this file look for the array $tex_blacklist = array(, and in the list of words that follow, you will see the word "\line". Delete the word, with its enclosing single quote marks and trailing comma, from the list.

If you do not have direct access to the server, then the whole thing becomes problematic. You may want to download and install your own Moodle and develop things there rather than on your production site. You can write things out in your own Moodle, render the statement, save the image and then upload it to your production site. If something goes seriously wrong, it is easier to restart your own Moodle than it is your production site.

WARNING: If you get a dimension wrong on a line, it can actually prevent you from creating any new TeX. You will see the offending control sequence in its natural state. Everything that you have written to that point will work, but nothing you have written after that will.

Maths Mode

A full TeX version has three modes, a "text mode", an "inline maths mode" and a "maths display mode" but Moodle seems to stay in "inline maths mode". Perhaps a better description of what happens is that Moodle allows a writer to enter "inline maths mode" when the $$ symbols are written and leave it when the $$ symbol appears a second time. Moodle does not appear to use the "maths display mode". The command sequences beginning with the $$ are not current practice in any major version of TeX, and why they are used and work in Moodle is not an issue for discussion here. Current common practice in most other flavours of TeX uses a different set of command initiation sequences.

Superscripts, Subscripts and Roots

Superscripts are recorded using the caret, ^, symbol. An example for a Maths class might be:

 $$ 4^2 \ \times \ 4^3 \ = 4^5 $$
 This is a shorthand way of saying: 
 (4 x 4) x (4 x 4 x 4) = (4 x 4 x 4 x 4 x 4)
 16 x 64 = 1024.

Subscripts are similar, but use the underscore character.

 $$ 3x_2 \ \times \ 2x_3 $$

This is OK if you want superscripts or subscripts, but square roots are a little different. This uses a control sequence.

 $$ \sqrt{64} \ = \ 8 $$

You can also take this a little further, but adding in a control character. You may ask a question like:

 $$ If \ \sqrt[n]{1024} \ = \ 4, \ what \ is \ the \ value \ of \ n? $$  

Using these different commands allows you to develop equations like:

 $$ The \sqrt{64} \ \times \ 2 \ \times \ 4^3 \ = \ 1024 $$

Superscripts, Subscripts and roots can also be noted in Matrices.


Fractions in TeX are actually simple, as long as you remember the rules.

 $$ \frac{numerator}{denominator} $$ which produces  .

This can be given as:


This is entered as:

 $$ \frac{5}{10} \ is \ equal \ to \ \frac{1}{2}.$$

With fractions (as with other commands) the curly brackets can be nested so that for example you can implement negative exponents in fractions. As you can see,

 $$\frac {5^{-2}}{3}$$ will produce 
 $$\left(\frac{3}{4}\right)^{-3}$$ will produce   and
 $$\frac{3}{4^{-3}}$$ will produce 
 You likely do not want to use $$\frac{3}{4}^{-3}$$ as it produces 

You can also use fractions and negative exponents in Matrices.


As students advance through Maths, they come into contact with brackets. Algebraic notation depends heavily on brackets. The usual keyboard values of ( and ) are useful, for example:


This is written as:

 $$ d = 2 \ \times \ (4 \ - \ j) $$

Usually, these brackets are enough for most formulae but they will not be in some circumstances. Consider this:


Is OK, but try it this way:


This can be achieved by:

 $$ 4x^3 \ + \ \left(x \ + \ \frac{42}{1 + x^4}\right) $$

A simple change using the \left( and \right) symbols instead. Note the actual bracket is both named and presented. Brackets are almost essential in Matrices.


The Ellipsis is a simple code:


Written like:

 $$ x_1, \ x_2, \ \ldots, \ x_n  $$

A more practical application could be:


 "Add together all the numbers from 1  38.
 What is an elegant and simple solution to this problem?
 Can you create an algebraic function to explain this solution?
 Will your solution work for all numbers?"

Answer: The question uses an even number to demonstrate a mathematical process and generate an algebraic formula.

Part 1: Part 2. Part 3.

An algebraic function might read something like:

Where t = total and n = the last number.

The solution is that, using the largest and the smallest numbers, the numbers are added and then multiplied by the number of different combinations to produce the same result adding the first and last numbers.

The answer must depend on the number, being a whole number. Therefore, the solution will not work for an odd range of numbers, only an even range.

See Also