# MathJax basic tutorial and quick reference

To see how any formula was written in any question or answer, including this one, right-click on the expression and choose "Show Math As > TeX Commands". (When you do this, the '$' will not display. Make sure you add these: see the next point. There are also other ways to view the code for the formula or the whole post.) To try formatting, visit the formatting sandbox post, select one of the answers that says “free for editing” and use the “edit” button to edit the answer however you like. Don't forget to change it back when you are finished, so it can be used again. 1. For inline formulas, enclose the formula in $$. For displayed formulas, use $$$$. • These render differently. For example, type the following to show inline mode: $\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$ $$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$ • or type the following for display mode: $$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$ $$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$ 2. For Greek letters, use \alpha, \beta, …, \omega: $$\alpha$$, $$\beta$$, …, $$\omega$$. • For uppercase letters, use \Gamma, \Delta, …, \Omega: $$\Gamma$$, $$\Delta$$, …, $$\Omega$$. • Other Greek capital letters are the same as the Latin ones: A,B,E,Z and so on: $$A, B, E, Z$$…. • Some Greek letters have variant forms: \epsilon \varepsilon $$\epsilon$$, $$\varepsilon$$, \phi \varphi $$\phi$$, $$\varphi$$, and others. 3. For superscripts and subscripts, use ^ and _. For example, x_i^2: $$x_i^2$$, \log_2 x: $$\log_2 x$$. For the prime symbol, use an apostrophe x' x'' x''': $$x'\ x''\ x'''$$. 4. Groups. Superscripts, subscripts, and other operations apply only to the next “group”. A “group” is either a single symbol, or any formula surrounded by curly braces {}. • If you do 10^10, you will get a surprise: $$10^10$$. But 10^{10} gives what you probably wanted: $$10^{10}$$. • Use curly braces to delimit a formula to which a superscript or subscript applies: x^y^z is an error; {x^y}^z is $${x^y}^z$$, and x^{y^z} is $$x^{y^z}$$. Observe the differences between x_i^2 $$x_i^2$$, x_{i^2} $$x_{i^2}$$ and {x_i}^2 $${x_i}^2$$. 5. Parentheses Ordinary symbols ()[] make parentheses and brackets $$(2+3)[4+4]$$. Use \{ and \} for curly braces $$\{\}$$. • These do not scale with the formula in between, so if you write (\frac{\sqrt x}{y^3}) the parentheses will be too small: $$(\frac{\sqrt x}{y^3})$$. Using \left(\right) will make the sizes adjust automatically to the formula they enclose: \left(\frac{\sqrt x}{y^3}\right) is $$\left(\frac{\sqrt x}{y^3}\right)$$. • \left and\right apply to all the following sorts of parentheses: ( and ) $$(x)$$, [ and ] $$[x]$$, \{ and \} $$\{ x \}$$, | $$|x|$$, \vert $$\vert x \vert$$, \Vert $$\Vert x \Vert$$, \langle and \rangle $$\langle x \rangle$$, \lceil and \rceil $$\lceil x \rceil$$, and \lfloor and \rfloor $$\lfloor x \rfloor$$. \middle can be used to add additional dividers. There are also invisible parentheses, denoted by .: use \left.x^2\right\rvert_3^5 = 5^2-3^2 to get $$\left.x^2\right\rvert_3^5 = 5^2-3^2$$ 6. Sums and integrals \sum and \int; the subscript is the lower limit and the superscript is the upper limit, so for example \sum_1^n $$\sum_1^n$$. Don't forget {} if the limits are more than a single symbol. For example, \sum_{i=0}^\infty i^2 is $$\sum_{i=0}^\infty i^2$$. • Similarly, \prod $$\prod$$, \int $$\int$$, \bigcup $$\bigcup$$, \bigcap $$\bigcap$$, \iint $$\iint$$, \iiint $$\iiint$$, \idotsint $$\idotsint$$. 7. Fractions There are three ways to make fractions. \frac ab applies to the next two groups, and produces $$\frac ab$$; for more complicated numerators and denominators use {}: \frac{a+1}{b+1} is $$\frac{a+1}{b+1}$$. • If the numerator and denominator are complicated, you may prefer \over, which splits up the group that it is in: {a+1\over b+1} is $${a+1\over b+1}$$. • For continued fractions, use \cfrac instead of \frac. 8. Fonts • Use \mathbb or \Bbb for "blackboard bold": $$\mathbb{CHNQRZ}$$. • Use \mathbf for boldface: $$\mathbf{CHNQRZ}$$ $$\mathbf{chnqrz}$$. • For expression based characters, use \boldsymbol instead: $$\boldsymbol{\alpha}$$ • Use \mathit for italics: $$\mathit{CHNQRZ}$$ $$\mathit{chnqrz}$$. • Use \pmb for boldfaced italics: $$\pmb{CHNQRZ}$$ $$\pmb{chnqrz}$$. • Use \mathtt for "typewriter" font: $$\mathtt{CHNQRZ}$$ $$\mathtt{chnqrz}$$. • Use \mathrm for roman font: $$\mathrm{CHNQRZ}$$ $$\mathrm{chnqrz}$$. • Use \mathsf for sans-serif font: $$\mathsf{CHNQRZ}$$ $$\mathsf{chnqrz}$$. • Use \mathcal for "calligraphic" letters: $$\mathcal{CHNQRZ}$$ (Uppercase only.) • Use \mathscr for script letters: $$\mathscr{CHNQRZ}$$ $$\mathscr{chnqrz}$$ • Use \mathfrak for "Fraktur" (old German style) letters: $$\mathfrak{CHNQRZ}$$ $$\mathfrak{chnqrz}$$. 1. Radical signs / roots Use sqrt, which adjusts to the size of its argument: \sqrt{x^3} $$\sqrt{x^3}$$; \sqrt[3]{\frac xy} $$\sqrt[3]{\frac xy}$$. For complicated expressions, consider using {...}^{1/2} instead. 2. Some special functions such as "lim", "sin", "max", "ln", and so on are normally set in roman font instead of italic font. Use \lim, \sin, etc. to make these: \sin x $$\sin x$$, not sin x $$sin x$$. Use subscripts to attach a notation to \lim: \lim_{x\to 0} $$\lim_{x\to 0}$$ Nonstandard function names can be set with \operatorname{foo}(x) $$\operatorname{foo}(x)$$. 3. There are a very large number of special symbols and notations, too many to list here; see the short listing $$\LaTeX$$ and $$\mathcal{A}_{\Large\mathcal{M}}\mathcal{S}$$-$$\LaTeX$$ Symbols prepared by Dr. Emre Sermutlu, or the exhaustive listing The Comprehensive $$\LaTeX$$ Symbol List by Scott Pakin. Some of the most common include: • \lt \gt \le \ge \neq $$\lt$$, $$\gt$$, $$\le$$, $$\ge$$,$$\neq$$. You can use \not to put a slash through almost anything: \not\lt $$\not\lt$$ but it often looks bad. • \times \div \pm \mp $$\times$$, $$\div$$, $$\pm$$, $$\mp$$. \cdot is a centered dot: $$x\cdot y$$ • \cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing $$\cup$$, $$\cap$$, $$\setminus$$, $$\subset$$, $$\subseteq$$, $$\subsetneq$$, $$\supset$$, $$\in$$, $$\notin$$, $$\emptyset$$, $$\varnothing$$ • {n+1 \choose 2k} or \binom{n+1}{2k} $${n+1 \choose 2k}$$ • \to \gets \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto \implies \iff $$\to$$, $$\gets$$, $$\rightarrow$$, $$\leftarrow$$, $$\Rightarrow$$, $$\Leftarrow$$, $$\mapsto$$, $$\implies$$, $$\iff$$ • \land \lor \lnot \forall \exists \top \bot \vdash \vDash $$\land$$, $$\lor$$, $$\lnot$$, $$\forall$$, $$\exists$$, $$\top$$, $$\bot$$, $$\vdash$$, $$\vDash$$ • \star \ast \oplus \circ \bullet $$\star$$, $$\ast$$, $$\oplus$$, $$\circ$$, $$\bullet$$ • \approx \sim \simeq \cong \equiv \prec \lhd $$\approx$$, $$\sim$$, $$\simeq$$, $$\cong$$, $$\equiv$$, $$\prec$$, $$\lhd$$ • \infty \aleph_0 $$\infty\, \aleph_0$$ \nabla \partial $$\nabla$$, $$\partial$$ \Im \Re $$\Im$$, $$\Re$$ • For modular equivalence, use \pmod like this: a\equiv b\pmod n $$a\equiv b\pmod n$$. For the binary mod operator, use \bmod like this: a\bmod 17 $$a\bmod 17$$. • Use \dots for the triple dots in $$a_1, a_2, \dots, a_n$$ and $$a_1+a_2+\dots+a_n$$ • Script lowercase l is \ell $$\ell$$. Detexify lets you draw a symbol on a web page and then lists the $$\TeX$$ symbols that seem to resemble it. These are not guaranteed to work in MathJax, but it's a good place to start. To check that a command is supported, note that MathJax.org maintains a list of currently supported $$\LaTeX$$ commands, and one can also check Dr. Carol JVF Burns's page of $$\TeX$$ Commands Available in MathJax. 1. Spaces MathJax usually decides for itself how to space formulas, using a complex set of rules. Putting extra literal spaces into formulas will not change the amount of space MathJax puts in: a␣b and a␣␣␣␣b are both $$a b$$. To add more space, use \, for a thin space $$a\,b$$; \; for a wider space $$a\;b$$. \quad and \qquad are large spaces: $$a\quad b$$, $$a\qquad b$$. To set plain text, use \text{…}: $$\{x\in s\mid x\text{ is extra large}\}$$. You can nest $…$ inside of \text{…}, for example to access spaces. 2. Accents and diacritical marks Use \hat for a single symbol $$\hat x$$, \widehat for a larger formula $$\widehat{xy}$$. If you make it too wide, it will look silly. Similarly, there are \bar $$\bar x$$ and \overline $$\overline{xyz}$$, and \vec $$\vec x$$ and \overrightarrow $$\overrightarrow{xy}$$ and \overleftrightarrow $$\overleftrightarrow{xy}$$. For dots, as in $$\frac d{dx}x\dot x = \dot x^2 + x\ddot x$$, use \dot and \ddot. 3. Special characters used for MathJax interpreting can be escaped using the \ character: \\$ $$\$$, \{ $$\{$$, \} $$\}$$, \_ $$\_$$, \# $$\#$$, \& $$\&$$. If you want \ itself, you should use \backslash (symbol) or \setminus (binary operation) for $$\backslash$$, because \\ is for a new line.

(Tutorial ends here.)

It is important that this note be reasonably short and not suffer from too much bloat. To include more topics, please create short addenda and post them as answers instead of inserting them into this post.

## Contents

Alphabetical list of links to MathJax topics, by title:

