LaTeX examples #
This test page collects several examples of LaTeX in markdown.
Compare: https://math.meta.stackexchange.com/revisions/9386/164
Examples from doc-gen issues #
From doc-gen#10, what if I put $f[*a,*b](cd)$ in tex? $g_{x_0}(y)$ ?
From doc-gen#62:
- might denote $R[X_i : i \in \sigma]$.
- Example: $x \in \sigma$ and separately
y - Example: $x \in \sigma$ and separately
s - Example: $x \in \sigma$ and separately
sigm - Example: $x \in \sigma$ and separately
simg - Example: separately
sand $x \in \sigma$
Example from dynamics.circle.rotation_number.translation_number:
For any x : ℝ the sequence $\frac{f^n(x)-x}{n}$ tends to the translation number of f.
In particular, this limit does not depend on x.
mathlib#3776 #
Before PR (has a stray cc), line spacing too large:
$$ J = \left[\begin{align}{cc} 0_l & 1_l\\\\ 1_l & 0_l \end{align}\right] $$
After PR, line spacing too large:
$$ J = \left[\begin{array}{cc} 0_l & 1_l\\\\ 1_l & 0_l \end{array}\right] $$
Actually fixed:
$$ J = \left[\begin{array}{cc} 0_l & 1_l\\ 1_l & 0_l \end{array}\right] $$
mathlib#6175 #
Before PR (renders correctly):
If a function is analytic in a disk D(x, R), then it is analytic in any disk contained in that
one. Indeed, one can write
$$
f (x + y + z) = \sum_{n} p_n (y + z)^n = \sum_{n, k} \binom{n}{k} p_n y^{n-k} z^k
= \sum_{k} \Bigl(\sum_{n} \binom{n}{k} p_n y^{n-k}\Bigr) z^k.
$$
The corresponding power series has thus a k-th coefficient equal to
$\sum_{n} \binom{n}{k} p_n y^{n-k}$. In the general case where pₙ is a multilinear map, this has
to be interpreted suitably: instead of having a binomial coefficient, one should sum over all
possible subsets s of fin n of cardinal k, and attribute z to the indices in s and
y to the indices outside of s.
In this paragraph, we implement this. The new power series is called p.change_origin y. Then, we
check its convergence and the fact that its sum coincides with the original sum. The outcome of this
discussion is that the set of points where a function is analytic is open.
After PR (with two backslashes before sum as a workaround; should be broken):
If a function is analytic in a disk D(x, R), then it is analytic in any disk contained in that
one. Indeed, one can write
$$
f (x + y + z) = \\sum_{n} p_n (y + z)^n = \\sum_{n, k} \binom{n}{k} p_n y^{n-k} z^k
= \\sum_{k} \Bigl(\\sum_{n} \binom{n}{k} p_n y^{n-k}\Bigr) z^k.
$$
The corresponding power series has thus a k-th coefficient equal to
$\\sum_{n} \binom{n}{k} p_n y^{n-k}$. In the general case where pₙ is a multilinear map, this has
to be interpreted suitably: instead of having a binomial coefficient, one should sum over all
possible subsets s of fin n of cardinal k, and attribute z to the indices in s and
y to the indices outside of s.
Line spacing tests #
(math.stackexchange.com results given above each example)
Renders OK ✅: $\alpha \alpha$
Should not render ❌: $\alpha
\alpha$
Should not render ❌: $$\alpha
\alpha$$
Should not render ❌: $$
\alpha \alpha
$$
Renders OK ✅: $$ \alpha\alpha $$
Renders OK ✅: $$ \alpha\alpha [hi](345) b $$
Should not render ❌: $$ \alpha\alpha hi \beta
$$
Renders OK ✅: \begin{align} \begin{matrix} a & b & c \end{matrix} \end{align}
Only the inner matrix environment should render: \begin{align}
hi \begin{matrix} a & b & c \end{matrix} \end{align}
Should not render ❌: \begin{align}
\begin{matrix}
a & b & c \end{matrix} \end{align}
Renders OK ✅:
hi there \begin{align} 3 \\ 3 \end{align}
Should not render ❌: \begin{align} \end{blah}
Should not render ❌: \begin{align} [link](https://github.com) { {\alpha} \end{align}
Nested environments #
\begin{align}T(n) & \leq 2(c\lfloor n/2 \rfloor \lg( \lfloor n/2 \rfloor )) + n \\T(n) & \leq 2(cn/2) \lg(n/2) + n \\T(n) & = cn (\lg n - 1) + n \\T(n) & \leq cn \lg n\end{align}
\begin{align} T(n) & \leq 2(c\lfloor n/2 \rfloor \lg( \lfloor n/2 \rfloor )) + n \\ T(n) & \leq 2(cn/2) \lg(n/2) + n \\ T(n) & = cn (\lg n - 1) + n \\ T(n) & \leq cn \lg n \end{align}
\begin{gather} \begin{aligned}T(n) & \leq 2(c\lfloor n/2 \rfloor \lg( \lfloor n/2 \rfloor )) + n \\T(n) & \leq 2(cn/2) \lg(n/2) + n \\T(n) & = cn (\lg n - 1) + n \\T(n) & \leq cn \lg n\end{aligned}\end{gather}
\begin{gather} \begin{aligned} T(n) & \leq 2(c\lfloor n/2 \rfloor \lg( \lfloor n/2 \rfloor )) + n \\ T(n) & \leq 2(cn/2) \lg(n/2) + n \\ T(n) & = cn (\lg n - 1) + n \\ T(n) & \leq cn \lg n \end{aligned} \end{gather}
\begin{align}\begin{aligned}T(n) & \leq 2(c\lfloor n/2 \rfloor \lg( \lfloor n/2 \rfloor )) + n \\T(n) & \leq 2(cn/2) \lg(n/2) + n \\T(n) & = cn (\lg n - 1) + n \\T(n) & \leq cn \lg n\end{aligned}\end{align}
MathJax basic tutorial and quick reference #
From https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference
(Deutsch: MathJax: LaTeX Basic Tutorial und Referenz)
-
To see how any formula was written in any question or answer, including this one, right-click on the expression it 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 possibilities how to view the code for the formula or the whole post.)
-
For inline formulas, enclose the formula in
$...$. For displayed formulas, use$$...$$. These render differently. For example, type$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$to show $\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$ (which is inline mode) or type$$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$to show $$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$ (which is display mode). -
For Greek letters, use
\alpha,\beta, …,\omega: $\alpha, \beta, … \omega$. For uppercase, use\Gamma,\Delta, …,\Omega: $\Gamma, \Delta, …, \Omega$. Some Greek letters have variant forms:\epsilon \varepsilon$\epsilon$, $\varepsilon$,\phi \varphi$\phi$, $\varphi$, and others. -
For superscripts and subscripts, use
^and_. For example,x_i^2: $x_i^2$,\log_2 x: $\log_2 x$. -
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 do10^10, you will get a surprise: $10^10$. But10^{10}gives what you probably wanted: $10^{10}$. Use curly braces to delimit a formula to which a superscript or subscript applies:x^5^6is an error;{x^y}^zis ${x^y}^z$, andx^{y^z}is $x^{y^z}$. Observe the difference betweenx_i^2$x_i^2$ andx_{i^2}$x_{i^2}$. -
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)$.\leftand\rightapply to all the following sorts of parentheses:(and)$(x)$,[and]$[x]$,\{and\}$\{ x \}$,|$|x|$,\vert$\vert x \vert$,\Vert$\Vert x \Vert$,\langleand\rangle$\langle x \rangle$,\lceiland\rceil$\lceil x \rceil$, and\lfloorand\rfloor$\lfloor x \rfloor$.\middlecan be used to add additional dividers. There are also invisible parentheses, denoted by.:\left.\frac12\right\rbraceis $\left.\frac12\right\rbrace$.If manual size adjustments are required:
\Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr)gives $\Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr)$. -
Sums and integrals
\sumand\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^2is $\sum_{i=0}^\infty i^2$. Similarly,\prod$\prod$,\int$\int$,\bigcup$\bigcup$,\bigcap$\bigcap$,\iint$\iint$,\iiint$\iiint$,\idotsint$\idotsint$. -
Fractions There are three ways to make these.
\frac abapplies 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}$. Using\cfrac{a}{b}command is useful for continued fractions $\cfrac{a}{b}$, more details for which are given in this sub-article. -
Fonts
- Use
\mathbbor\Bbbfor "blackboard bold": $\mathbb{CHNQRZ}$. - Use
\mathbffor boldface: $\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathbf{abcdefghijklmnopqrstuvwxyz}$.- For expression based characters, use
\boldsymbolinstead: $\boldsymbol{\alpha}$
- For expression based characters, use
- Use
\mathitfor italics: $\mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathit{abcdefghijklmnopqrstuvwxyz}$. - Use
\pmbfor boldfaced italics: $\pmb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\pmb{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathttfor "typewriter" font: $\mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathtt{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathrmfor roman font: $\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathrm{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathsffor sans-serif font: $\mathsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathsf{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathcalfor "calligraphic" letters: $\mathcal{ ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ - Use
\mathscrfor script letters: $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ - Use
\mathfrakfor "Fraktur" (old German style) letters: $\mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \mathfrak{abcdefghijklmnopqrstuvwxyz}$.
-
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. -
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$, notsin 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)$. -
There are a very large number of special symbols and notations, too many to list here; see this shorter listing, or this exhaustive listing. Some of the most common include:
\lt \gt \le \leq \leqq \leqslant \ge \geq \geqq \geqslant \neq$\lt$, $\gt$, $\le$, $\leq$, $\leqq$, $\leqslant$, $\ge$, $\geq$, $\geqq$, $\geqslant$, $\neq$. You can use\notto put a slash through almost anything:\not\lt$\not\lt$ but it often looks bad.\times \div \pm \mp$\times$, $\div$, $\pm$, $\mp$.\cdotis 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 \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto$\to$, $\rightarrow$, $\leftarrow$, $\Rightarrow$, $\Leftarrow$, $\mapsto$\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 \therefore$\approx$, $\sim $, $\simeq$, $\cong$, $\equiv$, $\prec$, $\lhd$, $\therefore$\infty \aleph_0$\infty\, \aleph_0$\nabla \partial$\nabla$, $\partial$\Im \Re$\Im$, $\Re$- For modular equivalence, use
\pmodlike this:a\equiv b\pmod n$a\equiv b\pmod n$. - For the binary mod operator, use
\bmodlike this:a\bmod 17$a\bmod 17$. - Avoid using
\mod, as it produces extra space: compare the above witha\mod 17$a\mod 17$. \ldotsis the dots in $a_1, a_2, \ldots ,a_n$\cdotsis the dots in $a_1+a_2+\cdots+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 are 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.
- 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␣banda␣␣␣␣bare both $a b$. To add more space, use\,for a thin space $a\,b$;\;for a wider space $a\;b$.\quadand\qquadare 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.
-
Accents and diacritical marks Use
\hatfor a single symbol $\hat x$,\widehatfor 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\dotand\ddot. -
Special characters used for MathJax interpreting can be escaped using the
\character:\$$\$$,\{$\{$,\_$\_$, etc. 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 To MathJax Topics, by title:
- Absolute values and norms • Additional symbolic decorations • Aligning Equations
- Alternative Ways of Writing in LaTeX • Annotations of reasoning • Arbitrary operators
- Arrays • Big braces • Colors
- Commutative diagrams • Continued fractions • Crossing things out
- Definitions by cases (piecewise functions) • Degree symbol • Display style
- Equation numbering • Fussy spacing issues • Highlighting expressions
- Left and right arrows • Limits • Linear programming
- Long division • Math Programming • Matrices
- Markov Chains • Mixing code and MathJax formatting on lines • The \newcommand function
- Numbering Equations • Overlaying Symbols • Packs of cards
- Symbols • System of equations • Tables
- Tags and references • Tensor indices • Units
- Vertical spacing
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.
Definitions by cases (piecewise functions) #
https://math.meta.stackexchange.com/a/5025
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.)
Matrices #
https://math.meta.stackexchange.com/a/5023/
-
Use
$$\begin{matrix}…\end{matrix}$$In between the\beginand\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.
-
To add brackets, either use
\left…\rightas in section 6 of the tutorial, or replacematrixwithpmatrix$\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}$. -
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}$$
-
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.
- 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}
$$
-
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)$
From tactic_writing.md #
return: produce a value in the monad (type:A → m A)ma >>= f: get the value of typeAfromma : m Aand pass it tof : A → m B. Alternate syntax:do a ← ma, f af <$> ma: apply the functionf : A → Bto the value inma : m Ato get am B. Same asdo a ← ma, return (f a)ma >> mb: same asdo a ← ma, mb; here the return value ofmais ignored and thenmbis called. Alternate syntax:do ma, mbmf <*> ma: same asdo f ← mf, f <$> ma, ordo f ← mf, a ← ma, return (f a)ma <* mb: same asdo a ← ma, mb, return ama *> mb: same asdo ma, mb, orma >> mb. Why two notations for the same thing? Historical reasons.pure: same asreturn. Again, historical reasons.failure: failed value (specific monads usually have a more useful form of this, likefailandfailedfor tactics).ma <|> ma'recover from failure: runsmaand if it fails then runsma'.a $> mb: same asdo mb, return ama <$ b: same asdo ma, return b