Note: You are currently viewing documentation for Moodle 2.9. Up-to-date documentation for the latest stable version of Moodle may be available here: Using TeX Notation.

Using TeX Notation: Difference between revisions

From MoodleDocs
No edit summary
Line 1: Line 1:
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 representation of a Tex expression. 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.  
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 choose to display Math in Moodle via Tex expressions,  you have to understand that that there are not only quite a few "flavors"  in the Tex world, but there are also three major [http://www.math.uiuc.edu/~hildebr/tex/course/intro2.html Tex modes], and the Moodle core Tex filter employs only one mode. What may work in one Tex implementation, may not work in another. These docs, for example, now use [http://www.tug.org/texlive/doc/texlive-en/texlive-en.html Tex Live], though your Moodle installation may be using the core Tex filter.  
If you are using other than the Moodle Tex filter to render Tex you may find yourself using other tokens, as well as different syntax.  It is critical that you understand what applications you are using to parse your text expression, as well as whether the application is parsing Tex or some other syntax and what application you are using to display the Math.  The Moodle Tex filter outputs gif or png images based on Tex text expressions deleimtied by doubledollar signs. But, if you are using the Moodle Algebra filter, you will be using a parser imported from webworks to parse non-Tex text expressions (algebra syntax), as in @@x/y@@, though you will be using the Tex filter to actually display the resulting images as png or gif.  If you use MathJax or ASCIIMathML,  you can easily change the tokens you use. ASCIIMathML on its own uses backticks, as in `root(n)(x)` though it can also parse Tex if delimited by dollar signs. ASCIIMathML by default outputs MathML and falls back to gif or png. MathJax can output MathML or HTML-CSS. The discussion below largely focuses on using Tex syntax text expressions with the Moodle Tex filter.  However, much of the discussion that addresses Tex syntax can be generalized to other applications that parse Tex.
 
If you choose to display Math in Moodle via Tex expressions,  you also have to understand that that there are not only quite a few "flavors"  in the Tex world, but there are also three major [http://www.math.uiuc.edu/~hildebr/tex/course/intro2.html Tex modes], and the Moodle core Tex filter employs only one mode. What may work in one Tex implementation, may not work in another. These docs, for example, now use [http://www.tug.org/texlive/doc/texlive-en/texlive-en.html Tex Live], though your Moodle installation may be using the core Tex filter.  


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 [http://www.math.uiuc.edu/~hildebr/tex/ resources and a tutorial here that you may find helpful.]  
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 [http://www.math.uiuc.edu/~hildebr/tex/ resources and a tutorial here that you may find helpful.]  
Line 7: Line 9:
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 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.


==TeX Notation in Moodle==
==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 no \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 written there and is editable via the text box. You can add in or subtract font packages. You can change the default font package. The issue here also seems to be that to use other fonts you need to install a full TeX notation system other than the TeX Notation system for the fonts to change.
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 no \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.
 
''A precise, i.e. simple, description of how to do that would be nice here..:)''   
 
Which would, if clearer, provide a nice little tool for developing local strategies for quick response to your student needs.
 
'''NOTE:''' The coding used here was developed on a stand alone PC using Windows XP, and a Standard installation of Moodle 1.9.9+ with nothing other than [[#Windows_and_TeX | MikTeX]] and [[#Windows_and_TeX | ImageMagick]] installed. The code has been successfully exported to a production site using Linux, except for the "\line" command - the reasons for which are [[#Reserved_Characters and Keywords | discussed below]].


==Language Conventions==  
==Language Conventions==  
Line 29: Line 25:
|}
|}


If you are using other than the Moodle Tex filter to render Tex you may find yourself using other tokens, as well as different syntax.  It is critical that you understand what applications you are using to parse your text expression, as well as whether the application is parsing Tex or some other syntax and what application you are using to display the Math.  The Moodle Tex filter outputs gif or png images based on Tex text expressions deleimtied by doubledollar signs. But, if you are using the Moodle Algebra filter, you will be using a parser imported from webworks to parse non-Tex text expressions (algebra syntax), as in @@x/y@@, though you will be using the Tex filter to actually display the resulting images as png or gif.  If you use MathJax or ASCIIMathML,  you can easily change the tokens you use. ASCIIMathML on its own uses backticks, as in `root(n)(x)` though it can also parse Tex if delimited by dollar signs. ASCIIMathML by default outputs MathML and falls back to gif or png. MathJax can output MathML or HTML-CSS. The discussion below largely focuses on using Tex syntax text expressions with the Moodle Tex filter.  However, much of the discussion that addresses Tex syntax can be generalized to other applications that parse Tex.
 


Additional spaces are placed into the equation by using the \ without a leading or 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.
Additional spaces are placed into the equation by using the \ without a leading or 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.

Revision as of 18:57, 4 August 2010

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 are using other than the Moodle Tex filter to render Tex you may find yourself using other tokens, as well as different syntax. It is critical that you understand what applications you are using to parse your text expression, as well as whether the application is parsing Tex or some other syntax and what application you are using to display the Math. The Moodle Tex filter outputs gif or png images based on Tex text expressions deleimtied by doubledollar signs. But, if you are using the Moodle Algebra filter, you will be using a parser imported from webworks to parse non-Tex text expressions (algebra syntax), as in @@x/y@@, though you will be using the Tex filter to actually display the resulting images as png or gif. If you use MathJax or ASCIIMathML, you can easily change the tokens you use. ASCIIMathML on its own uses backticks, as in `root(n)(x)` though it can also parse Tex if delimited by dollar signs. ASCIIMathML by default outputs MathML and falls back to gif or png. MathJax can output MathML or HTML-CSS. The discussion below largely focuses on using Tex syntax text expressions with the Moodle Tex filter. However, much of the discussion that addresses Tex syntax can be generalized to other applications that parse Tex.

If you choose to display Math in Moodle via Tex expressions, you also have to understand that that there are not only quite a few "flavors" in the Tex world, but there are also three major Tex modes, and the Moodle core Tex filter employs only one mode. What may work in one Tex implementation, may not work in another. These docs, for example, now use Tex Live, though your Moodle installation may be using the core Tex filter.

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.

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.

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 no \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) $$  
cfmimetex10.gif
Fraction and square root.


Additional spaces are placed into the equation by using the \ without a leading or 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.

Available Characters

There seems to be a number of differences between what characters are available in Moodle and what are not. There also seems to be great discrepancies between what the manuals tell you is available and what actually is available. 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. They are easily installed and configured.

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, and at about line 48, you will see the word "\line". Delete it 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 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)
 or
 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 $$
 
 

Fractions

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 

Brackets

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.

Ellipsis

The Ellipsis is a simple code:

  

Written like:

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

A more practical application could be:

Question:

 "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