• Some capital Greek letters are the same as the Roman equivalents, so they are not separated in $\LaTeX$. For a capital beta, one must use something like \mathrm{B}: $\mathrm{B}$
– robjohn Mod
Aug 28, 2012 at 2:06
• Two related questions: How do I insert a table when asking a question? and How to show the integral symbol on this site? Aug 28, 2012 at 13:26
• A quick addition to point 11: If you want to use a $\sin$-like symbol that is not already defined, the command is \operatorname: e.g., \operatorname{Spec} A gives $\operatorname{Spec} A$. Aug 28, 2012 at 16:45
• It might be useful to mention hanging subscripts for things like _5C_3 $_5C_3$. You could also mention \frac vs \dfrac. Aug 29, 2012 at 18:09
• My basic idea is that if a beginner can express a formula clearly, then someone else can come in and clean up the typesetting afterwards. I am considering getting rid of the section about \big, \left, and \right for this reason, and trimming the section on spacing.
– MJD
Aug 30, 2012 at 2:06
• Most of the references to TeX or LaTeX in this and the answers ought to be to MathJaX (the exception that I can see being the output of Detexify). I know this is a bit pedantic, but would it be alright to correct this? Sep 11, 2012 at 14:13
• @AndrewStacey Thanks for pointing this out. Let's by all means be as correct as possible, particularly when there's no extra cost.
– MJD
Sep 11, 2012 at 14:15
• @MJD Okay, I've had a go (also the answer about arrays). I wonder also whether or not it is worth a sentence at the end pointing out that whilst MathJaX does its best to emulate TeX, it isn't TeX and so while knowing how something is done in TeX gives you a starting point, it isn't a guarantee that the same thing works in MathJaX. (As a case in point, questions about MathJaX are generally off-topic over on TeX-SX.) Sep 11, 2012 at 14:22
• @AndrewStacey I wouldn't. They are close enough that it seems to me to be a needless refinement. I might even argue that MathJax is $\TeX$, although an alternative implementation. We're willing to accept that other programming languages (JavaScript, for example) that have slightly incompatible implementations are nevertheless the same language; why not in this case as well?
– MJD
Sep 11, 2012 at 14:35
• @MJD Except that this is meant as a tutorial for those who aren't familiar with the distinction (and there really is a distinction: "slightly incompatible implementations" doesn't really fit the bill here). One thing tutorials often include is a "Where to find out more" section. This doesn't. Someone who doesn't know the distinction might be tempted to search for help on TeX or LaTeX instead and wonder why it doesn't work. Sep 11, 2012 at 14:40
• @AndrewStacey All the tips given here would work in any $\TeX$/$\LaTeX$ environment with the proper packages. MathJax is just the service used to render it. You wouldn't say "Miktex tutorial" or "texlive tutorial". Sep 11, 2012 at 15:01
• @axblount But that's precisely the wrong way around to think about it! The likelihood is that someone will look at this tutorial to figure out how to write something on the Maths-SX site: i.e., to use MathJaX. If they can't find help here, where do they go? If they have the idea that MathJaX is "just a javascript implementation of TeX" then they might think to look for help with TeX, but that is quite possibly not going to be helpful. Sep 11, 2012 at 15:08
• @axblount For a start, you've changed the goalposts: "LaTeX math expressions". LaTeX is so much more than just a way of typesetting maths! Second, I don't really know but it wouldn't take me long to cook one up. I don't use MathJaX so I haven't explored it. But I know, for example, that it can't handle catcode changes. Which means that I can't make ( and ) automatically resizeable. I can in LaTeX. Sep 11, 2012 at 16:04
• I wish I saw this post when I first joined. This post should be a main link on the home page. There should be a button under each box: NEW TO LATEX, CLICK HERE FOR EXAMPLES. This is extremely useful, concise. May 31, 2013 at 18:09
• @MJD: I use \mathrm in many places; e.g. $\mathrm{d}x$ in integrals and derivatives and for operator names that don't need the full force of \operatorname. \mathrm was intended for roman symbols in math mode; \text was intended for text because of the way it spaces things. See this TEX thread. Since I don't believe we can use preambles in MathJax, we can't use \DeclareMathOperator, though we can use \newcommand, but that is orthogonal to the use of \mathrm vs \text for math symbols.
– robjohn Mod
Jun 10, 2013 at 16:23

# Matrices

1. Use $$\begin{matrix}…\end{matrix}$$ In between the \begin and \end, put the matrix elements. End each matrix row with \\, and separate matrix elements with &. For example,

$$\begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix}$$


produces:

$$\begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix}$$

MathJax will adjust the sizes of the rows and columns so that everything fits.

1. To add brackets, either use \left…\right as in section 6 of the tutorial, or replace matrix with pmatrix $$\begin{pmatrix}1&2\\3&4\\ \end{pmatrix}$$, bmatrix $$\begin{bmatrix}1&2\\3&4\\ \end{bmatrix}$$, Bmatrix $$\begin{Bmatrix}1&2\\3&4\\ \end{Bmatrix}$$, vmatrix $$\begin{vmatrix}1&2\\3&4\\ \end{vmatrix}$$, Vmatrix $$\begin{Vmatrix}1&2\\3&4\\ \end{Vmatrix}$$.

2. Use \cdots $$\cdots$$ \ddots $$\ddots$$ \vdots $$\vdots$$ when you want to omit some of the entries:

$$\begin{pmatrix} 1 & a_1 & a_1^2 & \cdots & a_1^n \\ 1 & a_2 & a_2^2 & \cdots & a_2^n \\ \vdots & \vdots& \vdots & \ddots & \vdots \\ 1 & a_m & a_m^2 & \cdots & a_m^n \end{pmatrix}$$

3. For horizontally "augmented" matrices, put parentheses or brackets around a suitably-formatted table; see arrays below for details. Here is an example:

$$\left[\begin{array}{cc|c} 1&2&3\\ 4&5&6 \end{array}\right]$$

is produced by:

    $$\left[ \begin{array}{cc|c} 1&2&3\\ 4&5&6 \end{array} \right]$$


The cc|c is the crucial part here; it says that there are three centered columns with a vertical bar between the second and third.

1. For vertically "augmented" matrices, use \hline. For example

$$\begin{pmatrix} a & b \\ c & d\\ \hline 1 & 0\\ 0 & 1 \end{pmatrix}$$ is produced by

$$\begin{pmatrix} a & b\\ c & d\\ \hline 1 & 0\\ 0 & 1 \end{pmatrix}$$

1. For small inline matrices use \bigl(\begin{smallmatrix} ... \end{smallmatrix}\bigr), e.g. $$\bigl( \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \bigr)$$ is produced by:

  $$\bigl( \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \bigr)$$

• This says "End each matrix row with \\". But there is no reason to end the LAST row of the matrix that way. The double backslash means: now go on to the next row. But there isn't any next row after the last one. Aug 28, 2014 at 5:15
• I can't edit, but that could be phrased "Separate matrix rows with \\". Nov 18, 2016 at 9:43
• as in section 6 of the tutorial... Which tutorial? Is there a link to this tutorial section? May 21, 2017 at 3:35
• @tom The tutorial is at the top of this page. It has numbered sections.
– MJD
May 21, 2017 at 17:04
• @MichaelHardy but a \\ on every line is harmless, and it makes the editing of matrices easier because swapping with the last line can be done with one quick keystroke in many editors. Feb 8, 2018 at 15:18
• Is it possible to get smallpmatrix or something? Aug 13, 2018 at 5:49
• There's something strange about the second matrix (right after "produces:"); it seems to render properly as a matrix on this page, but on the revision permalink math.meta.stackexchange.com/revisions/5023/7 it shows up as raw LaTeX in a code block.
– j.c.
Feb 16, 2021 at 21:31
• vmatrix does not show the vertical bar. Aug 4, 2022 at 5:51
• vmatrix does not show the vertical bar. (\begin{vmatrix}0 & 3 & 2x+7\\ 2 & 7x & 9+5x\\ 0 & 0 & 2x+5\\ \end{vmatrix}=0) হলে x এর মান- Aug 4, 2022 at 6:38
• I am using <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"> </script> Aug 4, 2022 at 7:06
• Is there a way to combine the horizontal and vertical lines in a single matrix to show the partitions of a matrix? Mar 31, 2023 at 19:31

## Symbols

In general, you have to search in long tables about a specific symbol you're looking for, things like $\Psi$, $\delta$, $\zeta$, $\ge$, $\subseteq$ ... And it turns out that this operation can be frustrating and time consuming, which can cause the buddy to abandon writing the complete $\LaTeX$ sentence in his answer, or in some cases, the complete answer itself.

That's why the tool that I will present you in this post was conceived. Basically, it is a $\LaTeX$ handwritten symbol recognition. Example in image:

Here is the website: Detexify² No more frustration.

• How to implement usepackage ? I'd like to have \iddots from package mathdots available. Jun 15, 2016 at 11:05
• @GottfriedHelms see this question - I think the answer is "you can't do that"... Jun 27, 2017 at 22:40
• @Floris: thanks, that is indeed the informative answer! Jun 28, 2017 at 0:35
• It recognized my horrible drawing with a finger on my notebook's mousepad! Unfortunately the symbol it recognized (mapsfrom) isn't part of MathJax Oct 24, 2019 at 5:55

# Aligned equations

Often people want a series of equations where the equals signs are aligned. To get this, use \begin{align}…\end{align}. Each line should end with \\, and should contain an ampersand at the point to align at, typically immediately before the equals sign.

For example,

\begin{align} \sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\ & = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\ & = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\ & = \frac{73}{12}\sqrt{1 - \frac{1}{73^2}} \\ & \approx \frac{73}{12}\left(1 - \frac{1}{2\cdot73^2}\right) \end{align}

is produced by

\begin{align}
\sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\
& = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\
& = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\
& = \frac{73}{12}\sqrt{1 - \frac{1}{73^2}} \\
& \approx \frac{73}{12}\left(1 - \frac{1}{2\cdot73^2}\right)
\end{align}


