LaTeX examples #
This test page collects several examples of LaTeX in markdown. This is used for development purposes only.
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
s
and $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^6
is an error;{x^y}^z
is ${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)$.\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.
:\left.\frac12\right\rbrace
is $\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
\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$. -
Fractions There are three ways to make these.
\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}$. 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
\mathbb
or\Bbb
for "blackboard bold": $\mathbb{CHNQRZ}$. - Use
\mathbf
for boldface: $\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathbf{abcdefghijklmnopqrstuvwxyz}$.- For expression based characters, use
\boldsymbol
instead: $\boldsymbol{\alpha}$
- For expression based characters, use
- Use
\mathit
for italics: $\mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathit{abcdefghijklmnopqrstuvwxyz}$. - Use
\pmb
for boldfaced italics: $\pmb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\pmb{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathtt
for "typewriter" font: $\mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathtt{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathrm
for roman font: $\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathrm{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathsf
for sans-serif font: $\mathsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ $\mathsf{abcdefghijklmnopqrstuvwxyz}$. - Use
\mathcal
for "calligraphic" letters: $\mathcal{ ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ - Use
\mathscr
for script letters: $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ - Use
\mathfrak
for "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\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 \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
\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$. - Avoid using
\mod
, as it produces extra space: compare the above witha\mod 17
$a\mod 17$. \ldots
is the dots in $a_1, a_2, \ldots ,a_n$\cdots
is 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␣b
anda␣␣␣␣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.
-
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
. -
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\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.
-
To add brackets, either use
\left…\right
as in section 6 of the tutorial, or replacematrix
withpmatrix
$\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 typeA
fromma : m A
and pass it tof : A → m B
. Alternate syntax:do a ← ma, f a
f <$> ma
: apply the functionf : A → B
to the value inma : m A
to get am B
. Same asdo a ← ma, return (f a)
ma >> mb
: same asdo a ← ma, mb
; here the return value ofma
is ignored and thenmb
is called. Alternate syntax:do ma, mb
mf <*> ma
: same asdo f ← mf, f <$> ma
, ordo f ← mf, a ← ma, return (f a)
ma <* mb
: same asdo a ← ma, mb, return a
ma *> 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, likefail
andfailed
for tactics).ma <|> ma'
recover from failure: runsma
and if it fails then runsma'
.a $> mb
: same asdo mb, return a
ma <$ b
: same asdo ma, return b