LaTex: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
<noinclude>{{LaTeX/Top}}</noinclude> | |||
One of the greatest motivating forces for Donald Knuth when he began developing the original TeX system was to create something that allowed simple construction of mathematical formulas, whilst looking professional when printed. The fact that he succeeded was most probably why TeX (and later on, LaTeX) became so popular within the scientific community. Regardless of the history, typesetting mathematics is one of LaTeX's greatest strengths. It is also a large topic due to the existence of so much mathematical notation. | |||
If you are writing a document that needs only a few simple mathematical formulas, then you can generally use plain LaTeX: it will give you most of the tools you need. However, if you are writing a scientific document that contains numerous complicated formulas, it is highly recommended that you use the <code>amsmath</code> package, which introduces several new commands that are more powerful and flexible than the ones provided by plain LaTeX. To use this, include: | |||
{| | |||
|<source lang="latex"> | |||
\usepackage{amsmath} | |||
</source> | |||
|} | |||
in the preamble of the document. | |||
== | == Mathematics environments == | ||
LaTeX needs to know beforehand that the subsequent text does in fact contain mathematical elements. This is because LaTeX typesets maths notation differently than normal text. Therefore, special environments have been declared for this purpose. They can be distinguished into two categories depending on how they are presented: | |||
== | * ''text'' - text formulas are displayed in-line, that is, within the body of text where it is declared. e.g., I can say that ''a'' + ''a'' = 2''a'' within this sentence. | ||
* ''displayed'' - displayed formulas are separate from the main text. | |||
As maths require special environments, there are naturally the appropriate environment names you can use in the standard way. Unlike most other environments, however, there are some handy shorthands to declaring your formulas. The following table summarizes them: | |||
{|{{prettytable}} | |||
! Type | |||
! Environment | |||
! LaTeX shorthand | |||
! TeX shorthand | |||
|- | |||
| Text | |||
| <code>\begin{math}...\end{math}</code> | |||
| <code>\(...\)</code> | |||
| <code>$...$</code> | |||
|- | |||
| Displayed | |||
| <code>\begin{displaymath}...\end{displaymath}</code> or | |||
<code>\begin{equation*}...\end{equation*}</code><ref name="amsmath"/> | |||
| <code>\[...\]</code> | |||
| <code>$$...$$</code> | |||
|} | |||
'''Note:''' Using the <code>$$...$$</code> should be avoided, as it may cause problems, particularly with the AMS-LaTeX macros. Furthermore, should a problem occur, the error messages may not be helpful. | |||
Additionally, there is a second possible environment for the ''displayed'' type of formulas: <code>equation</code>. The difference between this and <code>displaymath</code> is that <code>equation</code> also adds sequential equation numbers by the side. | |||
If you are typing text normally, you are said to be in ''text mode'', while you are typing within one of those mathematical environments, you are said to be in ''math mode'', that has some differences compared to the ''text mode'': | |||
# Most spaces and line breaks do not have any significance, as all spaces are either derived logically from the mathematical expressions, or have to be specified with special commands such as <code>\quad</code> | |||
# Empty lines are not allowed. Only one paragraph per formula. | |||
# Each letter is considered to be the name of a variable and will be typeset as such. If you want to typeset normal text within a formula (normal upright font and normal spacing) then you have to enter the text using [[#Adding text to equations|dedicated commands.]] | |||
== Symbols == | |||
Mathematics has lots and lots of symbols! If there is one aspect of maths that is difficult in LaTeX it is trying to remember how to produce them. There are of course a set of symbols that can be accessed directly from the keyboard: | |||
+ - = ! / ( ) [ ] < > | ' : | |||
Beyond those listed above, distinct commands must be issued in order to display the desired symbols. And there are ''a lot!'' Greek letters, set and relations symbols, arrows, binary operators, etc. Too many to remember, and in fact, they would overwhelm this tutorial if I tried to list them all. Therefore, for a complete reference document, see the external link at the bottom of the page. | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\forall x \in X, \quad \exists y \leq \epsilon | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\forall x \in X, \quad \exists y \leq \epsilon | |||
\,</math> | |||
|} | |||
=== | ===Greek letters=== | ||
''' | Greek letters are commonly used in mathematics, and they are very easy to type in ''math mode''. You just have to type the name of the letter after a backslash: if the first letter is lowercase, you will get a lowercase Greek letter, if the first letter is uppercase (and only the first letter), then you will get an uppercase letter. Note that some uppercase Greek letters look like Latin ones, so they are not provided by LaTeX (e.g. uppercase ''Alpha'' and ''Beta'' are just "A" and "B" respectively). | ||
Theta, Phi, and Sigma are provided in two different versions: | |||
{| | |||
{| | |||
|- | |- | ||
|< | |<source lang="latex"> | ||
| | \[ | ||
|<math>\ | \alpha, \beta, \gamma, \delta, \epsilon, \zeta, \mu, | ||
\theta, \vartheta, \phi, \varphi, \omega, \sigma, \varsigma, | |||
\Gamma, \Delta, \Theta, \Phi, \Omega | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math>\alpha, \beta, \gamma, \delta, \epsilon, \zeta, \mu, \theta, | |||
\vartheta, \phi, \varphi, \omega, \sigma, \varsigma, | |||
\Gamma, \Delta, \Theta, \Phi, \Omega</math> | |||
|- | |- | ||
|< | |} | ||
|<math>\ | |||
|<math>\ | == Operators == | ||
|< | An operator is a function that is written as a word: e.g. trigonometric functions (sin, cos, tan), logarithms and exponentials (log, exp). LaTeX has many of these defined as commands: | ||
|<math>\ | {| | ||
|<source lang=latex> | |||
\[ | |||
\cos (2\theta) = \cos^2 \theta - \sin^2 \theta | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math>\cos (2\theta) = \cos^2 \theta - \sin^2 \theta \,</math> | |||
|} | |||
For certain operators such as [[w:Limit (mathematics)|limits]], the subscript is placed underneath the operator: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\lim_{x \to \infty} \exp(-x) = 0 | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math>\lim_{x \to \infty} \exp(-x) = 0</math> | |||
|} | |||
For the [[w:Modular arithmetic|modular operator]] there are two commands: <code>\bmod</code> and <code>\pmod</code>: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
a \bmod b | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
a \, \bmod \, b | |||
\,</math> | |||
|- | |- | ||
|<code>\tfrac | |<source lang=latex> | ||
|<math>\ | \[ | ||
|<math>\ | x \equiv a \pmod b | ||
|<math>\ | \] | ||
|<math>\ | </source> | ||
|style="padding-left:20px"|<math> | |||
x \equiv a \pmod b | |||
\,</math> | |||
|} | |||
To use operators which are not pre-defined, such as [[w:argmax|argmax]], see [[../Advanced Mathematics#Custom operators|custom operators]] | |||
== Powers and indices == | |||
Powers and indices are equivalent to superscripts and subscripts in normal text mode. The caret (<code>^</code>) character is used to raise something, and the underscore (<code>_</code>) is for lowering. If more than one expression is raised or lowered, they should be grouped using curly braces (<code>{</code> and <code>}</code>). | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
k_{n+1} = n^2 + k_n^2 - k_{n-1} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
k_{n+1} = n^2 + k_n^2 - k_{n-1} | |||
\,</math> | |||
|} | |||
== Fractions and Binomials == | |||
A fraction is created using the <code>\frac{''numerator''}{''denominator''}</code> command. (For those who need their memories refreshed, that's the ''top'' and ''bottom'' respectively!). Likewise, the [[w:Binomial coefficient|binomial coefficient]] (aka the Choose function) may be written using the <code>\binom</code> command | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\frac{n!}{k!(n-k)!} = \binom{n}{k} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\frac{n!}{k!(n-k)!} = \binom{n}{k} | |||
\,</math> | |||
|} | |||
You can also embed fractions within fractions: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\frac{\frac{1}{x}+\frac{1}{y}}{y-z} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\frac{\frac{1}{x}+\frac{1}{y}}{y-z} | |||
\,</math> | |||
|} | |||
Note that when appearing inside another fraction, or in inline text <math>\tfrac{a}{b}</math>, a fraction is noticeably smaller than in displayed mathematics. The <code>\tfrac</code> and <code>\dfrac</code> commands<ref name="amsmath"/> force the use of the respective styles (similarly the <code>\tbinom</code> and <code>\dbinom</code> commands do the same for the binomial coefficient). | |||
For relatively simple fractions, it may be more aesthetically pleasing to use [[#Powers and indices|powers and indices]]: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
^3/_7 | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
^3/_7 | |||
\,</math> | |||
|} | |||
== Roots == | |||
The <code>sqrt</code> command creates a square root surrounding an expression. It accepts an optional argument specified in square brackets (<code>[</code> and <code>]</code>) to change magnitude: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\sqrt{\frac{a}{b}} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\sqrt{\frac{a}{b}} | |||
\,</math> | |||
|- | |||
|<source lang=latex> | |||
\[ | |||
\sqrt[n]{1+x+x^2+x^3+\ldots} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\sqrt[n]{1+x+x^2+x^3+\ldots} | |||
\,</math> | |||
|} | |||
Some people prefer writing the square root "closing" it over its content. This method arguably makes it more clear just what is in the scope of the root sign. This habit is not normally used while writing with the computer because the text is supposed to be clear anyway, but if you want to change the output of the square root anyway, LaTeX gives you this possibility. Just add the following code in the preamble of your document: | |||
{| | |||
|<source lang="latex"> | |||
% New definition of square root: | |||
% it renames \sqrt as \oldsqrt | |||
\let\oldsqrt\sqrt | |||
% it defines the new \sqrt in terms of the old one | |||
\def\sqrt{\mathpalette\DHLhksqrt} | |||
\def\DHLhksqrt#1#2{% | |||
\setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0 | |||
\advance\dimen0-0.2\ht0 | |||
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}% | |||
{\box0\lower0.4pt\box2}} | |||
</source> | |||
|[[Image:Latex_new_squareroot.png|thumb|right|250px|The new style is on left, the old one on right]] | |||
|} | |||
This TeX code first renames the <tt>\sqrt</tt> command as <tt>\oldsqrt</tt>, then redefines <tt>\sqrt</tt> in terms of the old one, adding something more. The new square root can be seen in the picture on the right, compared to the old one. Unfortunately this code won't work if you want to use multiple roots: if you try to write <math>\sqrt[b]{a}</math> as <tt>\sqrt[b]{a}</tt> after you used the code above, you'll just get a wrong output. In other words, you can redefine the square root this way only if you are not going to use multiple roots in the whole document. | |||
== Sums and integrals == | |||
The <code>\sum</code> and <code>\int</code> commands insert the sum and integral symbols respectively, with limits specified using the caret (<code>^</code>) and underscore (<code>_</code>): | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\sum_{i=1}^{10} t_i | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\sum_{i=1}^{10} t_i | |||
\,</math> | |||
|- | |- | ||
|< | |<source lang=latex> | ||
|<math>\ | \[ | ||
|<math>\ | \int_0^\infty e^{-x} \, dx | ||
|<math>\ | \] | ||
|<math>\ | </source> | ||
|style="padding-left:20px"|<math> | |||
\int_0^\infty e^{-x} \, dx | |||
\,</math> | |||
|} | |||
There are many other "big" commands which operate in a similar manner: | |||
{| | |||
| <code>\sum</code> || <math>\sum \,</math> | |||
|style="padding-left:20px"| | |||
| <code>\prod</code> || <math>\prod</math> | |||
|style="padding-left:20px"| | |||
| <code>\coprod</code> || <math>\coprod</math> | |||
|- | |- | ||
|<code>\ | | <code>\bigoplus</code> || <math>\bigoplus</math> | ||
|<math>\ | |style="padding-left:20px"| | ||
|<math>\ | | <code>\bigotimes</code> || <math>\bigotimes</math> | ||
|< | |style="padding-left:20px"| | ||
|<math>\ | | <code>\bigodot</code> || <math>\bigodot</math> | ||
|- | |- | ||
|<code>\ | | <code>\bigcup</code> || <math>\bigcup</math> | ||
|<math>\ | |style="padding-left:20px"| | ||
|<math>\ | | <code>\bigcap</code> || <math>\bigcap</math> | ||
|< | |style="padding-left:20px"| | ||
|<math>\ | | <code>\biguplus</code> || <math>\biguplus</math> | ||
|- | |- | ||
| | | <code>\bigsqcup</code> || <math>\bigsqcup</math> | ||
|style="padding-left:20px"| | |||
| <code>\bigvee</code> || <math>\bigvee</math> | |||
|style="padding-left:20px"| | |||
| <code>\bigwedge</code> || <math>\bigwedge</math> | |||
|- | |||
| <code>\int</code> || <math>\int</math> | |||
|style="padding-left:20px"| | |||
| <code>\oint</code> || <math>\oint</math> | |||
|style="padding-left:20px"| | |||
| <code>\iint</code><ref name="amsmath"/> || <math>\iint</math> | |||
|- | |||
| <code>\iiint</code><ref name="amsmath"/> || <math>\iiint</math> | |||
|style="padding-left:20px"| | |||
| <code>\iiiint</code><ref name="amsmath"/> || <math>\iiiint</math> | |||
|style="padding-left:20px"| | |||
| <code>\idotsint</code><ref name="amsmath"/> || <math>\int \! \cdots \! \int</math> | |||
|} | |||
For more integral symbols, including those not included by default in the Computer Modern font, try the <tt>esint</tt> package. The <code>\substack</code> command<ref name="amsmath"/> allows the use of <code>\\</code> to write the limits over multiple lines: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\sum_{\substack{ | |||
0<i<m \\ | |||
0<j<n | |||
}} | |||
P(i,j) | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\sum_{\overset{\scriptstyle 0<i<m} {\scriptstyle 0<j<n}} P(i,j) | |||
\,</math> | |||
|} | |||
If you want the limits of an integral to be specified above and below the symbol (like the sum), use the <code>\limits</code> command: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\int\limits_a^b | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\int\limits_a^b | |||
\,</math> | |||
|} | |||
However if you want this to apply to ALL integrals, it is preferable to specify the <code>intlimits</code> option when loading the <code>amsmath</code> package: | |||
{| | |||
|<source lang="latex"> | |||
\usepackage[intlimits]{amsmath} | |||
</source> | |||
|} | |||
== Brackets, braces and delimiters == | |||
The use of delimiters such as brackets soon becomes important when dealing with anything but the most trivial equations. Without them, formulas can become ambiguous. Also, special types of mathematical structures, such as matrices, typically rely on delimiters to enclose them. | |||
There are a variety of delimiters available for use in LaTeX: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
() \, [] \, \{\} \, || \, \|\| \, | |||
\langle\rangle \, \lfloor\rfloor \, \lceil\rceil | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
() \, [] \, \{\} \, || \, \|\| \, \langle\rangle \, \lfloor\rfloor \, \lceil\rceil | |||
\,</math> | |||
|} | |} | ||
=== | === Automatic sizing === | ||
Very often mathematical features will differ in size, in which case the delimiters surrounding the expression should vary accordingly. This can be done automatically using the <code>left</code> and <code>right</code> commands. Any of the previous delimiters may be used in combination with these: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\left(\frac{x^2}{y^3}\right) | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\left(\frac{x^2}{y^3}\right) | |||
\,</math> | |||
|} | |||
If a delimiter on only one side of an expression is required, then an invisible delimiter on the other side may be denoted using a period (<code>.</code>). | |||
=== | === Manual sizing === | ||
In certain cases, the sizing produced by the <code>left</code> and <code>right</code> commands may not be desirable, or you may simply want finer control over the delimiter sizes. In this case, the <code>big</code>, <code>Big</code>, <code>bigg</code> and <code>Bigg</code> modifier commands may be used: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
( \big( \Big( \bigg( \Bigg( | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
( \big( \Big( \bigg( \Bigg( | |||
\,</math> | |||
|} | |||
== | == Matrices and arrays == | ||
A basic matrix may be created using the <code>matrix</code> environment<ref name="amsmath">requires the <code>amsmath</code> package</ref>: in common with other table-like structures, entries are specified by row, with columns separated using an ampersand (<code>&</code>) and a new rows separated with a double backslash (<code>\\</code>) | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\begin{matrix} | |||
a & b & c \\ | |||
d & e & f \\ | |||
g & h & i | |||
\end{matrix} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\begin{matrix} | |||
a & b & c \\ | |||
d & e & f \\ | |||
g & h & i | |||
\end{matrix} | |||
</math> | |||
|} | |||
However matrices are usually enclosed in delimiters of some kind, and while it is possible to use the [[#Automatic sizing|<code>\left</code> and <code>\right</code> commands]], there are various other predefined environments which automatically include delimiters: | |||
{|class="wikitable" | |||
! Environment name | |||
! Surrounding delimiter | |||
| | |||
|< | |||
| | |||
| | |||
| | |||
|- | |- | ||
| | | <code>pmatrix</code><ref name="amsmath"/> | ||
|<math> \ | | <math>( \, ) </math> | ||
|- | |- | ||
| | | <code>bmatrix</code><ref name="amsmath"/> | ||
|<math> \ | | <math>[ \, ] </math> | ||
|- | |- | ||
| | | <code>Bmatrix</code><ref name="amsmath"/> | ||
|<math> \ | | <math>\{ \, \} </math> | ||
|- | |- | ||
| | | <code>vmatrix</code><ref name="amsmath"/> | ||
|<math> \ | | <math>| \, | </math> | ||
|- | |- | ||
|\ | | <code>Vmatrix</code><ref name="amsmath"/> | ||
|<math> \ | | <math>\| \, \| </math> | ||
|} | |||
When writing down arbitrary sized matrices, it is common to use horizontal, vertical and diagonal triplets of dots (known as [[w:ellipsis|ellipses]]) to fill in certain columns and rows. These can be specified using the <code>\cdots</code>, <code>\vdots</code> and <code>\ddots</code> respectively: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
A_{m,n} = | |||
\begin{pmatrix} | |||
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ | |||
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ | |||
\vdots & \vdots & \ddots & \vdots \\ | |||
a_{m,1} & a_{m,2} & \cdots & a_{m,n} | |||
\end{pmatrix} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
A_{m,n} = | |||
\begin{pmatrix} | |||
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ | |||
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ | |||
\vdots & \vdots & \ddots & \vdots \\ | |||
a_{m,1} & a_{m,2} & \cdots & a_{m,n} | |||
\end{pmatrix} | |||
</math> | |||
|} | |||
In some cases you may want to have finer control of the alignment within each column, or want to insert lines between columns or rows. This can be achieved using the <code>array</code> environment, which is essentially a math-mode version of the [[../Tables#The tabular environment|<code>tabular</code> environment]], which requires that the columns be pre-specified: | |||
{| | |||
|<source lang=latex> | |||
\[ | |||
\begin{array}{c|c} | |||
1 & 2 \\ | |||
\hline | |||
3 & 4 | |||
\end{array} | |||
\] | |||
</source> | |||
|style="padding-left:20px"|<math> | |||
\begin{array}{c|c} | |||
1 & 2 \\ | |||
\hline | |||
3 & 4 | |||
\end{array} | |||
</math> | |||
|} | |||
== Adding text to equations == | |||
The math environment differs from the text environment in the representation of text. Here is an example of trying to represent text within the math environment: | |||
{| | |||
|<source lang="latex"> | |||
\[ | |||
50 apples \times 100 apples = lots of apples^2 | |||
\] | |||
</source> | |||
| style="padding-left:20px" | | |||
|<math> | |||
50 apples \times 100 apples = lots of apples^2 | |||
\,</math> | |||
|} | |||
There are two noticeable problems: there are no spaces between words or numbers, and the letters are italicized and more spaced out than normal. Both issues are simply artifacts of the maths mode, in that it treats it as a mathematical expression: spaces are ignored (LaTeX spaces mathematics according to its own rules), and each character is a separate element (so are not positioned as closely as normal text). | |||
There are a number of ways that text can be added properly. The typical way is to wrap the text with the <code>\text{...}</code> command <ref name="amsmath"/> (a similar command is <code>\mbox{...}</code>, though this causes problems with subscripts, and has a less descriptive name). Let's see what happens when the above equation code is adapted: | |||
{| | |||
|<source lang="latex"> | |||
\[ | |||
50 \text{apples} \times 100 \text{apples} = \text{lots of apples}^2 | |||
\] | |||
</source> | |||
| style="padding-left:20px" | | |||
|<math> | |||
50 \text{apples} \times 100 \text{apples} = \text{lots of apples}^2 | |||
\,</math> | |||
|} | |||
The text looks better. However, there are no gaps between the numbers and the words. Unfortunately, you are required to explicitly add these. There are many ways to add spaces between maths elements, but for the sake of simplicity you may literally add the space character in the affected <code>\text</code>(s) itself (just before the text.) | |||
{| | |||
|<source lang="latex"> | |||
\[ | |||
50 \text{ apples} \times 100 \text{ apples} = \text{lots of apples}^2 | |||
\] | |||
</source> | |||
| style="padding-left:20px" | | |||
|<math> | |||
50 \text{ apples} \times 100 \text{ apples} = \text{lots of apples}^2 | |||
\,</math> | |||
|} | |||
=== Formatted text === | |||
Using the <code>\text</code> is fine and gets the basic result. Yet, there is an alternative that offers a little more flexibility. You may recall the introduction of [[LaTeX/Formatting#Font Styles and size|font formatting commands]], such as <code>\textrm</code>, <code>\textit</code>, <code>\textbf</code>, etc. These commands format the argument accordingly, e.g., <code>\textbf{bold text}</code> gives '''bold text'''. These commands are equally valid within a maths environment to include text. The added benefit here is that you can have better control over the font formatting, rather than the standard text achieved with <code>\text</code>. | |||
{| | |||
|<source lang="latex"> | |||
\[ | |||
50 \textrm{ apples} \times 100 \textbf{ apples} = \textit{lots of apples}^2 | |||
\] | |||
</source> | |||
| style="padding-left:20px" | | |||
|<math> | |||
50 \;\textrm{ apples} \times 100 \;\textbf{ apples} = \textit{lots of apples}^2 | |||
\,</math> | |||
|} | |||
== Formatting mathematics symbols == | |||
So we can format text, what about formatting mathematics? There are a set of formatting commands very similar to the font formatting ones just used, except they are aimed specifically for text in maths mode: | |||
{|class="wikitable" | |||
! LaTeX command | |||
! Sample | |||
! Description | |||
! Common use | |||
|- | |- | ||
|\ | | <code>\mathnormal{…}</code> | ||
|<math> \ | | <math>ABCDEF abcdef 123456\,</math> | ||
| the default math font | |||
| most mathematical notation | |||
|- | |- | ||
|\ | | <code>\mathrm{…}</code> | ||
|<math> \ | | <math>\mathrm{ABCDEF abcdef 123456}\,</math> | ||
| this is the default or normal font, unitalicised | |||
| units of measurement, one word functions | |||
|- | |- | ||
|\ | | <code>\mathit{…}</code> | ||
|<math>\ | | <math>\mathit{ABCDEF abcdef 123456}\,</math> | ||
| italicised font | |||
| | |||
|- | |- | ||
|\ | | <code>\mathbf{…}</code> | ||
|<math> \ | | <math>\mathbf{ABCDEF abcdef 123456}\,</math> | ||
| bold font | |||
| vectors | |||
|- | |- | ||
|\ | | <code>\mathsf{…}</code> | ||
|<math> \ | | <math>\mathsf{ABCDEF abcdef 123456}\,</math> | ||
| [[w:sans-serif|Sans-serif]] | |||
| | |||
|- | |- | ||
|\ | | <code>\mathtt{…}</code> | ||
|< | | <font style="font-family: monospace;">ABCDEFabcdef123456</font> | ||
| [[w:Monospace font|Monospace (fixed-width) font]] | |||
| | |||
|- | |- | ||
|\ | | <code>\mathcal{…}</code> | ||
|<math> \ | | <math>\mathcal{ABCDEF abcdef 123456}\,</math> | ||
| Calligraphy (uppercase only) | |||
| often used for sheaves/schemes and categories | |||
|- | |- | ||
|\ | | <code>\mathfrak{…}</code><ref name="amsfonts">requires <tt>amsfonts</tt> or <tt>amssymb</tt> packages</ref> | ||
|<math> \ | | <math>\mathfrak{ABCDEF abcdef 123456}\,</math> | ||
| [[w:Fraktur (script)|Fraktur]] | |||
| Almost canonical font for Lie algebras | |||
|- | |- | ||
|\ | | <code>\mathbb{…}</code><ref name="amsfonts"/> | ||
|<math> \ | | <math>\mathbb{ABCDEF abcdef 123456}\,</math> | ||
| [[w:Blackboard bold|Blackboard bold]] | |||
| Used to denote special sets (e.g. real numbers) | |||
|- | |||
| <code>\mathscr{…}</code><ref>require <tt>mathrsfs</tt> package</ref> | |||
| | |||
| [[w:Script (typefaces)|Script]] | |||
| | |||
|} | |||
The maths formatting commands can be wrapped around the entire equation, and not just on the textual elements: they only format letters, numbers, and uppercase Greek, and the rest of the maths syntax is ignored. | |||
To bold lowercase Greek or other symbols use the <code>\boldsymbol</code> command<ref name="amsmath"/>; this will only work if there exists a bold version of the symbol in the current font. As a last resort there is the <code>\pmb</code> command<ref name="amsmath"/> (poor mans bold): this prints multiple versions of the character slightly offset against each other | |||
{| | |||
|<source lang="latex"> | |||
\[ | |||
\boldsymbol{\beta} = (\beta_1,\beta_2,\ldots,\beta_n) | |||
\] | |||
</source> | |||
| style="padding-left:20px" | | |||
|<math> | |||
\boldsymbol{\beta} = (\beta_1,\beta_2,\ldots,\beta_n) | |||
\,</math> | |||
|} | |||
To change the size of the fonts in math mode, see [[../Advanced Mathematics#Changing font size|Changing font size]]. | |||
=== Accents === | |||
So what to do when you run out of symbols and fonts? Well the next step is to use accents: | |||
{| | |||
| <code>a'</code> || <math>a'\,</math> | |||
| style="padding-left:20px" | | |||
| <code><nowiki>a''</nowiki></code> || <math>a''\,</math> | |||
| style="padding-left:20px" | | |||
| <code><nowiki>a'''</nowiki></code> || <math>a'''\,</math> | |||
| style="padding-left:20px" | | |||
| <code><nowiki>a''''</nowiki></code> || <math>a''''\,</math> | |||
|- | |- | ||
|\ | | <code>\hat{a}</code> || <math>\hat{a} \,</math> | ||
|<math> \ | | style="padding-left:20px" | | ||
| <code>\bar{a}</code> || <math>\bar{a} \,</math> | |||
| style="padding-left:20px" | | |||
| <code>\check{a}</code> || <math>\check{a} \,</math> | |||
| style="padding-left:20px" | | |||
| <code>\tilde{a}</code> || <math>\tilde{a} \,</math> | |||
|- | |- | ||
|\ | | <code>\grave{a}</code> || <math>\grave{a} \,</math> | ||
|<math>\ | | style="padding-left:20px" | | ||
| <code>\acute{a}</code> || <math>\acute{a} \,</math> | |||
| style="padding-left:20px" | | |||
| <code>\breve{a}</code> || <math>\breve{a} \,</math> | |||
| style="padding-left:20px" | | |||
| <code>\vec{a}</code> || <math>\vec{a} \,</math> | |||
|- | |- | ||
|\ | | <code>\dot{a}</code> || <math>\dot{a} \,</math> | ||
|< | | style="padding-left:20px" | | ||
| <code>\ddot{a}</code> || <math>\ddot{a} \,</math> | |||
| style="padding-left:20px" | | |||
| <code>\dddot{a}</code><ref name="amsmath"/> || | |||
| style="padding-left:20px" | | |||
| <code>\ddddot{a}</code><ref name="amsmath"/> || | |||
|- | |- | ||
|\ | | <code>\not{a}</code> || <math>\not{a} \,</math> | ||
|<math>\ | | style="padding-left:20px" | | ||
| <code>\mathring{a}</code> || | |||
| style="padding-left:20px" | | |||
| <code>\widehat{AAA}</code> || <math>\widehat{AAA} \,</math> | |||
| style="padding-left:20px" | | |||
| <code>\widetilde{AAA}</code> || | |||
|} | |} | ||
== | ==Plus and minus signs== | ||
Latex deals with the + and − signs in two possible ways. The most common is as a binary operator. When two maths elements appear either side of the sign, it is assumed to be a binary operator, and as such, allocates some space either side of the sign. The alternative way is a sign designation. This is when you state whether a mathematical quantity is either positive or negative. This is common for the latter, as in maths, such elements are assumed to be positive unless a - is prefixed to it. In this instance, you want the sign to appear close to the appropriate element to show their association. If you put a + or a - with nothing before it but you want it to be handled like a binary operator you can add an ''invisible'' character before the operator using <code>{}</code>. This can be useful if you are writing multiple-line formulas, and a new line could start with a = or a +, for example, then you can fix some strange alignments adding the invisible character where necessary. | |||
== Controlling horizontal spacing == | |||
Latex is obviously pretty good at typesetting maths—it was one of the chief aims of the core Tex system that Latex extends. However, it can't always be relied upon to accurately interpret formulas in the way you did. It has to make certain assumptions when there are ambiguous expressions. The result tends to be slightly incorrect horizontal spacing. In these events, the output is still satisfactory, yet, any perfectionists will no doubt wish to ''fine-tune'' their formulas to ensure spacing is correct. These are generally very subtle adjustments. | |||
There are other occasions where Latex has done its job correctly, but you just want to add some space, maybe to add a comment of some kind. For example, in the following equation, it is preferable to ensure there is a decent amount of space between the maths and the text. | |||
{| | |||
|<source lang="latex"> | |||
\[ | |||
f(n) = \left\{ | |||
\begin{array}{l l} | |||
n/2 & \quad \text{if $n$ is even}\\ | |||
-(n+1)/2 & \quad \text{if $n$ is odd}\\ | |||
\end{array} \right. | |||
\] | |||
</source> | |||
| style="vertical-align: middle;" | | |||
<math> | |||
f(n) = | |||
\begin{cases} | |||
n/2 & \quad \text{if } n \text{ is even} \\ | |||
-(n+1)/2 & \quad \text{if } n \text{ is odd}\\ | |||
\end{cases} | |||
</math> | |||
| | |||
|< | |||
| | |||
|} | |} | ||
Latex has defined two commands that can be used anywhere in documents (not just maths) to insert some horizontal space. They are <code>\quad</code> and <code>\qquad</code> | |||
A <code>\quad</code> is a space equal to the current font size. So, if you are using an 11pt font, then the space provided by <code>\quad</code> will also be 11pt (horizontally, of course.) The <code>\qquad</code> gives twice that amount. As you can see from the code from the above example, <code>\quad</code>s were used to add some separation between the maths and the text. | |||
OK, so back to the fine tuning as mentioned at the beginning of the document. A good example would be displaying the simple equation for the indefinite integral of ''y'' with respect to ''x'': | |||
<math>\int y\, \mathrm{d}x</math> | |||
If you were to try this, you may write: | |||
{| | |||
|<source lang="latex"> | |||
\[ \int y \mathrm{d}x \] | |||
</source> | |||
| style="vertical-align: middle;" | | |||
<math>\int y \mathrm{d}x</math> | |||
| | |||
|< | |||
| | |||
|} | |} | ||
However, this doesn't give the correct result. Latex doesn't respect the white-space left in the code to signify that the ''y'' and the d''x'' are independent entities. Instead, it lumps them altogether. A <code>\quad</code> would clearly be overkill is this situation—what is needed are some small spaces to be utilized in this type of instance, and that's what Latex provides: | |||
{| | |||
! | {|{{prettytable}} | ||
| | ! Command | ||
| | ! Description | ||
| | ! Size | ||
|< | |- | ||
< | | <tt>\,</tt> | ||
|- | | small space | ||
| 3/18 of a quad | |||
|- | |||
| <tt>\:</tt> | |||
| medium space | |||
| 4/18 of a quad | |||
|- | |||
| <tt>\;</tt> | |||
| large space | |||
| 5/18 of a quad | |||
|- | |||
| <tt>\!</tt> | |||
| negative space | |||
| -3/18 of a quad | |||
|} | |||
NB you can use more than one command in a sequence to achieve a greater space if necessary. | |||
So, to rectify the current problem: | |||
| | {| | ||
| | | <tt>\int y\, \mathrm{d}x</tt> | ||
\ | | | ||
\ | <math>\int y\, \mathrm{d}x</math> | ||
|- | |||
| <tt>\int y\: \mathrm{d}x</tt> | |||
| | |||
<math>\int y\;\;\!\! \mathrm{d}x</math> | |||
| | |- | ||
| <tt>\int y\; \mathrm{d}x</tt> | |||
| | |||
<math>\int y\; \mathrm{d}x</math> | |||
|- | |||
|< | |||
| | |||
<math> | |||
\ | |||
\ | |||
\ | |||
< | |||
| | |||
|} | |} | ||
The negative space may seem like an odd thing to use, however, it wouldn't be there if it didn't have ''some'' use! Take the following example: | |||
{| | |||
| | {| | ||
|<source lang="latex"> | |||
\[\left( | |||
| | \begin{array}{c} | ||
n \\ | |||
r | |||
\end{array} | |||
\right) = \frac{n!}{r!(n-r)!} | |||
\] | |||
</source> | |||
| style="vertical-align: middle;" | | |||
<math>\left( | |||
\begin{matrix} | |||
n \\ | |||
r | |||
\end{matrix} | |||
\right) = \frac{n!}{r!(n-r)!}</math> | |||
|} | |} | ||
The matrix-like expression for representing binomial coefficients is too padded. There is too much space between the brackets and the actual contents within. This can easily be corrected by adding a few negative spaces after the left bracket and before the right bracket. | |||
| | {| | ||
|\left\ | |<source lang="latex"> | ||
|<math>\left\ | \[\left(\! | ||
| | \begin{array}{c} | ||
n \\ | |||
r | |||
\end{array} | |||
\!\right) = \frac{n!}{r!(n-r)!} | |||
\] | |||
</source> | |||
| style="vertical-align: middle;" | | |||
<math>\left(\! | |||
\begin{matrix} | |||
n \\ | |||
r | |||
\end{matrix} | |||
\!\right) = \frac{n!}{r!(n-r)!}</math> | |||
|} | |||
In any case, adding some spaces manually should be avoided whenever possible: it makes the source code more complex and it's against the basic principles of a What You See is What You Mean approach. The best thing to do is to define some commands using all the spaces you want and then, when you use your command, you don't have to add any other space. Later, if you change your mind about the length of the horizontal space, you can easily change it modifying only the command you defined before. Let us use an example: you want the ''d'' of a ''dx'' in an integral to be in roman font and a small space away from the rest. If you want to type an integral like <code>\int x \; \mathrm{d} x</code>, you can define a command like this: | |||
<source lang="latex"> | |||
\newcommand{\dd}{\; \mathrm{d}} | |||
</source> | |||
in the preamble of your document. We have chosen <code>\dd</code> just because it reminds the "d" it replaces and it is fast to type. Doing so, the code for your integral becomes <code>\int x \dd x</code>. Now, whenever you write an integral, you just have to use the <code>\dd</code> instead of the "d", and all your integrals will have the same style. If you change your mind, you just have to change the definition in the preamble, and all your integrals will be changed accordingly. | |||
==Advanced Mathematics: AMS Math package== | |||
| | The AMS ([[Wikipedia:American Mathematical Society|American Mathematical Society]]) mathematics package is a powerful package that creates an higher layer of abstraction over mathematical LaTeX language; if you use it it will make your life easier. Some commands amsmath introduces will make other plain LaTeX commands obsolete: in order to keep consistency in the final output you'd better use <code>amsmath</code> commands whenever possible. If you do so, you will get an elegant output without worrying about alignment and other details, keeping your source code readable. If you want to use it, you have to add this in the preamble: | ||
<source lang="latex"> | |||
\usepackage{amsmath} | |||
</source> | |||
===Introducing text and dots in formulas=== | |||
Amsmath defines also the <code>\dots</code> command, that is a generalization of the existing <code>\ldots</code>. You can use <code>\dots</code> in both text and math mode and LaTeX will replace it with three dots "…" but it will decide according to the context whether to put it on the bottom (like <code>\ldots</code>) or centered (like <code>\cdots</code>). | |||
===Dots=== | |||
| | LaTeX gives you several commands to insert dots in your formulas. This can be particularly useful if you have to type big matrices omitting elements. First of all, here are the main dots-related commands LaTeX provides: | ||
|\ | |||
|<math> \ | {|{{prettytable}} | ||
| | ! Code !! Output !! Comment | ||
|\ | |- | ||
|<math>\ | | <tt>\dots</tt> || <math>\dots</math> || generic dots, to be used in text (outside formulas as well). It automatically manages whitespaces before and after itself according to the context, it's a higher level command. | ||
|- | |||
| <tt>\ldots</tt> || <math>\ldots</math> || the output is similar to the previous one, but there is no automatic whitespace management; it works at a lower level. | |||
|- | |||
| <tt>\cdots</tt> || <math>\cdots</math> || These dots are centered relative to the height of a letter. There is also the binary multiplication operator, <tt>\cdot</tt>, mentioned below. | |||
|- | |||
| <tt>\vdots</tt> || <math>\vdots</math> || vertical dots | |||
|- | |||
| <tt>\ddots</tt> || <math>\ddots</math> || diagonal dots | |||
|- | |||
| <tt>\hdotsfor{''n''}</tt> || <math>\ldots \ldots</math>|| to be used in matrices, it creates a row of dots spanning ''n'' columns. | |||
|} | |} | ||
==List of Mathematical Symbols== | |||
All the pre-defined mathematical symbols from the \TeX\ package are listed below. More symbols are available from extra packages. | |||
| | {| class="wikitable" valign="top" | ||
| | |+Relation Symbols | ||
|<math> | ! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script | ||
|----- | |- | ||
| <math>\leq</math>||<tt>\leq</tt>|| <math>\geq</math>||<tt>\geq</tt>|| <math>\equiv\,</math>||<tt>\equiv</tt>|| <math>\models</math>||<tt>\models</tt>|| <math>\prec</math>||<tt>\prec</tt> | |||
|- | |||
| <math>\succ</math>||<tt>\succ</tt>|| <math>\sim</math>||<tt>\sim</tt>|| <math>\perp</math>||<tt>\perp</tt>|| <math>\preceq</math>||<tt>\preceq</tt>|| <math>\succeq</math>||<tt>\succeq</tt> | |||
|- | |||
| <math>\simeq</math>||<tt>\simeq</tt>|| <math>\mid</math>||<tt>\mid</tt>|| <math>\ll</math>||<tt>\ll</tt>|| <math>\gg</math>||<tt>\gg</tt>|| <math>\asymp</math>||<tt>\asymp</tt> | |||
|- | |||
| <math>\parallel</math>||<tt>\parallel</tt>|| <math>\subset</math>||<tt>\subset</tt>|| <math>\supset</math>||<tt>\supset</tt>|| <math>\approx</math>||<tt>\approx</tt>|| <math>\bowtie</math>||<tt>\bowtie</tt> | |||
|- | |||
| <math>\subseteq</math>||<tt>\subseteq</tt>|| <math>\supseteq</math>||<tt>\supseteq</tt>|| <math>\cong</math>||<tt>\cong</tt>|| <math>\sqsubset</math>||<tt>\sqsubset</tt>|| <math>\sqsupset</math>||<tt>\sqsupset</tt> | |||
|- | |||
| <math>\neq\,</math>||<tt>\neq</tt>|| <math>\smile</math>||<tt>\smile</tt>|| <math>\sqsubseteq</math>||<tt>\sqsubseteq</tt>|| <math>\sqsupseteq</math>||<tt>\sqsupseteq</tt>|| <math>\doteq</math>||<tt>\doteq</tt> | |||
|- | |||
| <math>\frown</math>||<tt>\frown</tt>|| <math>\in</math>||<tt>\in</tt>|| <math>\ni</math>||<tt>\ni</tt>|| <math>\propto</math>||<tt>\propto</tt>|| <math>=\,</math>||<tt>=</tt> | |||
|- | |||
| <math>\vdash</math>||<tt>\vdash</tt>|| <math>\dashv</math>||<tt>\dashv</tt>|| <math><\,</math>||<tt><</tt>|| <math>>\,</math>||<tt>></tt> | |||
|} | |||
{| class="wikitable" align="left" | |||
|+Greek Letters | |||
! Symbol !! Script | |||
|- | |||
| <math>\Alpha\,</math> and <math>\alpha\,</math>|| <tt>\Alpha</tt> and <tt>\alpha</tt> | |||
|- | |||
| <math>\Beta\,</math> and <math>\beta\,</math>|| <tt>\Beta</tt> and <tt>\beta</tt> | |||
|- | |||
| <math>\Gamma\,</math> and <math>\gamma\,</math>|| <tt>\Gamma</tt> and <tt>\gamma</tt> | |||
|- | |||
| <math>\Delta\,</math> and <math>\delta\,</math>|| <tt>\Delta</tt> and <tt>\delta</tt> | |||
|- | |||
| <math>\Epsilon\,</math>, <math>\epsilon\,</math> and <math>\varepsilon</math>|| <tt>\Epsilon</tt>, <tt>\epsilon</tt> and <tt>\varepsilon</tt> | |||
|- | |||
| <math>\Zeta\,</math> and <math>\zeta\,</math>|| <tt>\Zeta</tt> and <tt>\zeta</tt> | |||
|- | |||
| <math>\Eta\,</math> and <math>\eta\,</math>|| <tt>\Eta</tt> and <tt>\eta</tt> | |||
|- | |||
| <math>\Theta\,</math>, <math>\theta\,</math> and <math>\vartheta</math>|| <tt>\Theta</tt>, <tt>\theta</tt> and <tt>\vartheta</tt> | |||
|- | |||
| <math>\Iota\,</math> and <math>\iota\,</math>|| <tt>\Iota</tt> and <tt>\iota</tt> | |||
|- | |||
| <math>\Kappa\,</math> and <math>\kappa\,</math>|| <tt>\Kappa</tt> and <tt>\kappa</tt> | |||
|- | |||
| <math>\Lambda\,</math> and <math>\lambda\,</math>|| <tt>\Lambda</tt> and <tt>\lambda</tt> | |||
|- | |||
| <math>\Mu\,</math> and <math>\mu\,</math>|| <tt>\Mu</tt> and <tt>\mu</tt> | |||
|- | |||
| <math>\Nu\,</math> and <math>\nu\,</math>|| <tt>\Nu</tt> and <tt>\nu</tt> | |||
|- | |||
| <math>\Xi\,</math> and <math>\xi\,</math>|| <tt>\Xi</tt> and <tt>\xi</tt> | |||
|- | |||
| <math>\Pi\,</math>, <math>\pi\,</math> and <math>\varpi</math>|| <tt>\Pi</tt>, <tt>\pi</tt> and <tt>\varpi</tt> | |||
|- | |||
| <math>\Rho\,</math>, <math>\rho\,</math> and <math>\varrho</math>|| <tt>\Rho</tt>, <tt>\rho</tt> and <tt>\varrho</tt> | |||
|- | |||
| <math>\Sigma\,</math>, <math>\sigma\,</math> and <math>\varsigma</math>|| <tt>\Sigma</tt>, <tt>\sigma</tt> and <tt>\varsigma</tt> | |||
|- | |||
| <math>\Tau\,</math> and <math>\tau\,</math>|| <tt>\Tau</tt> and <tt>\tau</tt> | |||
|- | |||
| <math>\Upsilon\,</math> and <math>\upsilon\,</math>|| <tt>\Upsilon</tt> and <tt>\upsilon</tt> | |||
|- | |||
| <math>\Phi\,</math>, <math>\phi\,</math>, and <math>\varphi</math>|| <tt>\Phi</tt>, <tt>\phi</tt> and <tt>\varphi</tt> | |||
|- | |||
| <math>\Chi\,</math> and <math>\chi\,</math>|| <tt>\Chi</tt> and <tt>\chi</tt> | |||
|- | |||
| <math>\Psi\,</math> and <math>\psi\,</math>|| <tt>\Psi</tt> and <tt>\psi</tt> | |||
|- | |||
| <math>\Omega\,</math> and <math>\omega\,</math>|| <tt>\Omega</tt> and <tt>\omega</tt> | |||
|} | |||
| | {| class="wikitable" align="center" | ||
| | |+Binary Operations | ||
|<math> | ! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script | ||
|----- | |- | ||
| <math>\pm\,</math> || <tt>\pm</tt> || <math>\cap\,</math> || <tt>\cap</tt> || <math>\diamond</math> || <tt>\diamond</tt> || <math>\oplus</math> || <tt>\oplus</tt> | |||
|- | |||
| <math>\mp</math> || <tt>\mp</tt> || <math>\cup</math> || <tt>\cup</tt> || <math>\bigtriangleup</math> || <tt>\bigtriangleup</tt> || <math>\ominus</math> || <tt>\ominus</tt> | |||
|- | |||
| <math>\times\,</math> || <tt>\times</tt> || <math>\uplus</math> || <tt>\uplus</tt> || <math>\bigtriangledown</math> || <tt>\bigtriangledown</tt> || <math>\otimes</math> || <tt>\otimes</tt> | |||
|- | |||
| <math>\div</math> || <tt>\div</tt> || <math>\sqcap</math> || <tt>\sqcap</tt> || <math>\triangleleft</math> || <tt>\triangleleft</tt> || <math>\oslash</math> || <tt>\oslash</tt> | |||
|- | |||
| <math>\ast</math> || <tt>\ast</tt> || <math>\sqcup</math> || <tt>\sqcup</tt> || <math>\triangleright</math> || <tt>\triangleright</tt> || <math>\odot</math> || <tt>\odot</tt> | |||
|- | |||
| <math>\star</math> || <tt>\star</tt> || <math>\vee</math> || <tt>\vee</tt> || <math>\bigcirc</math> || <tt>\bigcirc</tt> || <math>\circ</math> || <tt>\circ</tt> | |||
|- | |||
| <math>\wedge</math> || <tt>\wedge</tt> || <math>\dagger\,</math> || <tt>\dagger</tt> || <math>\bullet</math> || <tt>\bullet</tt> || <math>\setminus\,</math> || <tt>\setminus</tt> | |||
|- | |||
| <math>\ddagger\,</math> || <tt>\ddagger</tt> || <math>\cdot</math> || <tt>\cdot</tt> || <math>\wr</math> || <tt>\wr</tt> || <math>\amalg</math> || <tt>\amalg</tt> | |||
|} | |||
| | {| class="wikitable" | ||
| | |+Set and/or Logic Notation | ||
|<math> | ! Symbol !! Script | ||
|- | |||
| <math>\exists\,</math> || <tt>\exists</tt> | |||
|- | |||
| <math>\forall\,</math> || <tt>\forall</tt> | |||
|- | |||
| <math>\neg\,</math> || <tt>\neg</tt> | |||
|- | |||
| <math>\in\,</math> and <math>\notin\,</math> || <tt>\in</tt> and <tt>\notin</tt> | |||
|- | |||
| <math>\ni\,</math> || <tt>\ni</tt> | |||
|- | |||
| <math>\land\,</math> || <tt>\land</tt> | |||
|- | |||
| <math>\lor\,</math> || <tt>\lor</tt> | |||
|- | |||
| <math>\implies\,</math> || <tt>\implies</tt> | |||
|- | |||
| <math>\iff\,</math> || <tt>\iff</tt> | |||
|- | |||
| <math>\top\,</math> || <tt>\top</tt> | |||
|- | |||
| <math>\bot\,</math> || <tt>\bot</tt> | |||
|- | |||
| <math>\emptyset\,</math> || <tt>\emptyset</tt> | |||
|} | |} | ||
<!-- Sections remaining: Table 3 onwards from symbols.pdf --> | |||
{{clear}} | |||
=== Summary === | |||
As you can begin to see, typesetting maths can be tricky at times. However, because Latex provides so much control, you can get professional quality mathematics typesetting for relatively little effort (once you've had a bit of practice, of course!). It would be possible to keep going and going with maths topics because it seems potentially limitless. However, with this tutorial, you should be able to get along sufficiently. | |||
* | {{TODO| | ||
* [ | * introduce symbols from [http://www.andy-roberts.net/misc/latex/tutorial9/symbols.pdf] | ||
* [ | * add example for alignat [ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf] | ||
* | * Consider, instead of using the symbols from the above mentioned, using what has already been introduced in [http://en.wikipedia.org/wiki/Math_markup] instead of retyping the tables | ||
* | * How to box an equation within an align environment | ||
* Color in equations | |||
}} | |||
== | == Notes == | ||
<references/> | |||
* | ==Further reading== | ||
* [[meta:Help:Displaying a formula]]: Wikimedia uses a subset of LaTeX commands. | |||
==External links== | |||
[ | * [http://www.artofproblemsolving.com/Wiki/index.php/LaTeX:Symbols LaTeX maths symbols] | ||
[ | * [http://detexify.kirelabs.org detexify]: applet for looking up LaTeX symbols by handwriting them | ||
[ | * [ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf <tt>amsmath</tt> documentation] | ||
* [http://www.thestudentroom.co.uk/wiki/LaTeX LaTeX - The Student Room] | |||
<noinclude> | |||
{{LaTeX/Bottom|Page Layout|Advanced Mathematics}} | |||
</noinclude> | |||
Revision as of 12:58, 22 December 2009
One of the greatest motivating forces for Donald Knuth when he began developing the original TeX system was to create something that allowed simple construction of mathematical formulas, whilst looking professional when printed. The fact that he succeeded was most probably why TeX (and later on, LaTeX) became so popular within the scientific community. Regardless of the history, typesetting mathematics is one of LaTeX's greatest strengths. It is also a large topic due to the existence of so much mathematical notation.
If you are writing a document that needs only a few simple mathematical formulas, then you can generally use plain LaTeX: it will give you most of the tools you need. However, if you are writing a scientific document that contains numerous complicated formulas, it is highly recommended that you use the amsmath
package, which introduces several new commands that are more powerful and flexible than the ones provided by plain LaTeX. To use this, include:
\usepackage{amsmath}
|
in the preamble of the document.
Mathematics environments
LaTeX needs to know beforehand that the subsequent text does in fact contain mathematical elements. This is because LaTeX typesets maths notation differently than normal text. Therefore, special environments have been declared for this purpose. They can be distinguished into two categories depending on how they are presented:
- text - text formulas are displayed in-line, that is, within the body of text where it is declared. e.g., I can say that a + a = 2a within this sentence.
- displayed - displayed formulas are separate from the main text.
As maths require special environments, there are naturally the appropriate environment names you can use in the standard way. Unlike most other environments, however, there are some handy shorthands to declaring your formulas. The following table summarizes them:
Type | Environment | LaTeX shorthand | TeX shorthand |
---|---|---|---|
Text | \begin{math}...\end{math}
|
\(...\)
|
$...$
|
Displayed | \begin{displaymath}...\end{displaymath} or
|
\[...\]
|
$$...$$
|
Note: Using the $$...$$
should be avoided, as it may cause problems, particularly with the AMS-LaTeX macros. Furthermore, should a problem occur, the error messages may not be helpful.
Additionally, there is a second possible environment for the displayed type of formulas: equation
. The difference between this and displaymath
is that equation
also adds sequential equation numbers by the side.
If you are typing text normally, you are said to be in text mode, while you are typing within one of those mathematical environments, you are said to be in math mode, that has some differences compared to the text mode:
- Most spaces and line breaks do not have any significance, as all spaces are either derived logically from the mathematical expressions, or have to be specified with special commands such as
\quad
- Empty lines are not allowed. Only one paragraph per formula.
- Each letter is considered to be the name of a variable and will be typeset as such. If you want to typeset normal text within a formula (normal upright font and normal spacing) then you have to enter the text using dedicated commands.
Symbols
Mathematics has lots and lots of symbols! If there is one aspect of maths that is difficult in LaTeX it is trying to remember how to produce them. There are of course a set of symbols that can be accessed directly from the keyboard:
+ - = ! / ( ) [ ] < > | ' :
Beyond those listed above, distinct commands must be issued in order to display the desired symbols. And there are a lot! Greek letters, set and relations symbols, arrows, binary operators, etc. Too many to remember, and in fact, they would overwhelm this tutorial if I tried to list them all. Therefore, for a complete reference document, see the external link at the bottom of the page.
\[
\forall x \in X, \quad \exists y \leq \epsilon
\]
|
[math]\displaystyle{ \forall x \in X, \quad \exists y \leq \epsilon \, }[/math] |
Greek letters
Greek letters are commonly used in mathematics, and they are very easy to type in math mode. You just have to type the name of the letter after a backslash: if the first letter is lowercase, you will get a lowercase Greek letter, if the first letter is uppercase (and only the first letter), then you will get an uppercase letter. Note that some uppercase Greek letters look like Latin ones, so they are not provided by LaTeX (e.g. uppercase Alpha and Beta are just "A" and "B" respectively). Theta, Phi, and Sigma are provided in two different versions:
\[
\alpha, \beta, \gamma, \delta, \epsilon, \zeta, \mu,
\theta, \vartheta, \phi, \varphi, \omega, \sigma, \varsigma,
\Gamma, \Delta, \Theta, \Phi, \Omega
\]
|
[math]\displaystyle{ \alpha, \beta, \gamma, \delta, \epsilon, \zeta, \mu, \theta, \vartheta, \phi, \varphi, \omega, \sigma, \varsigma, \Gamma, \Delta, \Theta, \Phi, \Omega }[/math] |
Operators
An operator is a function that is written as a word: e.g. trigonometric functions (sin, cos, tan), logarithms and exponentials (log, exp). LaTeX has many of these defined as commands:
\[
\cos (2\theta) = \cos^2 \theta - \sin^2 \theta
\]
|
[math]\displaystyle{ \cos (2\theta) = \cos^2 \theta - \sin^2 \theta \, }[/math] |
For certain operators such as limits, the subscript is placed underneath the operator:
\[
\lim_{x \to \infty} \exp(-x) = 0
\]
|
[math]\displaystyle{ \lim_{x \to \infty} \exp(-x) = 0 }[/math] |
For the modular operator there are two commands: \bmod
and \pmod
:
\[
a \bmod b
\]
|
[math]\displaystyle{ a \, \bmod \, b \, }[/math] |
\[
x \equiv a \pmod b
\]
|
[math]\displaystyle{ x \equiv a \pmod b \, }[/math] |
To use operators which are not pre-defined, such as argmax, see [[../Advanced Mathematics#Custom operators|custom operators]]
Powers and indices
Powers and indices are equivalent to superscripts and subscripts in normal text mode. The caret (^
) character is used to raise something, and the underscore (_
) is for lowering. If more than one expression is raised or lowered, they should be grouped using curly braces ({
and }
).
\[
k_{n+1} = n^2 + k_n^2 - k_{n-1}
\]
|
[math]\displaystyle{ k_{n+1} = n^2 + k_n^2 - k_{n-1} \, }[/math] |
Fractions and Binomials
A fraction is created using the \frac{numerator}{denominator}
command. (For those who need their memories refreshed, that's the top and bottom respectively!). Likewise, the binomial coefficient (aka the Choose function) may be written using the \binom
command
\[
\frac{n!}{k!(n-k)!} = \binom{n}{k}
\]
|
[math]\displaystyle{ \frac{n!}{k!(n-k)!} = \binom{n}{k} \, }[/math] |
You can also embed fractions within fractions:
\[
\frac{\frac{1}{x}+\frac{1}{y}}{y-z}
\]
|
[math]\displaystyle{ \frac{\frac{1}{x}+\frac{1}{y}}{y-z} \, }[/math] |
Note that when appearing inside another fraction, or in inline text [math]\displaystyle{ \tfrac{a}{b} }[/math], a fraction is noticeably smaller than in displayed mathematics. The \tfrac
and \dfrac
commands[1] force the use of the respective styles (similarly the \tbinom
and \dbinom
commands do the same for the binomial coefficient).
For relatively simple fractions, it may be more aesthetically pleasing to use powers and indices:
\[
^3/_7
\]
|
[math]\displaystyle{ ^3/_7 \, }[/math] |
Roots
The sqrt
command creates a square root surrounding an expression. It accepts an optional argument specified in square brackets ([
and ]
) to change magnitude:
\[
\sqrt{\frac{a}{b}}
\]
|
[math]\displaystyle{ \sqrt{\frac{a}{b}} \, }[/math] |
\[
\sqrt[n]{1+x+x^2+x^3+\ldots}
\]
|
[math]\displaystyle{ \sqrt[n]{1+x+x^2+x^3+\ldots} \, }[/math] |
Some people prefer writing the square root "closing" it over its content. This method arguably makes it more clear just what is in the scope of the root sign. This habit is not normally used while writing with the computer because the text is supposed to be clear anyway, but if you want to change the output of the square root anyway, LaTeX gives you this possibility. Just add the following code in the preamble of your document:
% New definition of square root:
% it renames \sqrt as \oldsqrt
\let\oldsqrt\sqrt
% it defines the new \sqrt in terms of the old one
\def\sqrt{\mathpalette\DHLhksqrt}
\def\DHLhksqrt#1#2{%
\setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}
|
This TeX code first renames the \sqrt command as \oldsqrt, then redefines \sqrt in terms of the old one, adding something more. The new square root can be seen in the picture on the right, compared to the old one. Unfortunately this code won't work if you want to use multiple roots: if you try to write [math]\displaystyle{ \sqrt[b]{a} }[/math] as \sqrt[b]{a} after you used the code above, you'll just get a wrong output. In other words, you can redefine the square root this way only if you are not going to use multiple roots in the whole document.
Sums and integrals
The \sum
and \int
commands insert the sum and integral symbols respectively, with limits specified using the caret (^
) and underscore (_
):
\[
\sum_{i=1}^{10} t_i
\]
|
[math]\displaystyle{ \sum_{i=1}^{10} t_i \, }[/math] |
\[
\int_0^\infty e^{-x} \, dx
\]
|
[math]\displaystyle{ \int_0^\infty e^{-x} \, dx \, }[/math] |
There are many other "big" commands which operate in a similar manner:
\sum |
[math]\displaystyle{ \sum \, }[/math] | \prod |
[math]\displaystyle{ \prod }[/math] | \coprod |
[math]\displaystyle{ \coprod }[/math] | ||
\bigoplus |
[math]\displaystyle{ \bigoplus }[/math] | \bigotimes |
[math]\displaystyle{ \bigotimes }[/math] | \bigodot |
[math]\displaystyle{ \bigodot }[/math] | ||
\bigcup |
[math]\displaystyle{ \bigcup }[/math] | \bigcap |
[math]\displaystyle{ \bigcap }[/math] | \biguplus |
[math]\displaystyle{ \biguplus }[/math] | ||
\bigsqcup |
[math]\displaystyle{ \bigsqcup }[/math] | \bigvee |
[math]\displaystyle{ \bigvee }[/math] | \bigwedge |
[math]\displaystyle{ \bigwedge }[/math] | ||
\int |
[math]\displaystyle{ \int }[/math] | \oint |
[math]\displaystyle{ \oint }[/math] | \iint [1] |
[math]\displaystyle{ \iint }[/math] | ||
\iiint [1] |
[math]\displaystyle{ \iiint }[/math] | \iiiint [1] |
[math]\displaystyle{ \iiiint }[/math] | \idotsint [1] |
[math]\displaystyle{ \int \! \cdots \! \int }[/math] |
For more integral symbols, including those not included by default in the Computer Modern font, try the esint package. The \substack
command[1] allows the use of \\
to write the limits over multiple lines:
\[
\sum_{\substack{
0<i<m \\
0<j<n
}}
P(i,j)
\]
|
[math]\displaystyle{ \sum_{\overset{\scriptstyle 0\lt i\lt m} {\scriptstyle 0\lt j\lt n}} P(i,j) \, }[/math] |
If you want the limits of an integral to be specified above and below the symbol (like the sum), use the \limits
command:
\[
\int\limits_a^b
\]
|
[math]\displaystyle{ \int\limits_a^b \, }[/math] |
However if you want this to apply to ALL integrals, it is preferable to specify the intlimits
option when loading the amsmath
package:
\usepackage[intlimits]{amsmath}
|
Brackets, braces and delimiters
The use of delimiters such as brackets soon becomes important when dealing with anything but the most trivial equations. Without them, formulas can become ambiguous. Also, special types of mathematical structures, such as matrices, typically rely on delimiters to enclose them.
There are a variety of delimiters available for use in LaTeX:
\[
() \, [] \, \{\} \, || \, \|\| \,
\langle\rangle \, \lfloor\rfloor \, \lceil\rceil
\]
|
[math]\displaystyle{ () \, [] \, \{\} \, || \, \|\| \, \langle\rangle \, \lfloor\rfloor \, \lceil\rceil \, }[/math] |
Automatic sizing
Very often mathematical features will differ in size, in which case the delimiters surrounding the expression should vary accordingly. This can be done automatically using the left
and right
commands. Any of the previous delimiters may be used in combination with these:
\[
\left(\frac{x^2}{y^3}\right)
\]
|
[math]\displaystyle{ \left(\frac{x^2}{y^3}\right) \, }[/math] |
If a delimiter on only one side of an expression is required, then an invisible delimiter on the other side may be denoted using a period (.
).
Manual sizing
In certain cases, the sizing produced by the left
and right
commands may not be desirable, or you may simply want finer control over the delimiter sizes. In this case, the big
, Big
, bigg
and Bigg
modifier commands may be used:
\[
( \big( \Big( \bigg( \Bigg(
\]
|
[math]\displaystyle{ ( \big( \Big( \bigg( \Bigg( \, }[/math] |
Matrices and arrays
A basic matrix may be created using the matrix
environment[1]: in common with other table-like structures, entries are specified by row, with columns separated using an ampersand (&
) and a new rows separated with a double backslash (\\
)
\[
\begin{matrix}
a & b & c \\
d & e & f \\
g & h & i
\end{matrix}
\]
|
[math]\displaystyle{ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} }[/math] |
However matrices are usually enclosed in delimiters of some kind, and while it is possible to use the \left
and \right
commands, there are various other predefined environments which automatically include delimiters:
Environment name | Surrounding delimiter |
---|---|
pmatrix [1]
|
[math]\displaystyle{ ( \, ) }[/math] |
bmatrix [1]
|
[math]\displaystyle{ [ \, ] }[/math] |
Bmatrix [1]
|
[math]\displaystyle{ \{ \, \} }[/math] |
vmatrix [1]
|
[math]\displaystyle{ | \, | }[/math] |
Vmatrix [1]
|
[math]\displaystyle{ \| \, \| }[/math] |
When writing down arbitrary sized matrices, it is common to use horizontal, vertical and diagonal triplets of dots (known as ellipses) to fill in certain columns and rows. These can be specified using the \cdots
, \vdots
and \ddots
respectively:
\[
A_{m,n} =
\begin{pmatrix}
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m,1} & a_{m,2} & \cdots & a_{m,n}
\end{pmatrix}
\]
|
[math]\displaystyle{ A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix} }[/math] |
In some cases you may want to have finer control of the alignment within each column, or want to insert lines between columns or rows. This can be achieved using the array
environment, which is essentially a math-mode version of the [[../Tables#The tabular environment|tabular
environment]], which requires that the columns be pre-specified:
\[
\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}
\]
|
[math]\displaystyle{ \begin{array}{c|c} 1 & 2 \\ \hline 3 & 4 \end{array} }[/math] |
Adding text to equations
The math environment differs from the text environment in the representation of text. Here is an example of trying to represent text within the math environment:
\[
50 apples \times 100 apples = lots of apples^2
\]
|
[math]\displaystyle{ 50 apples \times 100 apples = lots of apples^2 \, }[/math] |
There are two noticeable problems: there are no spaces between words or numbers, and the letters are italicized and more spaced out than normal. Both issues are simply artifacts of the maths mode, in that it treats it as a mathematical expression: spaces are ignored (LaTeX spaces mathematics according to its own rules), and each character is a separate element (so are not positioned as closely as normal text).
There are a number of ways that text can be added properly. The typical way is to wrap the text with the \text{...}
command [1] (a similar command is \mbox{...}
, though this causes problems with subscripts, and has a less descriptive name). Let's see what happens when the above equation code is adapted:
\[
50 \text{apples} \times 100 \text{apples} = \text{lots of apples}^2
\]
|
[math]\displaystyle{ 50 \text{apples} \times 100 \text{apples} = \text{lots of apples}^2 \, }[/math] |
The text looks better. However, there are no gaps between the numbers and the words. Unfortunately, you are required to explicitly add these. There are many ways to add spaces between maths elements, but for the sake of simplicity you may literally add the space character in the affected \text
(s) itself (just before the text.)
\[
50 \text{ apples} \times 100 \text{ apples} = \text{lots of apples}^2
\]
|
[math]\displaystyle{ 50 \text{ apples} \times 100 \text{ apples} = \text{lots of apples}^2 \, }[/math] |
Formatted text
Using the \text
is fine and gets the basic result. Yet, there is an alternative that offers a little more flexibility. You may recall the introduction of font formatting commands, such as \textrm
, \textit
, \textbf
, etc. These commands format the argument accordingly, e.g., \textbf{bold text}
gives bold text. These commands are equally valid within a maths environment to include text. The added benefit here is that you can have better control over the font formatting, rather than the standard text achieved with \text
.
\[
50 \textrm{ apples} \times 100 \textbf{ apples} = \textit{lots of apples}^2
\]
|
[math]\displaystyle{ 50 \;\textrm{ apples} \times 100 \;\textbf{ apples} = \textit{lots of apples}^2 \, }[/math] |
Formatting mathematics symbols
So we can format text, what about formatting mathematics? There are a set of formatting commands very similar to the font formatting ones just used, except they are aimed specifically for text in maths mode:
LaTeX command | Sample | Description | Common use |
---|---|---|---|
\mathnormal{…}
|
[math]\displaystyle{ ABCDEF abcdef 123456\, }[/math] | the default math font | most mathematical notation |
\mathrm{…}
|
[math]\displaystyle{ \mathrm{ABCDEF abcdef 123456}\, }[/math] | this is the default or normal font, unitalicised | units of measurement, one word functions |
\mathit{…}
|
[math]\displaystyle{ \mathit{ABCDEF abcdef 123456}\, }[/math] | italicised font | |
\mathbf{…}
|
[math]\displaystyle{ \mathbf{ABCDEF abcdef 123456}\, }[/math] | bold font | vectors |
\mathsf{…}
|
[math]\displaystyle{ \mathsf{ABCDEF abcdef 123456}\, }[/math] | Sans-serif | |
\mathtt{…}
|
ABCDEFabcdef123456 | Monospace (fixed-width) font | |
\mathcal{…}
|
[math]\displaystyle{ \mathcal{ABCDEF abcdef 123456}\, }[/math] | Calligraphy (uppercase only) | often used for sheaves/schemes and categories |
\mathfrak{…} [2]
|
[math]\displaystyle{ \mathfrak{ABCDEF abcdef 123456}\, }[/math] | Fraktur | Almost canonical font for Lie algebras |
\mathbb{…} [2]
|
[math]\displaystyle{ \mathbb{ABCDEF abcdef 123456}\, }[/math] | Blackboard bold | Used to denote special sets (e.g. real numbers) |
\mathscr{…} [3]
|
Script |
The maths formatting commands can be wrapped around the entire equation, and not just on the textual elements: they only format letters, numbers, and uppercase Greek, and the rest of the maths syntax is ignored.
To bold lowercase Greek or other symbols use the \boldsymbol
command[1]; this will only work if there exists a bold version of the symbol in the current font. As a last resort there is the \pmb
command[1] (poor mans bold): this prints multiple versions of the character slightly offset against each other
\[
\boldsymbol{\beta} = (\beta_1,\beta_2,\ldots,\beta_n)
\]
|
[math]\displaystyle{ \boldsymbol{\beta} = (\beta_1,\beta_2,\ldots,\beta_n) \, }[/math] |
To change the size of the fonts in math mode, see [[../Advanced Mathematics#Changing font size|Changing font size]].
Accents
So what to do when you run out of symbols and fonts? Well the next step is to use accents:
a' |
[math]\displaystyle{ a'\, }[/math] | a'' |
[math]\displaystyle{ a''\, }[/math] | a''' |
[math]\displaystyle{ a'''\, }[/math] | a'''' |
[math]\displaystyle{ a''''\, }[/math] | |||
\hat{a} |
[math]\displaystyle{ \hat{a} \, }[/math] | \bar{a} |
[math]\displaystyle{ \bar{a} \, }[/math] | \check{a} |
[math]\displaystyle{ \check{a} \, }[/math] | \tilde{a} |
[math]\displaystyle{ \tilde{a} \, }[/math] | |||
\grave{a} |
[math]\displaystyle{ \grave{a} \, }[/math] | \acute{a} |
[math]\displaystyle{ \acute{a} \, }[/math] | \breve{a} |
[math]\displaystyle{ \breve{a} \, }[/math] | \vec{a} |
[math]\displaystyle{ \vec{a} \, }[/math] | |||
\dot{a} |
[math]\displaystyle{ \dot{a} \, }[/math] | \ddot{a} |
[math]\displaystyle{ \ddot{a} \, }[/math] | \dddot{a} [1] |
\ddddot{a} [1] |
|||||
\not{a} |
[math]\displaystyle{ \not{a} \, }[/math] | \mathring{a} |
\widehat{AAA} |
[math]\displaystyle{ \widehat{AAA} \, }[/math] | \widetilde{AAA} |
Plus and minus signs
Latex deals with the + and − signs in two possible ways. The most common is as a binary operator. When two maths elements appear either side of the sign, it is assumed to be a binary operator, and as such, allocates some space either side of the sign. The alternative way is a sign designation. This is when you state whether a mathematical quantity is either positive or negative. This is common for the latter, as in maths, such elements are assumed to be positive unless a - is prefixed to it. In this instance, you want the sign to appear close to the appropriate element to show their association. If you put a + or a - with nothing before it but you want it to be handled like a binary operator you can add an invisible character before the operator using {}
. This can be useful if you are writing multiple-line formulas, and a new line could start with a = or a +, for example, then you can fix some strange alignments adding the invisible character where necessary.
Controlling horizontal spacing
Latex is obviously pretty good at typesetting maths—it was one of the chief aims of the core Tex system that Latex extends. However, it can't always be relied upon to accurately interpret formulas in the way you did. It has to make certain assumptions when there are ambiguous expressions. The result tends to be slightly incorrect horizontal spacing. In these events, the output is still satisfactory, yet, any perfectionists will no doubt wish to fine-tune their formulas to ensure spacing is correct. These are generally very subtle adjustments.
There are other occasions where Latex has done its job correctly, but you just want to add some space, maybe to add a comment of some kind. For example, in the following equation, it is preferable to ensure there is a decent amount of space between the maths and the text.
\[
f(n) = \left\{
\begin{array}{l l}
n/2 & \quad \text{if $n$ is even}\\
-(n+1)/2 & \quad \text{if $n$ is odd}\\
\end{array} \right.
\]
|
[math]\displaystyle{ f(n) = \begin{cases} n/2 & \quad \text{if } n \text{ is even} \\ -(n+1)/2 & \quad \text{if } n \text{ is odd}\\ \end{cases} }[/math] |
Latex has defined two commands that can be used anywhere in documents (not just maths) to insert some horizontal space. They are \quad
and \qquad
A \quad
is a space equal to the current font size. So, if you are using an 11pt font, then the space provided by \quad
will also be 11pt (horizontally, of course.) The \qquad
gives twice that amount. As you can see from the code from the above example, \quad
s were used to add some separation between the maths and the text.
OK, so back to the fine tuning as mentioned at the beginning of the document. A good example would be displaying the simple equation for the indefinite integral of y with respect to x:
[math]\displaystyle{ \int y\, \mathrm{d}x }[/math]
If you were to try this, you may write:
\[ \int y \mathrm{d}x \]
|
[math]\displaystyle{ \int y \mathrm{d}x }[/math] |
However, this doesn't give the correct result. Latex doesn't respect the white-space left in the code to signify that the y and the dx are independent entities. Instead, it lumps them altogether. A \quad
would clearly be overkill is this situation—what is needed are some small spaces to be utilized in this type of instance, and that's what Latex provides:
Command | Description | Size |
---|---|---|
\, | small space | 3/18 of a quad |
\: | medium space | 4/18 of a quad |
\; | large space | 5/18 of a quad |
\! | negative space | -3/18 of a quad |
NB you can use more than one command in a sequence to achieve a greater space if necessary.
So, to rectify the current problem:
\int y\, \mathrm{d}x |
[math]\displaystyle{ \int y\, \mathrm{d}x }[/math] |
\int y\: \mathrm{d}x |
[math]\displaystyle{ \int y\;\;\!\! \mathrm{d}x }[/math] |
\int y\; \mathrm{d}x |
[math]\displaystyle{ \int y\; \mathrm{d}x }[/math] |
The negative space may seem like an odd thing to use, however, it wouldn't be there if it didn't have some use! Take the following example:
\[\left(
\begin{array}{c}
n \\
r
\end{array}
\right) = \frac{n!}{r!(n-r)!}
\]
|
[math]\displaystyle{ \left( \begin{matrix} n \\ r \end{matrix} \right) = \frac{n!}{r!(n-r)!} }[/math] |
The matrix-like expression for representing binomial coefficients is too padded. There is too much space between the brackets and the actual contents within. This can easily be corrected by adding a few negative spaces after the left bracket and before the right bracket.
\[\left(\!
\begin{array}{c}
n \\
r
\end{array}
\!\right) = \frac{n!}{r!(n-r)!}
\]
|
[math]\displaystyle{ \left(\! \begin{matrix} n \\ r \end{matrix} \!\right) = \frac{n!}{r!(n-r)!} }[/math] |
In any case, adding some spaces manually should be avoided whenever possible: it makes the source code more complex and it's against the basic principles of a What You See is What You Mean approach. The best thing to do is to define some commands using all the spaces you want and then, when you use your command, you don't have to add any other space. Later, if you change your mind about the length of the horizontal space, you can easily change it modifying only the command you defined before. Let us use an example: you want the d of a dx in an integral to be in roman font and a small space away from the rest. If you want to type an integral like \int x \; \mathrm{d} x
, you can define a command like this:
\newcommand{\dd}{\; \mathrm{d}}
in the preamble of your document. We have chosen \dd
just because it reminds the "d" it replaces and it is fast to type. Doing so, the code for your integral becomes \int x \dd x
. Now, whenever you write an integral, you just have to use the \dd
instead of the "d", and all your integrals will have the same style. If you change your mind, you just have to change the definition in the preamble, and all your integrals will be changed accordingly.
Advanced Mathematics: AMS Math package
The AMS (American Mathematical Society) mathematics package is a powerful package that creates an higher layer of abstraction over mathematical LaTeX language; if you use it it will make your life easier. Some commands amsmath introduces will make other plain LaTeX commands obsolete: in order to keep consistency in the final output you'd better use amsmath
commands whenever possible. If you do so, you will get an elegant output without worrying about alignment and other details, keeping your source code readable. If you want to use it, you have to add this in the preamble:
\usepackage{amsmath}
Introducing text and dots in formulas
Amsmath defines also the \dots
command, that is a generalization of the existing \ldots
. You can use \dots
in both text and math mode and LaTeX will replace it with three dots "…" but it will decide according to the context whether to put it on the bottom (like \ldots
) or centered (like \cdots
).
Dots
LaTeX gives you several commands to insert dots in your formulas. This can be particularly useful if you have to type big matrices omitting elements. First of all, here are the main dots-related commands LaTeX provides:
Code | Output | Comment |
---|---|---|
\dots | [math]\displaystyle{ \dots }[/math] | generic dots, to be used in text (outside formulas as well). It automatically manages whitespaces before and after itself according to the context, it's a higher level command. |
\ldots | [math]\displaystyle{ \ldots }[/math] | the output is similar to the previous one, but there is no automatic whitespace management; it works at a lower level. |
\cdots | [math]\displaystyle{ \cdots }[/math] | These dots are centered relative to the height of a letter. There is also the binary multiplication operator, \cdot, mentioned below. |
\vdots | [math]\displaystyle{ \vdots }[/math] | vertical dots |
\ddots | [math]\displaystyle{ \ddots }[/math] | diagonal dots |
\hdotsfor{n} | [math]\displaystyle{ \ldots \ldots }[/math] | to be used in matrices, it creates a row of dots spanning n columns. |
List of Mathematical Symbols
All the pre-defined mathematical symbols from the \TeX\ package are listed below. More symbols are available from extra packages.
Symbol | Script | Symbol | Script | Symbol | Script | Symbol | Script | Symbol | Script |
---|---|---|---|---|---|---|---|---|---|
[math]\displaystyle{ \leq }[/math] | \leq | [math]\displaystyle{ \geq }[/math] | \geq | [math]\displaystyle{ \equiv\, }[/math] | \equiv | [math]\displaystyle{ \models }[/math] | \models | [math]\displaystyle{ \prec }[/math] | \prec |
[math]\displaystyle{ \succ }[/math] | \succ | [math]\displaystyle{ \sim }[/math] | \sim | [math]\displaystyle{ \perp }[/math] | \perp | [math]\displaystyle{ \preceq }[/math] | \preceq | [math]\displaystyle{ \succeq }[/math] | \succeq |
[math]\displaystyle{ \simeq }[/math] | \simeq | [math]\displaystyle{ \mid }[/math] | \mid | [math]\displaystyle{ \ll }[/math] | \ll | [math]\displaystyle{ \gg }[/math] | \gg | [math]\displaystyle{ \asymp }[/math] | \asymp |
[math]\displaystyle{ \parallel }[/math] | \parallel | [math]\displaystyle{ \subset }[/math] | \subset | [math]\displaystyle{ \supset }[/math] | \supset | [math]\displaystyle{ \approx }[/math] | \approx | [math]\displaystyle{ \bowtie }[/math] | \bowtie |
[math]\displaystyle{ \subseteq }[/math] | \subseteq | [math]\displaystyle{ \supseteq }[/math] | \supseteq | [math]\displaystyle{ \cong }[/math] | \cong | [math]\displaystyle{ \sqsubset }[/math] | \sqsubset | [math]\displaystyle{ \sqsupset }[/math] | \sqsupset |
[math]\displaystyle{ \neq\, }[/math] | \neq | [math]\displaystyle{ \smile }[/math] | \smile | [math]\displaystyle{ \sqsubseteq }[/math] | \sqsubseteq | [math]\displaystyle{ \sqsupseteq }[/math] | \sqsupseteq | [math]\displaystyle{ \doteq }[/math] | \doteq |
[math]\displaystyle{ \frown }[/math] | \frown | [math]\displaystyle{ \in }[/math] | \in | [math]\displaystyle{ \ni }[/math] | \ni | [math]\displaystyle{ \propto }[/math] | \propto | [math]\displaystyle{ =\, }[/math] | = |
[math]\displaystyle{ \vdash }[/math] | \vdash | [math]\displaystyle{ \dashv }[/math] | \dashv | [math]\displaystyle{ \lt \, }[/math] | < | [math]\displaystyle{ \gt \, }[/math] | > |
Symbol | Script |
---|---|
[math]\displaystyle{ \Alpha\, }[/math] and [math]\displaystyle{ \alpha\, }[/math] | \Alpha and \alpha |
[math]\displaystyle{ \Beta\, }[/math] and [math]\displaystyle{ \beta\, }[/math] | \Beta and \beta |
[math]\displaystyle{ \Gamma\, }[/math] and [math]\displaystyle{ \gamma\, }[/math] | \Gamma and \gamma |
[math]\displaystyle{ \Delta\, }[/math] and [math]\displaystyle{ \delta\, }[/math] | \Delta and \delta |
[math]\displaystyle{ \Epsilon\, }[/math], [math]\displaystyle{ \epsilon\, }[/math] and [math]\displaystyle{ \varepsilon }[/math] | \Epsilon, \epsilon and \varepsilon |
[math]\displaystyle{ \Zeta\, }[/math] and [math]\displaystyle{ \zeta\, }[/math] | \Zeta and \zeta |
[math]\displaystyle{ \Eta\, }[/math] and [math]\displaystyle{ \eta\, }[/math] | \Eta and \eta |
[math]\displaystyle{ \Theta\, }[/math], [math]\displaystyle{ \theta\, }[/math] and [math]\displaystyle{ \vartheta }[/math] | \Theta, \theta and \vartheta |
[math]\displaystyle{ \Iota\, }[/math] and [math]\displaystyle{ \iota\, }[/math] | \Iota and \iota |
[math]\displaystyle{ \Kappa\, }[/math] and [math]\displaystyle{ \kappa\, }[/math] | \Kappa and \kappa |
[math]\displaystyle{ \Lambda\, }[/math] and [math]\displaystyle{ \lambda\, }[/math] | \Lambda and \lambda |
[math]\displaystyle{ \Mu\, }[/math] and [math]\displaystyle{ \mu\, }[/math] | \Mu and \mu |
[math]\displaystyle{ \Nu\, }[/math] and [math]\displaystyle{ \nu\, }[/math] | \Nu and \nu |
[math]\displaystyle{ \Xi\, }[/math] and [math]\displaystyle{ \xi\, }[/math] | \Xi and \xi |
[math]\displaystyle{ \Pi\, }[/math], [math]\displaystyle{ \pi\, }[/math] and [math]\displaystyle{ \varpi }[/math] | \Pi, \pi and \varpi |
[math]\displaystyle{ \Rho\, }[/math], [math]\displaystyle{ \rho\, }[/math] and [math]\displaystyle{ \varrho }[/math] | \Rho, \rho and \varrho |
[math]\displaystyle{ \Sigma\, }[/math], [math]\displaystyle{ \sigma\, }[/math] and [math]\displaystyle{ \varsigma }[/math] | \Sigma, \sigma and \varsigma |
[math]\displaystyle{ \Tau\, }[/math] and [math]\displaystyle{ \tau\, }[/math] | \Tau and \tau |
[math]\displaystyle{ \Upsilon\, }[/math] and [math]\displaystyle{ \upsilon\, }[/math] | \Upsilon and \upsilon |
[math]\displaystyle{ \Phi\, }[/math], [math]\displaystyle{ \phi\, }[/math], and [math]\displaystyle{ \varphi }[/math] | \Phi, \phi and \varphi |
[math]\displaystyle{ \Chi\, }[/math] and [math]\displaystyle{ \chi\, }[/math] | \Chi and \chi |
[math]\displaystyle{ \Psi\, }[/math] and [math]\displaystyle{ \psi\, }[/math] | \Psi and \psi |
[math]\displaystyle{ \Omega\, }[/math] and [math]\displaystyle{ \omega\, }[/math] | \Omega and \omega |
Symbol | Script | Symbol | Script | Symbol | Script | Symbol | Script |
---|---|---|---|---|---|---|---|
[math]\displaystyle{ \pm\, }[/math] | \pm | [math]\displaystyle{ \cap\, }[/math] | \cap | [math]\displaystyle{ \diamond }[/math] | \diamond | [math]\displaystyle{ \oplus }[/math] | \oplus |
[math]\displaystyle{ \mp }[/math] | \mp | [math]\displaystyle{ \cup }[/math] | \cup | [math]\displaystyle{ \bigtriangleup }[/math] | \bigtriangleup | [math]\displaystyle{ \ominus }[/math] | \ominus |
[math]\displaystyle{ \times\, }[/math] | \times | [math]\displaystyle{ \uplus }[/math] | \uplus | [math]\displaystyle{ \bigtriangledown }[/math] | \bigtriangledown | [math]\displaystyle{ \otimes }[/math] | \otimes |
[math]\displaystyle{ \div }[/math] | \div | [math]\displaystyle{ \sqcap }[/math] | \sqcap | [math]\displaystyle{ \triangleleft }[/math] | \triangleleft | [math]\displaystyle{ \oslash }[/math] | \oslash |
[math]\displaystyle{ \ast }[/math] | \ast | [math]\displaystyle{ \sqcup }[/math] | \sqcup | [math]\displaystyle{ \triangleright }[/math] | \triangleright | [math]\displaystyle{ \odot }[/math] | \odot |
[math]\displaystyle{ \star }[/math] | \star | [math]\displaystyle{ \vee }[/math] | \vee | [math]\displaystyle{ \bigcirc }[/math] | \bigcirc | [math]\displaystyle{ \circ }[/math] | \circ |
[math]\displaystyle{ \wedge }[/math] | \wedge | [math]\displaystyle{ \dagger\, }[/math] | \dagger | [math]\displaystyle{ \bullet }[/math] | \bullet | [math]\displaystyle{ \setminus\, }[/math] | \setminus |
[math]\displaystyle{ \ddagger\, }[/math] | \ddagger | [math]\displaystyle{ \cdot }[/math] | \cdot | [math]\displaystyle{ \wr }[/math] | \wr | [math]\displaystyle{ \amalg }[/math] | \amalg |
Symbol | Script |
---|---|
[math]\displaystyle{ \exists\, }[/math] | \exists |
[math]\displaystyle{ \forall\, }[/math] | \forall |
[math]\displaystyle{ \neg\, }[/math] | \neg |
[math]\displaystyle{ \in\, }[/math] and [math]\displaystyle{ \notin\, }[/math] | \in and \notin |
[math]\displaystyle{ \ni\, }[/math] | \ni |
[math]\displaystyle{ \land\, }[/math] | \land |
[math]\displaystyle{ \lor\, }[/math] | \lor |
[math]\displaystyle{ \implies\, }[/math] | \implies |
[math]\displaystyle{ \iff\, }[/math] | \iff |
[math]\displaystyle{ \top\, }[/math] | \top |
[math]\displaystyle{ \bot\, }[/math] | \bot |
[math]\displaystyle{ \emptyset\, }[/math] | \emptyset |
Summary
As you can begin to see, typesetting maths can be tricky at times. However, because Latex provides so much control, you can get professional quality mathematics typesetting for relatively little effort (once you've had a bit of practice, of course!). It would be possible to keep going and going with maths topics because it seems potentially limitless. However, with this tutorial, you should be able to get along sufficiently.
Notes
- ^ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 requires the
amsmath
package - ^ 1 2 requires amsfonts or amssymb packages
- ^ require mathrsfs package
Further reading
- meta:Help:Displaying a formula: Wikimedia uses a subset of LaTeX commands.
External links
- LaTeX maths symbols
- detexify: applet for looking up LaTeX symbols by handwriting them
- amsmath documentation
- LaTeX - The Student Room