The usual  marks that delimit the display may be omitted here. • The AMS's Short Math Guide recommends the align environment over eqnarray in LaTeX. In MathJax the spacing seems to be the same , but align requires one less ampersand per line. – user856 Aug 28, 2012 at 4:41 • Thanks. I was not sure whether to discuss that. A detailed argument against eqnarray is in this article. – MJD Aug 28, 2012 at 4:51 • Would you mind if I changed your example to use align then? – user856 Aug 28, 2012 at 5:34 • @Rahul: Please go ahead and change anything that seems good to change. This is all CW. – MJD Aug 28, 2012 at 5:44 • Also, if you think you have a better example, please use it; I used the first one I found. – MJD Aug 28, 2012 at 5:49 • Correct me if I'm wrong, but I don't believe the \\ is necessary before and after the \begin{align}. I've certainly never used it. From experience, the \begin{align} puts you into math-display mode by itself. Apr 21, 2015 at 12:24 • I sometimes find that one line of this environment is too close to another, making them uncomfortable to read. The interline spacing can be adjusted by using input such as \\[1ex] instead of \\ . (And of course the 1 can be changed to another value such as 1.5 or .7 in order to get enough space but not too much.) Jan 30, 2016 at 16:29 • Note - in Jekyll I had to add an additional \ to break lines. – baxx May 24, 2016 at 17:45 • @MJD i put the equation: \begin{align} f(x)&=\left(x^3\right)+\left(x^3+x^2+x^1\right)+\left(x^3+x^2\right)\\ f'(x)&=\left(\left(3x^2+2x+1\right)+\left(3x^2+2x\right)\\ f''(x)&=\left(6x+2\right)\\ \end{align} but the third & is a problem: according to Mathjax, it does not go there. then when i remove it, it says that "a missing close brace or unclosed brace" is present. what am i doing wrong? Apr 26, 2017 at 21:25 • @AlexanderDay How did you used that boxed quote? What are commands or formats for it? – user379641 May 21, 2017 at 15:53 • @AlexanderDay I notice that right after your second &=, you have two instances of \left( in a row, and one of them is not closed. Removing one of them, I get: \begin{align} f(x)&=\left(x^3\right)+\left(x^3+x^2+x^1\right)+\left(x^3+x^‌​2\right)\\ f'(x)&=\left(3x^2+2x+1\right)+\left(3x^2+2x\right)\\ f''(x)&=\left(6x+2\right)\\ \end{align} Is that what you expected? Oct 2, 2017 at 13:31 • @AlwaysConfused the box delimits a MathJax formula with a syntax error. Oct 2, 2017 at 13:32 • There is a difference between aligned and align environment. Equation above are just one equation with different representations, rather than multiple aligned equations. I think the correct environment is aligned. Jan 26, 2018 at 1:40 • The align* variation does two things differently: left-aligns the equations and omits equation numbers; the regular align environment centers the equations and puts an equation number on each line, at least in my version of Jupyter notebooks. Feb 6, 2018 at 19:24 • pandoc (or the underlying tex2pdf) actually complains if the \begin{align} is preceded by
– TKH
Apr 18, 2021 at 7:01

## Definitions by cases (piecewise functions)

Warning: If you make certain kinds of errors while entering code using this environment, you can easily screw-up live update, and your only recourse is to abandon your edit and refresh the page. Clearing out the code and re-entering it will not fix things - you will have to refresh the page. If you are learning how to use this feature it is recommended that you cut-and-paste a working example from here, and modify it bit-by-bit to the text you want.

Use \begin{cases}…\end{cases}. End each case with a \\, and use & before parts that should be aligned.

For example, you get this:

$$f(n) = \begin{cases} n/2, & \text{if n is even} \\ 3n+1, & \text{if n is odd} \end{cases}$$

by writing this:

  f(n) =
$$\begin{cases} n/2, & \text{if n is even} \\ 3n+1, & \text{if n is odd} \end{cases}$$


The brace can be moved to the right: $$\left. \begin{array}{l} \text{if n is even:}&n/2\\ \text{if n is odd:}&3n+1 \end{array} \right\} =f(n)$$ by writing this:

\left.
$$\begin{array}{l} \text{if n is even:}&n/2\\ \text{if n is odd:}&3n+1 \end{array}$$
\right\}
=f(n)


To get a larger vertical space between cases we can use \\[2ex] instead of \\. For example, you get this:

$$f(n) = \begin{cases} \frac{n}{2}, & \text{if n is even} \\[2ex] 3n+1, & \text{if n is odd} \end{cases}$$

by writing this:

f(n) =
$$\begin{cases} \frac{n}{2}, & \text{if n is even} \\[2ex] 3n+1, & \text{if n is odd} \end{cases}$$


(An ‘ex’ is a length equal to the height of the letter x; 2ex here means the space should be two exes high.)

• @MJD Do we have to use the additional instruction \displaystyle when the formulas displayed are more complex ?
– jibe
Jul 1, 2014 at 14:43
• @jibs \displaystyle is enabled automatically in displays, for example between $$…$$. You should not ever have to use it.
– MJD
Jul 1, 2014 at 14:50
• @jibe In general, the separate cases in this notation should be in text style unless they are very very complex (and then, the { notation is just wrong anyways).
– yo'
Aug 25, 2014 at 9:53
• can this be written with ascii math instead of latex @MJD May 24, 2018 at 7:35
• What an absurd function to use as an example. Nobody would ever consider such a function. Oct 30, 2018 at 21:56

## Arrays

It is often easier to read tables formatted in MathJax rather than plain text or a fixed width font. Arrays and tables are created with the array environment. Just after \begin{array} the format of each column should be listed, use c for a center aligned column, r for right aligned, l for left aligned and a | for a vertical line. Just as with matrices, cells are separated with & and rows are broken using \\. A horizontal line spanning the array can be placed before the current line with \hline.

For example, $$\begin{array}{c|lcr} n & \text{Left} & \text{Center} & \text{Right} \\ \hline 1 & 0.24 & 1 & 125 \\ 2 & -1 & 189 & -8 \\ 3 & -20 & 2000 & 1+10i \end{array}$$

$$\begin{array}{c|lcr} n & \text{Left} & \text{Center} & \text{Right} \\ \hline 1 & 0.24 & 1 & 125 \\ 2 & -1 & 189 & -8 \\ 3 & -20 & 2000 & 1+10i \end{array}$$


Arrays can be nested to make an array of tables.

For example, $$% outer vertical array of arrays \begin{array}{c} % inner horizontal array of arrays \begin{array}{cc} % inner array of minimum values \begin{array}{c|cccc} \text{min} & 0 & 1 & 2 & 3\\ \hline 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 1 & 1 & 1\\ 2 & 0 & 1 & 2 & 2\\ 3 & 0 & 1 & 2 & 3 \end{array} & % inner array of maximum values \begin{array}{c|cccc} \text{max}&0&1&2&3\\ \hline 0 & 0 & 1 & 2 & 3\\ 1 & 1 & 1 & 2 & 3\\ 2 & 2 & 2 & 2 & 3\\ 3 & 3 & 3 & 3 & 3 \end{array} \end{array} \\ % inner array of delta values \begin{array}{c|cccc} \Delta&0&1&2&3\\ \hline 0 & 0 & 1 & 2 & 3\\ 1 & 1 & 0 & 1 & 2\\ 2 & 2 & 1 & 0 & 1\\ 3 & 3 & 2 & 1 & 0 \end{array} \end{array}$$

As the source for the preceding array is long, please right-click on one of the tables and choose $\mathsf{Show\ Math\ As\ }\blacktriangleright\mathsf{\ TeX\ Commands}$.

• You'll have to wrap the contents of each cell in \text if you don't want $all italics, weird-looking spacing, an' odd apostrophes$.
– user856
Aug 29, 2012 at 21:30
• @RahulNarain: True. I used words just for illustration, but I guess the example was slightly misleading. If you'd like to modify it please go ahead. Aug 29, 2012 at 22:00
• Thanks! I like your numeric example better, since the widths of the entries are different enough that the alignment differences are visually clear.
– MJD
Aug 30, 2012 at 1:37
• @robjohn how do you use | while typing , i don't find it in my keyboard......
– ABC
Mar 28, 2013 at 12:05
• @exploringnet: on my keyboard, it is the shifted backslash. It may be in different places (or absent) depending on your keyboard. On my mobile device (iPhone), it is in the shifted numerics, to the right of the backslash. In mathmode, \vert gives $\vert$ and \mid gives $\mid$, but neither works in the column spec for an array. If you cannot type it on your keyboard, you can alwaays copy and paste it from another document.
– robjohn Mod
Mar 28, 2013 at 17:39
• It should perhaps be mentioned, that in nested arrays there seems to be no option to synchronize column-widths and/or row-heights over the top-level. I didn't find a solution such that if two arrays are stacked vertically one could make their column-widths matching/fit. Aug 26, 2013 at 9:16
• This could also be convenient for some people, althought it destroys the joy of writing tables in $\LaTeX$ by hand! Jun 3, 2014 at 14:18
• @Rahul: why did regulars not press developers to enhance HTML formatting instead of doing inconvenient and resource-devouring detours through MathJax? When a table contains (mostly) formulæ, the use of a formula-formatting engine looks determined. But when one wants just a table, why should it run software with completely different purpose? I once tried to speak about it at meta.SE, but was gagged. Dec 3, 2014 at 12:11
• @IncnisMrsi What kind of pressure could we apply: bribery, threats, kidnapping? A feature request was made, supported by SE communities, and declined by SE (on technical grounds, as they say). At least we have the MathJax workaround, with all of its flaws: SO and others have nothing.
– user147263
Dec 3, 2014 at 15:55
• Center Aligned Table Captions with Left Aligned Contents \begin{array}{ll} \hfill\mathrm{Bad}\hfill & \hfill\mathrm{Better}\hfill \\ \hline \\ e^{i\frac{\pi}2} \quad e^{\frac{i\pi}2}& e^{i\pi/2} \\ \int_{-\frac\pi2}^\frac\pi2 \sin x\,dx & \int_{-\pi/2}^{\pi/2}\sin x\,dx \\ \end{array} Dec 12, 2016 at 16:41
• P.S. Table copied from MJD's example below so as to make an example with cells much wider than the caption. Dec 12, 2016 at 16:47
• @MJD Is there any command for a vertical line, like \hline ? The {cc|c} part in the array code is confusing. May 14, 2022 at 16:50
• There is the \rm command instead of the entire code in \text Apr 23, 2023 at 12:06

## Fussy spacing issues

These are issues that won't affect the correctness of formulas, but might make them look significantly better or worse. Beginners should feel free to ignore this advice; someone else will correct it for them, or more likely nobody will care.

Don't use \frac in exponents or limits of integrals; it looks bad and can be confusing, which is why it is rarely done in professional mathematical typesetting. Write the fraction horizontally, with a slash:

$$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ e^{i\frac{\pi}2} \quad e^{\frac{i\pi}2}& e^{i\pi/2} \\ \int_{-\frac\pi2}^\frac\pi2 \sin x\,dx & \int_{-\pi/2}^{\pi/2}\sin x\,dx \\ \end{array}$$

The | symbol has the wrong spacing when it is used as a divider, for example in set comprehensions. Use \mid instead:

$$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \{x|x^2\in\Bbb Z\} & \{x\mid x^2\in\Bbb Z\} \\ \end{array}$$

When using stretchable delimiters (i.e. with \left and \right), it may be preferable to use \,\middle|\,. This produces a stretchable vertical bar with a little bit of space around it. Another alternative is to use a colon instead.

$$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \left\{\dfrac{m}{n} \mid m,n\in\Bbb Z\right\} & \left\{\dfrac{m}{n} \,\middle|\, m,n\in\Bbb Z\right\} \\ \end{array}$$

For double and triple integrals, don't use \int\int or \int\int\int. Instead use the special forms \iint and \iiint: $$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \int\int_S f(x)\,dy\,dx & \iint_S f(x)\,dy\,dx \\ \int\int\int_V f(x)\,dz\,dy\,dx & \iiint_V f(x)\,dz\,dy\,dx \end{array}$$

Use \, to insert a thin space before differentials; without this $$\TeX$$ will mash them together:

$$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \iiint_V f(x)dz dy dx & \iiint_V f(x)\,dz\,dy\,dx \end{array}$$

When using a function (e.g. $$f$$, $$\sin$$, etc) followed by arguments with larger parentheses, insert negative space before the parentheses using \!:

$$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ f\left( \dfrac{1}{x} \right) & f\!\left(\dfrac{1}{x}\right) \end{array}$$

When using absolute value, use \lvert ... \rvert instead of a pair of pipes |...|.

$$\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ |\sin x| & \lvert\sin x\rvert \end{array}$$

• I think the first adjusted fraction looks better than the original, but I don't like the second. In any case, this minor spacing imbalance is too peripheral to belong in a basic MathJax tutorial IMO. Too likely to scare people away rather than make them feel helped. Aug 31, 2012 at 21:05
• @Henning Do you mean that the fraction example is too unimportant even to appear in an addendum on fussy spacing, or that the fussy spacing article is too unimportant to appear as an addendum to the tutorial?
– MJD
Aug 31, 2012 at 23:57
• I was talking specifically about the fraction example. Mostly I'm concerned that somebody will come away thinking, Eeek! Do I have to worry about THAT to use the site? But it's also arguable that the disclaimer at the top of the answer ought to take care of that. Sep 1, 2012 at 21:13
• @MJD I like the less space, but what if we want to list the bounds for multiple integrals? Like if we have say 3 integrals and we have 3 separate bounds for each how would we list each one? Or do we have to do \int_bound1^bound2\int_bound3^bound4\int_bound5^bound6?? Nov 19, 2012 at 19:45
• @Kyle I think that's exactly what you do in that case.
– MJD
Nov 19, 2012 at 20:09
• Worth nothing you can use \middle with | to get it to work with \left and \right, like \left\{x\middle | \frac{x^2}{2} \in \mathbb{z}\right\}: $\left\{x\middle | \frac{x^2}{2} \in \mathbb{z}\right\}$ Jun 9, 2013 at 22:49
• Thanks very much! I wanted to do that, but didn't know how.
– MJD
Jun 10, 2013 at 15:47
• @asmeurer Don't forget the spacing around the bar. Apr 26, 2018 at 19:30
• It seems \middle \mid doesn't work. What is the correct way to get the right spacing with automatic vertical resizing? Apr 26, 2018 at 20:05
• In the case of base $e$ powers I would recommend using $\exp(i\pi/2)$ which is, in my opinion, even better than what's suggested in this post. Jun 9, 2018 at 23:08
• @asmeurer I always use \left\{\, ... \,\middle|\, ... \,\right\} like in $\left\{\,x\in\Bbb R\,\middle|\, \frac{x^2}{2}\in\Bbb Z\,\right\}$. Dec 17, 2018 at 21:14
• I've been using \; and \: along with \,, and I think they have different spacing, so it's pretty versatile but can get you stuck on formatting an answer for ages because you were trying to get the spaces to match on the scale of pixels :\ Sep 29, 2023 at 1:09

# Crossing things out

Use \require{cancel} in the first formula in your post that requires cancelling; you need it only once per page. Then use:

$$\require{cancel}\begin{array}{rl} \verb|y+\cancel{x}| & y+\cancel{x}\\ \verb|\cancel{y+x}| & \cancel{y+x}\\ \verb|y+\bcancel{x}| & y+\bcancel{x}\\ \verb|y+\xcancel{x}| & y+\xcancel{x}\\ \verb|y+\cancelto{0}{x}| & y+\cancelto{0}{x}\\ \verb+\frac{1\cancel9}{\cancel95} = \frac15+& \frac{1\cancel9}{\cancel95} = \frac15 \\ \end{array}$$

Use \require{enclose} for the following:

$$\require{enclose}\begin{array}{rl} \verb|\enclose{horizontalstrike}{x+y}| & \enclose{horizontalstrike}{x+y}\\ \verb|\enclose{verticalstrike}{\frac xy}| & \enclose{verticalstrike}{\frac xy}\\ \verb|\enclose{updiagonalstrike}{x+y}| & \enclose{updiagonalstrike}{x+y}\\ \verb|\enclose{downdiagonalstrike}{x+y}| & \enclose{downdiagonalstrike}{x+y}\\ \verb|\enclose{horizontalstrike,updiagonalstrike}{x+y}| & \enclose{horizontalstrike,updiagonalstrike}{x+y}\\ \end{array}$$

\enclose can also produce enclosing boxes, circles, and other notations; see MathML menclose documentation for a complete list.

It is worth noting that MathJax should not be used for formatting non-mathematical text. The preferred way for striking out text is to use the HTML strikethrough tag, <s>[text to be striken]</s>, which renders as [text to be striken].

• Can I use \enclose{counterstrike}? :P Jul 27, 2015 at 19:19
• That sneaky $19/95 = 1/5$. Nice one! Dec 8, 2015 at 23:57
• I see you can further resolve existing resolutions, $\cancelto{\cancelto{\cancelto{x^{2+x}}{\cancelto{x^2}{x}+4}}4}0$ May 1, 2016 at 2:40
• Is enclose a $\LaTeX$ package, or only a MathML option? Nov 4, 2016 at 18:51
• Here is a related post on meta: Striking out equations. Mar 20, 2019 at 3:15
• Nice command to make an arrow: $\cancelto{}{}$ \cancelto{}{}
– user803596
Jul 21, 2020 at 11:32
• In fact, strikethrough markup should be avoided even in text as far as possible, in the interest of accessibility: they are not picked up by screen readers (see veroniiiica.com/2020/05/29/…). CC @XanderHenderson Sep 19, 2022 at 22:13

## Commutative diagrams

(For more examples, see this meta question.)

$$\require{AMScd}$$
$$\begin{CD} A @>a>> B\\ @V b V V= @VV c V\\ C @>>d> D \end{CD}$$


to get this diagram: $$\require{AMScd}$$ $$\begin{CD} A @>a>> B\\ @V b V V= @VV c V\\ C @>>d> D \end{CD}$$

@>>> is used for arrow right

@<<< is used for arrow left

@VVV is used for arrow down

@AAA is used for arrow up

@= is used for horizontal double line

@| is used for vertical double line

@. is used for no arrow

Another example:

    $$\begin{CD} A @>>> B @>{\text{very long label}}>> C \\ @. @AAA @| \\ D @= E @<<< F \end{CD}$$


$$\begin{CD} A @>>> B @>{\text{very long label}}>> C \\ @. @AAA @| \\ D @= E @<<< F \end{CD}$$

Long labels increase the length of the arrow and in this version also automatically increase corresponding arrows.

$$\require{AMScd}$$
$$\begin{CD} RCOHR'SO_3Na @>{\text{Hydrolysis,\Delta, Dil.HCl}}>> (RCOR')+NaCl+SO_2+ H_2O \end{CD}$$


$$\require{AMScd}$$ $$\begin{CD} \text{RCOHR'SO_3Na} @>{\text{Hydrolysis, \Delta, Dil. HCl}}>> \text{(RCOR')+NaCl+SO_2+ H_2O} \end{CD}$$

• $\require{AMScd}$\begin{CD} RCOHR'SO_3Na @>{\text{Hydrolysis,\Delta, Dil.HCl}>> (RCOR')+NaCl+SO_2+ H_2O \end{CD} Why does this code not give the correct output? Feb 4, 2016 at 10:04
• @Quark: The main error was a missing bracket after HCl.
– Lehs
Feb 4, 2016 at 11:38
• @Lehs Thanks. That was a silly mistake :| What if I wanted to write something below the arrow? Also, could you suggest some online website to learn MathJax? Feb 4, 2016 at 11:58
• @Quark: then you move a > sign: @>>{\text{very long label}}> I learn MathJax from the examples i.e. in this tread.
– Lehs
Feb 4, 2016 at 15:06
• @Lehs Why did you rollback my edit...? You removed the formatting from the list, broke again (in Chrome) the example diagram, and reinserted your duplicate example. Why? Feb 4, 2016 at 15:25
• @NajibIdrissi: because your edit appeared as a mess in IE. The diagram wasn't even written out. Maybe there is something wrong in your or in my web-program. Now it looks good in IE.
– Lehs
Feb 4, 2016 at 15:44
• @NajibIdrissi: Now it also looks good in Chrome for Windows and for Android, plus Safari for Androids. I don't know what the problem is with the current version.
– Lehs
Feb 4, 2016 at 15:56
• I realize this thread is quite old, but what about diagonal arrows? Mar 23, 2017 at 5:01
• @AlfredYerger: there are no such possibilities in AMScd.
– Lehs
Sep 28, 2017 at 3:57
• how to draw a double arrow pointing both directions to the left as well as to the right between two points in commutative diagram? Mar 17, 2021 at 13:43
• How does one draw a curved arrow like in quiver? Aug 27, 2022 at 14:42

$$\def\demo#1#2{#1{#2}\ #1{#2#2}\ #1{#2#2#2}}$$

\overline: $$\demo\overline A$$

\underline: $$\demo\underline B$$

\widetilde: $$\demo\widetilde C$$

\widehat: $$\demo\widehat D$$

\fbox: $$\demo\fbox {E}$$

\underleftarrow: $$\demo\underleftarrow{F}\qquad$$ variant: \xleftarrow{}: $$\xleftarrow{abc}$$

\underrightarrow: $$\demo\underrightarrow{G}\qquad$$ variant: \xrightarrow{}: $$\xrightarrow{abc}$$

\underleftrightarrow: $$\demo\underleftrightarrow{H}$$

\overrightarrow $$\demo\overrightarrow{AB}$$

\overbrace: $$\overbrace{(n - 2) + (n - 1) + (n + 0) + (n + 1) + (n + 2)}$$

\underbrace: $$\underbrace{(n - 2) + (n - 1) + (n + 0) + (n + 1) + (n + 2)}$$

\underbrace: underbraces can be nested, like this: $$\underbrace{(n - 2) + \underbrace{(n - 1) + \underbrace{(n + 0)} + (n + 1)} + (n + 2)}$$

\overbrace and \underbrace accept a superscript or a subscript, respectively, to annotate the brace. For example, \underbrace{a\cdot a\cdots a}_{b\text{ times}} is $$\underbrace{a\cdot a\cdots a}_{b\text{ times}}$$

Note: \varliminf: $$\varliminf$$ and \varlimsup:$$\varlimsup$$ have special symbol of their own.

## Single character accents

\check: $$\check{I}$$

\acute: $$\acute{J}$$

\grave: $$\grave{K}$$

\vec: $$\vec u\ \vec{AB}$$ (c.f. \overrightarrow above)

\bar: $$\bar z$$

\hat: $$\hat x$$

\tilde: $$\tilde x$$

\dot \ddot \dddot: $$\dot x,\ddot x,\dddot x$$

\mathring: $$\mathring A$$

## General stacking

If you cannot find your symbol remember that you can stack various symbols using

\overset{above}{level}: $$\overset{@}{ABC}\ \overset{x^2}{\longmapsto}\ \overset{\bullet\circ\circ\bullet}{T}$$

\underset{below}{level}: $$\underset{@}{ABC}\ \underset{x^2}{\longmapsto}\ \underset{\bullet\circ\circ\bullet}{T}$$

You can use these together too. You can type $$X \overset{a}{\underset{b}{\to}} Y$$ with X\overset{a}{\underset{b}{\to}}Y.

## Arc over points

\overset{ \huge\frown}{PQ}: $$\overset{ \huge\frown}{PQ}$$ denotes the arc over points $$P$$ and $$Q$$ (As per comment of @Calvin Khor to @Paul Sinclair's question)

• Instead of using $\fbox$, you could also use $\boxed{...}$ Oct 19, 2017 at 21:23
• added arrows with text variants, some new single char accents and general stacking section.
– zwim
Oct 27, 2017 at 1:42
• stackrel also seems to work well, as in \stackrel{\text{def}}{=} $\longrightarrow\stackrel{\text{def}}{=}$ Feb 6, 2018 at 16:48
• Is there a way to do arcs over points, such as to indicate the arc of a curve between two points $P$ and $Q$? \widearc {PQ} doesn't seem to work. Jul 29, 2019 at 21:41
• $\frown{PQ}$ kind of.
– user645636
Sep 13, 2019 at 21:36
• The best I've been able to come up with is \overset{\frown}{PQ} : $\overset{\frown}{PQ}$. But since \frown doesn't adjust in size, it doesn't look right. Does anyone know how get a properly sized arc? Sep 20, 2019 at 23:47
• @PaulSinclair I offer the following \overset{\frown}{AB}\overset{ \large\frown}{CD}\overset{\Large\frown}{EF}\overset{ \huge\frown}{GH}\overset{\Huge\frown}{ABC} $\overset{\frown}{AB}\overset{ \large\frown}{CD}\overset{\Large\frown}{EF}\overset{ \huge\frown}{GH}\overset{\Huge\frown}{ABC}$ Sep 22, 2019 at 7:11

## System of equations

• Use \begin{array}…\end{array} and \left\{…\right.. For example, you get this:

$$\left\{ \begin{array}{c} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{array} \right.$$

by writing this:

$$\left\{ \begin{array}{c} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{array} \right.$$

• Alternatively we can use \begin{cases}…\end{cases}. The same system

$$\begin{cases} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{cases}$$

is produced by the following code

$$\begin{cases} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{cases}$$

• To align the = signs use \begin{aligned}...\end{aligned} and \left\{…\right. (see asmeurer's comment) \left\{\begin{aligned} a_1x+b_1y+c_1z&=d_1+e_1 \\ a_2x+b_2y&=d_2 \\ a_3x+b_3y+c_3z&=d_3 \end{aligned} \right.

whose code is

\left\{ \begin{aligned} a_1x+b_1y+c_1z &=d_1+e_1 \\ a_2x+b_2y&=d_2 \\ a_3x+b_3y+c_3z &=d_3 \end{aligned} \right.

• To align the = signs and the terms as in $$\left\{\begin{array}{ll}a_1x+b_1y+c_1z &=d_1+e_1 \\ a_2x+b_2y &=d_2 \\ a_3x+b_3y+c_3z &=d_3 \end{array} \right.$$

use array with l (for "align left"; there are also c and r) parameters

$$\left\{ \begin{array}{ll} a_1x+b_1y+c_1z &=d_1+e_1 \\ a_2x+b_2y &=d_2 \\ a_3x+b_3y+c_3z &=d_3 \end{array} \right.$$

• Vertical space between equations. As explained in Definition by cases to get a larger vertical space between equations we can use \\[2ex] instead of \\. The system

$$\begin{cases} a_1x+b_1y+c_1z=\frac{p_1}{q_1} \\[2ex] a_2x+b_2y+c_2z=\frac{p_2}{q_2} \\[2ex] a_3x+b_3y+c_3z=\frac{p_3}{q_3} \end{cases}$$

is generated by the following code

$$\begin{cases} a_1x+b_1y+c_1z=d_1 \\[2ex] a_2x+b_2y+c_2z=d_2 \\[2ex] a_3x+b_3y+c_3z=d_3 \end{cases}$$

in comparison with

$$\begin{cases} a_1x+b_1y+c_1z=\frac{p_1}{q_1} \\ a_2x+b_2y+c_2z=\frac{p_2}{q_2} \\ a_3x+b_3y+c_3z=\frac{p_3}{q_3} \end{cases}$$

whose code is

$$\begin{cases} a_1x+b_1y+c_1z=\frac{p_1}{q_1} \\ a_2x+b_2y+c_2z=\frac{p_2}{q_2} \\ a_3x+b_3y+c_3z=\frac{p_3}{q_3} \end{cases}$$

• In response to elect's comment. The following code

$$\left\{ \begin{array}{l} 0 = c_x-a_{x0}-d_{x0}\dfrac{(c_x-a_{x0})\cdot d_{x0}}{\|d_{x0}\|^2} + c_x-a_{x1}-d_{x1}\dfrac{(c_x-a_{x1})\cdot d_{x1}}{\|d_{x1}\|^2} \\[2ex] 0 = c_y-a_{y0}-d_{y0}\dfrac{(c_y-a_{y0})\cdot d_{y0}}{\|d_{y0}\|^2} + c_y-a_{y1}-d_{y1}\dfrac{(c_y-a_{y1})\cdot d_{y1}}{\|d_{y1}\|^2} \end{array} \right.$$

produces

$$\left\{ \begin{array}{l} 0 = c_x-a_{x0}-d_{x0}\dfrac{(c_x-a_{x0})\cdot d_{x0}}{\|d_{x0}\|^2} + c_x-a_{x1}-d_{x1}\dfrac{(c_x-a_{x1})\cdot d_{x1}}{\|d_{x1}\|^2} \\[2ex] 0 = c_y-a_{y0}-d_{y0}\dfrac{(c_y-a_{y0})\cdot d_{y0}}{\|d_{y0}\|^2} + c_y-a_{y1}-d_{y1}\dfrac{(c_y-a_{y1})\cdot d_{y1}}{\|d_{y1}\|^2} \end{array} \right.$$

• Is it possible to rotate text? To have a vertical word written in front of the large curly bracket that spans over all the equations? Jul 3, 2017 at 14:21
• @Steeven Go here $\longrightarrow$ math.meta.stackexchange.com/questions/27798/… Feb 1, 2018 at 4:32
• Thank you, @user477343. This would be a useful feature on this list. Feb 1, 2018 at 14:38

## Colors

Named colors are browser-dependent; if a browser doesn't know a particular color name, it may render the text as black. The following colors are standard in HTML4 and CSS2 and should be interpreted the same by most browsers: $$\begin{array}{|rc|} \hline \verb+\color{black}{text}+ & \color{black}{text} \\ \verb+\color{gray}{text}+ & \color{gray}{text} \\ \verb+\color{silver}{text}+ & \color{silver}{text} \\ \verb+\color{white}{text}+ & \color{white}{text} \\ \hline \verb+\color{maroon}{text}+ & \color{maroon}{text} \\ \verb+\color{red}{text}+ & \color{red}{text} \\ \verb+\color{yellow}{text}+ & \color{yellow}{text} \\ \verb+\color{lime}{text}+ & \color{lime}{text} \\ \verb+\color{olive}{text}+ & \color{olive}{text} \\ \verb+\color{green}{text}+ & \color{green}{text} \\ \verb+\color{teal}{text}+ & \color{teal}{text} \\ \verb+\color{aqua}{text}+ & \color{aqua}{text} \\ \verb+\color{blue}{text}+ & \color{blue}{text} \\ \verb+\color{navy}{text}+ & \color{navy}{text} \\ \verb+\color{purple}{text}+ & \color{purple}{text} \\ \verb+\color{fuchsia}{text}+ & \color{magenta}{text} \\ \hline \end{array}$$

Math Stack Exchange's default style uses a light-colored page background, so avoid using light colors for text. Stick to darker colors like maroon, green, blue, and purple, and remember also that 7–10% of men are color-blind and have difficulty distinguishing red and green. (Some people have difficulty distinguishing other colors too, so don't rely on colors saying "the blue part" over and over again.)

The color may also have the form #rgb where $$r, g, b$$ are in the range or 09, af and represent the intensity of red, green, and blue on a scale of $$0–15$$, with a=10, b=11, … f=15. For example:

$$\begin{array}{|rrrrrrrr|}\hline \verb+#000+ & \color{#000}{text} & & & \verb+#00F+ & \color{#00F}{text} & & \\ & & \verb+#0F0+ & \color{#0F0}{text} & & & \verb+#0FF+ & \color{#0FF}{text}\\ \verb+#F00+ & \color{#F00}{text} & & & \verb+#F0F+ & \color{#F0F}{text} & & \\ & & \verb+#FF0+ & \color{#FF0}{text} & & & \verb+#FFF+ & \color{#FFF}{text}\\ \hline \end{array}$$

$$\begin{array}{|rrrrrrrr|} \hline \verb+#000+ & \color{#000}{text} & \verb+#005+ & \color{#005}{text} & \verb+#00A+ & \color{#00A}{text} & \verb+#00F+ & \color{#00F}{text} \\ \verb+#500+ & \color{#500}{text} & \verb+#505+ & \color{#505}{text} & \verb+#50A+ & \color{#50A}{text} & \verb+#50F+ & \color{#50F}{text} \\ \verb+#A00+ & \color{#A00}{text} & \verb+#A05+ & \color{#A05}{text} & \verb+#A0A+ & \color{#A0A}{text} & \verb+#A0F+ & \color{#A0F}{text} \\ \verb+#F00+ & \color{#F00}{text} & \verb+#F05+ & \color{#F05}{text} & \verb+#F0A+ & \color{#F0A}{text} & \verb+#F0F+ & \color{#F0F}{text} \\ \hline \verb+#080+ & \color{#080}{text} & \verb+#085+ & \color{#085}{text} & \verb+#08A+ & \color{#08A}{text} & \verb+#08F+ & \color{#08F}{text} \\ \verb+#580+ & \color{#580}{text} & \verb+#585+ & \color{#585}{text} & \verb+#58A+ & \color{#58A}{text} & \verb+#58F+ & \color{#58F}{text} \\ \verb+#A80+ & \color{#A80}{text} & \verb+#A85+ & \color{#A85}{text} & \verb+#A8A+ & \color{#A8A}{text} & \verb+#A8F+ & \color{#A8F}{text} \\ \verb+#F80+ & \color{#F80}{text} & \verb+#F85+ & \color{#F85}{text} & \verb+#F8A+ & \color{#F8A}{text} & \verb+#F8F+ & \color{#F8F}{text} \\ \hline \verb+#0F0+ & \color{#0F0}{text} & \verb+#0F5+ & \color{#0F5}{text} & \verb+#0FA+ & \color{#0FA}{text} & \verb+#0FF+ & \color{#0FF}{text} \\ \verb+#5F0+ & \color{#5F0}{text} & \verb+#5F5+ & \color{#5F5}{text} & \verb+#5FA+ & \color{#5FA}{text} & \verb+#5FF+ & \color{#5FF}{text} \\ \verb+#AF0+ & \color{#AF0}{text} & \verb+#AF5+ & \color{#AF5}{text} & \verb+#AFA+ & \color{#AFA}{text} & \verb+#AFF+ & \color{#AFF}{text} \\ \verb+#FF0+ & \color{#FF0}{text} & \verb+#FF5+ & \color{#FF5}{text} & \verb+#FFA+ & \color{#FFA}{text} & \verb+#FFF+ & \color{#FFF}{text} \\ \hline \end{array}$$

You can have a look here for quick reference on colors in HTML.

• We should add that colors can be used on items other than text, such as variables and operators. The '\color' command applies to the next item: surround anything longer with braces. Feb 21, 2015 at 20:30
• One can in fact use any CSS-compatible colour specification here, including rgb, rgba, hsl, and hsla colours. (I'd edit the answer, but have no time now. Maybe later, if nobody else beats me to it.) Oct 11, 2018 at 14:31

# Tags & References

For longer calculations (or referring to other post's results) it is convenient to use the tagging/labelling/referencing system. To tag an equation use \tag{yourtag}, and if you want to refer to that tag later on, add \label{somelabel} right after the \tag. It is not necessary that yourtag and somelabel are the same, but it usually is more convenient to do so:

$$a := x^2-y^3 \tag{*}\label{*}$$


$$a := x^2-y^3 \tag{*}\label{*}$$

In order to refer to an equation, just use \eqref{somelabel}

$$a+y^3 \stackrel{\eqref{*}}= x^2$$


$$a+y^3 \stackrel{\eqref{*}}= x^2$$

or \ref{somelabel}

Equations are usually referred to as $\eqref{*}$, but you can also use $\ref{*}$.


Equations are usually referred to as $\eqref{*}$, but you can also use $\ref{*}$.

As you can see, references are even turned into hyperlinks, which you can use externally as well, e.g. like this. Note that you can also reference labels in other posts as long as they appear on the same site, which is especially useful when referring to a question with multiple equations, or when commenting on a post.

Due to a bug blocks containing a \label will break in preview, as a workaround you can put $\def\label#1{}$ in your post while editing and remove that on submission - unfortunately this means you won't spot misspelled references before submitting... Just don't forget to remove that \def again

• Also works in comments: \eqref{*} yields a clickable $\eqref{*}$ Oct 31, 2013 at 10:22
• To enable automatically tagging your queations with incremental numbers, add <script type="text/x-mathjax-config"> MathJax.Hub.Config({TeX: { equationNumbers: {autoNumber: "all"} }}); </script> to your header. Jan 20, 2016 at 20:56
• @GeraldSenarclensdeGrancy That would however yield a global numbering on all answers to one question, not per-answer. And it would break the current expectation of by default not having tags despite using unstarred \begin{align} etc.... Though personally I'd agree with this Jan 21, 2016 at 7:19
• I'm just curious, is there a way to have the tags on the left side of the equation? Something like$$(1)\qquad\qquad\sum\limits_{j}k\tag*{}$$But the $(1)$ tag is all the way to the left. Aug 26, 2017 at 16:46
• How do we write a tag without brackets (because I want to tag a little square as a box of accomplishment)? Dec 12, 2017 at 1:20
• @user477343 No idea, you could ask at tex.stackexchange.com or see if the manual of amsmath has something... Dec 12, 2017 at 9:30
• @Crescendo You could ask on tex.stackexchange.com for a solution. A workaround could be \begin{array}{lc} or similar. Dec 12, 2017 at 9:31
• Hey, I figured how to tag without brackets. You simply put what is inside the braces: $\{$\tag*{$\ldots$}$\}$ which I learnt from here $\longrightarrow$ math.meta.stackexchange.com/questions/27731/… Jan 28, 2018 at 0:42
• How do I add several tags analogously to empheq? e.g. \begin{cases} 2x_1 + 3x_2 = 8 \qquad (1a) \\ 7x_1 + 9x_2 = -13 \qquad (1b) \end{cases} Jul 19, 2022 at 13:22
• I can't make \tag{*}\label{*} work—when I use it, the equation is never rendered into an image and in the code that is displayed in place of the image this show up as "\tag{}\label{}". \tag{1}\label{1} on the other hand does work. Mar 2, 2023 at 16:53

## Continued fractions

To make a continued fraction, use \cfrac, which works just like \frac but typesets the results differently:

$$x = a_0 + \cfrac{1^2}{a_1 + \cfrac{2^2}{a_2 + \cfrac{3^2}{a_3 + \cfrac{4^4}{a_4 + \cdots}}}}$$

Don't use regular \frac or \over, or it will look awful:

$$x = a_0 + \frac{1^2}{a_1 + \frac{2^2}{a_2 + \frac{3^2}{a_3 + \frac{4^4}{a_4 + \cdots}}}}$$

You can of course use \frac for the compact notation:

$$x = a_0 + \frac{1^2}{a_1+} \frac{2^2}{a_2+} \frac{3^2}{a_3 +} \frac{4^4}{a_4 +} \cdots$$

Continued fractions are too big to put inline. Display them with $$$$ or use a notation like $[a_0; a_1, a_2, a_3, \ldots]$.

• The RHS of the following continued fraction $$\cfrac{a_{1}}{b_{1}+\cfrac{a_{2}}{b_{2}+\cfrac{a_{3}}{b_{3}+\ddots }}}= {\genfrac{}{}{}{}{a_1}{b_1}} {\genfrac{}{}{0pt}{}{}{+}} {\genfrac{}{}{}{}{a_2}{b_2}} {\genfrac{}{}{0pt}{}{}{+}} {\genfrac{}{}{}{}{a_3}{b_3}} {\genfrac{}{}{0pt}{}{}{+\dots}}$$ can be typeset with the \genfrac command '{\genfrac{}{}{}{}{a_1}{b_1}} {\genfrac{}{}{0pt}{}{}{+}} {\genfrac{}{}{}{}{a_2}{b_2}} {\genfrac{}{}{0pt}{}{}{+}} {\genfrac{}{}{}{}{a_3}{b_3}} {\genfrac{}{}{0pt}{}{}{+\dots}}' Sep 17, 2012 at 20:39
• I wonder if something like $\frac12{\vphantom{1}\atop+}\frac34$ would be good enough? It is much simpler. (\frac12{\vphantom{1}\atop+}\frac34)
– MJD
Sep 17, 2012 at 22:30
• Yes, it is. I didn't mention it because in User’s Guide for the amsmath Package it is written the following: "Note. For technical reasons, using the primitive fraction commands \over, \atop, \above in a LATEX document is not recommended (see, e.g., amsmath.faq)." Sep 17, 2012 at 22:44
• Happily, we are not writing $\LaTeX$ documents here.
– MJD
Sep 17, 2012 at 22:44
• Or write \underset{j=1}{\overset{\infty}{\LARGE\mathrm K}}\frac{a_j}{b_j}=\cfrac{a_1}{b_1+\cfrac{a_2}{b_2+\cfrac{a_3}{b_3+\ddots}}} to get $$\underset{j=1}{\overset{\infty}{\LARGE\mathrm K}}\frac{a_j}{b_j}=\cfrac{a_1}{b_1+\cfrac{a_2}{b_2+\cfrac{a_3}{b_3+\ddots}}}.$$ Jan 24, 2013 at 9:15
• @AméricoTavares Or use \mathop instead of \overset and \underset: \mathop{\LARGE\mathrm K}_{i=1}^\infty \frac{a_i}{b_i} $$\mathop{\LARGE\mathrm K}_{i=1}^\infty \frac{a_i}{b_i}$$ Feb 21, 2015 at 20:48
• @AlexR It's easier, thanks! May 17, 2015 at 13:24
• @AméricoTavares, Why don't you edit the answer and put this extremely helpful command into there, I think that would be more helpful.
– user249332
Jan 24, 2016 at 15:44

# Using \newcommand

I would like to remark that it is possible to define LaTeX commands as you do in your TeX files. I felt so happy when I first discovered it! It's enough to insert something like

$\newcommand{\SES}[3]{ 0 \to #1 \to #2 \to #3 \to 0 }$


$\newcommand{\SES}[3]{ 0 \to #1 \to #2 \to #3 \to 0 }$ at the top of your post (remember the dollars!). Then you can just use your commands as you are used to do: in my example typing $$\SES{A}{B}{C}$$ will produce the following:

$$\SES{A}{B}{C}$$

It's also possible to use plain \def:

\def\ses#1#2#3{0 \to #1 \to #2 \to #3 \to 0}


and then $\ses{A}{B}{C}$ will produce the same output.

• Be aware that this affects the entire post, possibly even the frontpage, so it should be used with great care. Feb 21, 2015 at 20:55
• $\SES{1}{2}{3}$ May 7, 2018 at 22:03
• @AlexR It's been fixed since.
– iBug
Apr 10, 2019 at 3:40
• This unfortunately doesn't work in stackedit.io which I sometimes use to compose and edit longer stackexchange posts. Anyone aware of possible workarounds or alternatives? Jan 7, 2022 at 18:19
• Why does this not work with \def? Apr 23, 2023 at 12:19

\implies ($\implies$) is a marginally preferable alternative to \Rightarrow ($\Rightarrow$) for implication.

There's also \iff $\iff$ and \impliedby $\impliedby$.

\to ($\to$) is preferable to \rightarrow or \longrightarrow for things like $f\colon A \to B$. The reverse is \gets ($\gets$).

• Why is it preferable?
– MJD
Jul 9, 2013 at 20:00
• implies looks nicer as the arrow is longer and \to is quicker to right (and it's also what you say in your head while typing it). at least that's what I think. Jul 29, 2013 at 13:21
• Remember the difference between \to and \mapsto as in $T:\mathbb R\to \mathbb R,\; x\mapsto x+1$ produced by T:\mathbb R\to \mathbb R,\; x\mapsto x+1
– yo'
Aug 25, 2014 at 9:57
• I prefer using \to when it appears as part of a larger propositional formula, rather than at the top level, i.e. $p\land((q\lor r)\to s)$, because the spacing is similar to that of other binary operators. \implies is better for sentence- or clause-level implications, or in displays, i.e. $$x+2=4-x\implies x=1.$$ Feb 2, 2015 at 14:22
• I have always used \Longleftarrow for \impliedby. It generates the same thing anyway, for which the former generates $\Longleftarrow$ and the latter generates $\impliedby$ with \Leftarrow $\Leftarrow$ as an alternate for reverse implication. Jan 16, 2018 at 6:47
• @yo' instead of \mathbb you could also use \Bbb as a matter of fact :) Jan 16, 2018 at 6:53
• Is there a way to add some text above impllies? Such as "by (1)" to refer to another equation that is used for substitution and similar cases. Dec 27, 2019 at 22:02
• @Alexandros yes \overset{3.1415}{\underset{26535}{\implies}} produces $$\overset{3.1415}{\underset{26535}{\implies}}$$
– user645636
Feb 8, 2020 at 12:12

# Big braces

Use \left and \right to make braces - (round), [square] and {curly} - scale up to be the size of their arguments. Thus

$$f\left( \left[ \frac{ 1+\left\{x,y\right\} }{ \left( \frac{x}{y}+\frac{y}{x} \right) \left(u+1\right) }+a \right]^{3/2} \right)$$


renders as $$f\left(\left[ \frac{1+\left\{x,y\right\}}{\left(\frac{x}{y}+\frac{y}{x}\right)\left(u+1\right)}+a\right]^{3/2}\right).$$

Note that curly braces need to be escaped as \{ \}.

If you start a big brace with \left and then need to match that to a \right brace that's on a different line, use the forms \right. and \left. to make "shadow" braces. Thus,

\begin{aligned} a=&\left(1+2+3+ \cdots \right. \\ & \cdots+ \left. \infty-2+\infty-1+\infty\right) \end{aligned}


renders as \begin{aligned} a=&\left(1+2+3+ \cdots \right. \\ & \cdots+ \left. \infty-2+\infty-1+\infty\right). \end{aligned}

There is also a \middle construct which is useful when one has a mid-expression brace which must also scale up:

$$\left\langle q \middle\| \frac{\frac{x}{y}}{\frac{u}{v}} \middle| p \right\rangle$$


renders as $$\left\langle q\middle\|\frac{\frac{x}{y}}{\frac{u}{v}} \middle| p \right\rangle.$$

Note that constructs like \left\langle, \left| and \left\| are also possible.

Alternatively there also exists the \big hierarchy whose pairing is not mandatory, you can type \big(\frac 1x\big) $$\big(\frac 1x\big)$$

The advantage of left/right is that it dimensions automatically, but has the inconvenient of not producing consistent results depending of the vertical extension of its inner content, instead the big hierarchy has fixed size:

\Bigg(\bigg(\Big(\big((x)\big)\Big)\bigg)\Bigg) $$\Bigg(\bigg(\Big(\big((x)\big)\Big)\bigg)\Bigg)$$

• Note: \Big( ... \Big) produces $\Big(\dots\Big)$ but this bracket size is fixed in all situations unlike \left( ... \right) which varies in size with its contents. \Big can be useful in various situations.
– Nick
Dec 19, 2014 at 6:34
– zwim
Jan 21 at 21:59

## Limits

To make a limit (like $\lim \limits_{x \to 1} \frac{x^2-1}{x-1}$), use this syntax:

# Vertical Spacing

Some formulas such as $$\overline a+\overline b=\overline {a\cdot b}$$, $$\sqrt{a}-\sqrt{b}$$, do not look quite right when it comes to vertical spacing. Fortunately, there is more than one way to fix this. One can for instance employ the \mathstrut command as follows:

$$\sqrt{\mathstrut a} - \sqrt{\mathstrut b}$$


Which yields: $$\sqrt{\mathstrut a} - \sqrt{\mathstrut b}$$. Or using \vphantom (vertical phantom) command, which measures the height of its argument and places a math strut of that height into the formula.

$$\sqrt{\vphantom{b} a} - \sqrt{b}$$


Which renders as: $$\sqrt{\vphantom{b} a} - \sqrt{b}$$.

Another issue is with the spacing within lines in situations like this,

Based on the previous technique, we can simplify $$\dfrac{1}{\sqrt{\vphantom{b} a} - \sqrt{b}}$$, and we thus get the result of the previous limit. [this text is added to show alignment with the above smashed object]

These two lines are too far apart, but this is unnecessary since the second line is very short. We can solve this by using the \smash command, to get:

Based on the previous technique, we can simplify $$\smash{\dfrac{1}{\sqrt{\vphantom{b} a} - \sqrt{b}}}$$, and we thus get the result of the previous limit. [this text is added to show alignment with the above smashed object]

Beware - as above - the smashed text may overlap the next line if that line extends far enough to reach the smashed object, so this solution is not always feasible (it is esp. likely to occur in slim-width browsers, e.g. phones). Analogous overlapping may occur with any prior lines. Note that smash can be restricted to top or bottom with an argument: \smash[t]... or \smash[b]...

• Alternatively, one can also sneak in a rule of zero width \rule{0pt}{2ex}, as explained here. Apr 29, 2020 at 15:06
• On Android, at least, the results of \smash look awful. The formula overlaps the text. Mar 5, 2022 at 1:10
• @dfeuer Android is not the source of the problem. Rather it is the fact that the browser window width is so short that the 2nd line extends far enough to be below the radical, so smashing the radical causes it to overlap the 2nd line. The same thing occurs in any browser if you make its width small enough. Sep 5, 2022 at 18:20
• @BillDubuque, okay, but it's still a problem for mobile browsers. Sep 5, 2022 at 19:42
• @dfeuer Again, it's not "mobile" browsers that are the source of the problem - rather it is the fact that there is something displayed below the smashed object. That is more likely to occur on phones since they are more likely to have shorter width screens. If you shrink the width of a desktop browser window to be small enough (or extend the length of the following line) then the above answer will show the problem there too (e.g. I edited the answer to show that). Sep 5, 2022 at 19:58

# Linear programming

## Formulation

A theoretical LPP can be typeset as

$$\begin{array}{ll} \text{maximize} & c^T x \\ \text{subject to}& d^T x = \alpha \\ &0 \le x \le 1. \end{array}$$


$$\begin{array}{ll} \text{maximize} & c^T x \\ \text{subject to}& d^T x = \alpha \\ &0 \le x \le 1. \end{array}$$

To input a numerical LPP, use alignat instead of align to get better alignment between signs, variables and coefficients.

\begin{alignat}{5} \max \quad & z = & x_1 & + & 12 x_2 & & & && \\ \mbox{s.t.} \quad & & 13 x_1 & + & x_2 & + & 12x_3 & \geq 5 && \tag{constraint 1} \\ & & x_1 & & & + & x_3 & \leq 16 && \tag{constraint 2} \\ & & 15 x_1 & + & 201 x_2 & & & = 14 && \tag{constraint 3} \\ & & \rlap{x_i \ge 0, i = 1, 2, 3} \end{alignat}


\begin{alignat}{5} \max \quad & z = & x_1 & + & 12 x_2 & & & && \\ \mbox{s.t.} \quad & & 13 x_1 & + & x_2 & + & 12x_3 & \geq 5 && \tag{constraint 1} \\ & & x_1 & & & + & x_3 & \leq 16 && \tag{constraint 2} \\ & & 15 x_1 & + & 201 x_2 & & & = 14 && \tag{constraint 3} \\ & & \rlap{x_i \ge 0, i = 1, 2, 3} \end{alignat}

We treat $$\max$$, $$z$$, each variable, $$\pm$$ sign and RHS as one separate column, while leaving an extra empty column on the right. Then we count the number of separators &, add one into this number then divide it by two. (e.g. (9 + 1) ÷ 2 = 5)

\rlap is used so that the last row spans over one column.

Optional: \tag is used to label the constraints.

## Change MATLAB/Octave matrices to $$\rm\LaTeX$$ code

To get fractions, execute format rat at the beginning.

Writing manually the $$\rm\LaTeX$$ code for a matrix with many rows and columns in Octave is tedious. The Octave function

strcat("\\begin{bmatrix}\n",strrep(strrep(mat2str(A)," "," & "), ...
";"," \\\\\n")(2:end-1),"\n\\end{bmatrix}\n")


converts

A = [1 2 2; 2 3 4; 4 4 2]
A =

1   2   2
2   3   4
4   4   2


to

$$\begin{bmatrix} 1 & 2 & 2 \\ 2 & 3 & 4 \\ 4 & 4 & 2 \end{bmatrix}$$


so that pasting the generated code gives

$$\begin{bmatrix} 1 & 2 & 2 \\ 2 & 3 & 4 \\ 4 & 4 & 2 \end{bmatrix}.$$

## Simplex tableaux

Since the coefficient of the objective value variable $$z$$ never changes, my habit is to omit the $$z$$-column to save ink.

### Normal simplex tableau

$$\begin{array}{rrrrrr|r} & x_1 & x_2 & s_1 & s_2 & s_3 & \\ \hline s_1 & 0 & 1 & 1 & 0 & 0 & 8 \\ s_2 & 1 & -1 & 0 & 1 & 0 & 4 \\ s_3 & 1 & 1 & 0 & 0 & 1 & 12 \\ \hline & -1 & -1 & 0 & 0 & 0 & 0 \end{array}$$


$$\begin{array}{rrrrrr|r} & x_1 & x_2 & s_1 & s_2 & s_3 & \\ \hline s_1 & 0 & 1 & 1 & 0 & 0 & 8 \\ s_2 & 1 & -1 & 0 & 1 & 0 & 4 \\ s_3 & 1 & 1 & 0 & 0 & 1 & 12 \\ \hline & -1 & -1 & 0 & 0 & 0 & 0 \end{array}$$

It can be stacked up to give an illustration of the entering of variables at different stages.

$$\begin{array}{rrrrrrr|rr} & x_1 & x_2 & s_1 & s_2 & s_3 & w & & \text{ratio} \\ \hline s_1 & 0 & 1 & 1 & 0 & 0 & 0 & 8 & - \\ w & 1^* & -1 & 0 & -1 & 0 & 1 & 4 & 4 \\ s_3 & 1 & 1 & 0 & 0 & 1 & 0 & 12 & 12 \\ \hdashline & 1 & -1 & 0 & -1 & 0 & 0 & 4 & \\ \hline s_1 & 0 & 1 & 1 & 0 & 0 & 0 & 8 & \\ x_1 & 1 & -1 & 0 & -1 & 0 & 1 & 4 & \\ s_3 & 0 & 2 & 0 & 2 & 1 & -1 & 8 & \\ \hdashline & 0 & 0 & 0 & 0 & 0 & -1 & 0 & \end{array}$$


$$\begin{array}{rrrrrrr|rr} & x_1 & x_2 & s_1 & s_2 & s_3 & w & & \text{ratio} \\ \hline s_1 & 0 & 1 & 1 & 0 & 0 & 0 & 8 & - \\ w & 1^* & -1 & 0 & -1 & 0 & 1 & 4 & 4 \\ s_3 & 1 & 1 & 0 & 0 & 1 & 0 & 12 & 12 \\ \hdashline & 1 & -1 & 0 & -1 & 0 & 0 & 4 & \\ \hline s_1 & 0 & 1 & 1 & 0 & 0 & 0 & 8 & \\ x_1 & 1 & -1 & 0 & -1 & 0 & 1 & 4 & \\ s_3 & 0 & 2 & 0 & 2 & 1 & -1 & 8 & \\ \hdashline & 0 & 0 & 0 & 0 & 0 & -1 & 0 & \end{array}$$

### Dual simplex tableau

$$\begin{array}{rrrrrrrr|r} & x_1 & x_2 & x_3 & x_4 & x_5 & x_6 & x_7 & \\ \hline x_4 & 0 & -3 & 7 & 1 & 0 & 0 & 2 & 2M -4 \\ x_5 & 0 & -9 & 0 & 0 & 1 & 0 & -1 & -M -3 \\ x_6 & 0 & 6 & -1 & 0 & 0 & 1 & -4^* & -4M +8 \\ x_1 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & M \\ \hline & 0 & 1 & 1 & 0 & 0 & 0 & 2 & 2M \\ \text{ratio} & & & 1 & & & & 1/2 & \end{array}$$


$$\begin{array}{rrrrrrrr|r} & x_1 & x_2 & x_3 & x_4 & x_5 & x_6 & x_7 & \\ \hline x_4 & 0 & -3 & 7 & 1 & 0 & 0 & 2 & 2M -4 \\ x_5 & 0 & -9 & 0 & 0 & 1 & 0 & -1 & -M -3 \\ x_6 & 0 & 6 & -1 & 0 & 0 & 1 & -4^* & -4M +8 \\ x_1 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & M \\ \hline & 0 & 1 & 1 & 0 & 0 & 0 & 2 & 2M \\ \text{ratio} & & & 1 & & & & 1/2 & \end{array}$$

It can be stacked up to give a theoretical illustration of what happens in the upcoming steps.

$$\begin{array}{rrrrrrr|r} & x_1 & x_2 & x_3 & s_1 & s_2 & s_3 & \\ \hline s_1 & -2 & 0 & -2 & 1 & 0 & 0 & -60 \\ s_2 & -2 & -4^* & -5 & 0 & 1 & 0 & -70 \\ s_3 & 0 & -3 & -1 & 0 & 0 & 1 & -27 \\ \hdashline & 8 & 10 & 25 & 0 & 0 & 0 & 0 \\ \text{ratio} & -4 & -5/2 & -5 & & & & \\ \hline s_1 & -2^* & 0 & -2 & 1 & 0 & 0 & -60 \\ x_2 & 1/2 & 1 & 5/4 & 0 & -1/4 & 0 & 35/2 \\ s_3 & 3/2 & 0 & 11/4 & 0 & -3/4 & 1 & 51/2 \\ \hdashline & 3 & 0 & 25/2 & 0 & 5/2 & 0 & -175 \\ \text{ratio} & -3/2 & & 25/4 & & & & \\ \hline x_1 & 1 & 0 & 1 & -1/2 & 0 & 0 & 30 \\ x_2 & 0 & 1 & 3/4 & 1/4 & -1/4 & 0 & 5/2 \\ s_3 & 0 & 0 & 5/4 & 3/4 & -3/4^* & 1 & -39/2 \\ \hdashline & 0 & 0 & 19/2 & 3/2 & 5/2 & 0 & -265 \\ \text{ratio} & & & & & \dots & & \\ \hline x_1 & 1 & 0 & 1 & -1/2 & 0 & 0 & 30 \\ x_2 & 0 & 1 & 1/3 & 0 & 0 & -1/3 & 9 \\ s_2 & 0 & 0 & -5/3 & -1 & 1 & -4/3 & 26 \\ \hdashline & 0 & 0 & 41/3 & 4 & 0 & 10/3 & -330 \end{array}$$

## Duality

A picture is worth a thousand words.

$$\require{extpfeil} % produce extensible horizontal arrows \begin{array}{ccc} % arrange LPPs % first row % first LPP \begin{array}{ll} \max & z = c^T x \\ \text{s.t.} & A x \le b \\ & x \ge 0 \end{array} & \xtofrom{\text{duality}} & % second LPP \begin{array}{ll} \min & v = b^T y \\ \text{s.t.} & A^T y \ge c \\ & y \ge 0 \end{array} \\ ({\cal PC}) & & ({\cal DC}) \\ \text{add } {\Large \downharpoonleft} \text{slack var} & & \text{minus } {\Large \downharpoonright} \text{surplus var}\\ % Change to your favorite arrow style % % second row % third LPP \begin{array}{ll} \max & z = c^T x \\ \text{s.t.} & A x + s = b \\ & x,s \ge 0 \end{array} & \xtofrom[\text{some steps skipped}]{\text{duality}} & % fourth LPP \begin{array}{ll} \min & v = b^T y \\ \text{s.t.} & A^T y - t = c \\ & y,t \ge 0 \end{array} \\ ({\cal PS}) & & ({\cal DS}) % \end{array}$$

• It must have taken more than a thousand words to write that picture though :D Jul 20, 2018 at 9:25

## Units

While $$\LaTeX$$ has packages that format units, MathJax does not. For visual consistency, one should format units within the same string of MathJax code as the value to which it corresponds, separating the value and unit with \ (space-backslash-space) since the BIPM recommends a small space between the value and units. In addition, follow the below conventions for formatting values and units:

### Decimal Separator & Digit Separation

Following the conventions of the English-speaking world, a period . should be used to separate the decimal part of a number from the integral part, not a comma , as is common in some languages. This is because commas are already reserved for separating mathematical notation such as arguments of multivariate functions, elements of a set, and the coordinates of ordered tuples.

No punctuation should be used to separate multiples of three digits on either side of the decimal separator; instead, a small space rendered by \, should be used on both sides of the decimal marker when the string of digits consists of more than four or five digits. For example,

• 4321.1234 $$4321.1234$$
• 54\,321.123\,45 $$54\,321.123\,45$$
• 0.56789 $$0.56789$$
• 0.567\,89 $$0.567\,89$$

If you use a decimal separator, you should include a digit on both sides of the separator, even if the digit is simply $$0$$.

### Powers of $$10$$

It is preferable to write scientific or engineering notation like this: 4.15\times10^{n} $$4.15 \times10^{n}$$. The spacing around \times $$\times$$ is taken care of on its own, so there is no need to insert the spacing manually.

Nevertheless, if necessary, use an upright variant of the letter ‘E’ or ‘e’ to indicate order of magnitude, such as

• \mathrm{E}\,6 $$\mathrm{E}\,6$$
• \scriptsize{\mathrm{E}}\,\normalsize{6} $$\scriptsize{\mathrm{E}}\,\normalsize{6}$$
• \mathrm{e}\,6 $$\mathrm{e}\,6$$

A small space on either side is perfectly fine and recommended.

### Single Units

The symbol of any unit—especially SI units—should follow the form \mathrm{u}. (I have this command saved under the keyboard shortcut usin on my devices.) For example,

• \mathrm{m} $$\mathrm{m}$$
• \mathrm{kg} $$\mathrm{kg}$$
• \mathrm{ft.} $$\mathrm{ft.}$$

Do not use a period with symbolic units; do use a period with abbreviated units.

### Units with a Dot Multiplier

Multiplied units conjoined by a dot should follow the form \mathrm{u}\!\cdot\!\mathrm{v} $$\mathrm{u}\!\cdot\!\mathrm{v}$$. (I have this sequence of commands saved under the keyboard shortcut umul on my devices.) Because of how \cdot is designed (i.e., to separate numbers), the small negative space \! on either side maintains uniform spacing throughout the whole compound unit. For example,

• \mathrm{N}\!\cdot\!\mathrm{m} $$\mathrm{N}\!\cdot\!\mathrm{m}$$
• \mathrm{s}\!\cdot\!\mathrm{A} $$\mathrm{s}\!\cdot\!\mathrm{A}$$

Do not use \times $$\times$$ as a separator.

### Units with a Solidus Separator

Divided units conjoined by a solidus should follow the form \left.\mathrm{u}\middle/\mathrm{v}\right. $$\left.\mathrm{u}\middle/\mathrm{v}\right.$$. (I have this sequence of commands saved under the keyboard shortcut udiv on my devices.) The extra markdown is to ensure that solidus stretches the entire height of the unit, especially when exponents are involved. For example,

• \left.\mathrm{J}\middle/\mathrm{s}\right. $$\left.\mathrm{J}\middle/\mathrm{s}\right.$$
• \left.\mathrm{m}\middle/\mathrm{s}^2\right. $$\left.\mathrm{m}\middle/\mathrm{s}^2\right.$$

You may include small negative spaces \! on either side of the solidus if you please.

### Exponents

Exponents can be rendered with the standard MathJax markdown. The carat and number should immediately follow the closing brace of the mathrm{} argument. For example,

• \mathrm{m}^2 $$\mathrm{m}^2$$
• \left.\mathrm{m}\middle/\mathrm{s}^2\right. $$\left.\mathrm{m}\middle/\mathrm{s}^2\right.$$

### Parentheses

Parentheses can also be rendered with standard MathJax markdown using \left( and \right) outside the argument of \mathrm. For example,

• \left.\mathrm{kg}\!\cdot\!\mathrm{m}^2\middle/\left(\mathrm{C}\!\cdot\!\mathrm{s}\right)\right. $$\left.\mathrm{kg}\!\cdot\!\mathrm{m}^2\middle/\left(\mathrm{C}\!\cdot\!\mathrm{s}\right)\right.$$

### Exponents in Place of Separators

If you prefer to use no separators and only powers, separator each single \mathrm{} with a small space \, and use exponents as necessary. For example,

• \mathrm{m}\,\mathrm{s}^{-2} $$\mathrm{m}\,\mathrm{s}^{-2}$$
• \mathrm{s}^{-1}\,\mathrm{mol} $$\mathrm{s}^{-1}\,\mathrm{mol}$$

### Examples in Context

\mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right.


$$\mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right.$$

180^\circ=\pi \ \mathrm{rad}


$$180^\circ=\pi \ \mathrm{rad}$$

N_A = 6.022\times10^{23} \ \mathrm{mol}^{-1}


$$N_A = 6.022\times10^{23} \ \mathrm{mol}^{-1}$$

• @SamuelMuldoon Please don't use \mathcal{MathJax} to write MathJax. Apr 6, 2023 at 7:22