KaTeX Test Code

Introduction

Why KaTeX

  • KaTeX\KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web.
  • hexo-theme-butterfly recommends to use KaTeX rather than MathJax for better performance.
  • KaTex supports copy and paste of the rendered math expressions.

Reference

  • All the #Supported Functions content is copied from upupming’s blog[1][2].
  • The auther[1:1] states that this is the revised version of the original content from KaTeX Supported Functions[3].

Note

  • I made some changes to the original content[2:1]
    • Change #Macros, #HTML, and #Color section to avoid the conflict with markdown syntax. Read the note block for more information in each section.
    • Change some expressions according to the KaTeX official site[3:1].
    • Add some expressions that is not included in the original content[2:2].
      Probably because the upgraded KaTex Documentation was not reflected.

Supported Functions

Accents

aa' a' a~\tilde{a} \tilde{a} g˚\mathring{g} \mathring{g}
aa'' a'' ac~\widetilde{ac} \widetilde{ac} AB\overgroup{AB} \overgroup{AB}
aa^{\prime} a^{\prime} AB~\utilde{AB} \utilde{AB} AB\undergroup{AB} \undergroup{AB}
aˊ\acute{a} \acute{a} F\vec{F} \vec{F} AB\Overrightarrow{AB} \Overrightarrow{AB}
yˉ\bar{y} \bar{y} AB\overleftarrow{AB} \overleftarrow{AB} AB\overrightarrow{AB} \overrightarrow{AB}
a˘\breve{a} \breve{a} AB\underleftarrow{AB} \underleftarrow{AB} AB\underrightarrow{AB} \underrightarrow{AB}
aˇ\check{a} \check{a} ac\overleftharpoon{ac} \overleftharpoon{ac} ac\overrightharpoon{ac} \overrightharpoon{ac}
a˙\dot{a} \dot{a} AB\overleftrightarrow{AB} \overleftrightarrow{AB} AB\overbrace{AB} \overbrace{AB}
a¨\ddot{a} \ddot{a} AB\underleftrightarrow{AB} \underleftrightarrow{AB} AB\underbrace{AB} \underbrace{AB}
aˋ\grave{a} \grave{a} AB\overline{AB} \overline{AB} ABundefined\overlinesegment{AB} \overlinesegment{AB}
θ^\hat{\theta} \hat{\theta} AB\underline{AB} \underline{AB} ABundefined\underlinesegment{AB} \underlinesegment{AB}
ac^\widehat{ac} \widehat{ac} acˇ\widecheck{ac} \widecheck{ac} X\underbar{X} \underbar{X}

Accent functions inside \text{…}

aˊ\text{\'{a}} \'{a} a˜\text{\~{a}} \~{a} a˙\text{\.{a}} \.{a} a˝\text{\H{a}} \H{a}
aˋ\text{\`{a}} \`{a} aˉ\text{\={a}} \={a} a¨\text{\"{a}} \"{a} aˇ\text{\v{a}} \v{a}
aˆ\text{\^{a}} \^{a} a˘\text{\u{a}} \u{a} a˚\text{\r{a}} \r{a}

See also letters

Delimiters

( )(~) ( ) ( )\lparen~\rparen \lparen
    ~~~~\rparen
 ⌈~⌉ ⌈ ⌉  \lceil~\rceil \lceil
     ~~~~~\rceil
\uparrow \uparrow
[ ][~] [ ] [ ]\lbrack~\rbrack \lbrack
    ~~~~\rbrack
 ⌊~⌋ ⌊ ⌋  \lfloor~\rfloor \lfloor
     ~~~~~\rfloor
\downarrow \downarrow
{}\{ \} \{ \} {}\lbrace \rbrace \lbrace
    ~~~~\rbrace
⎰⎱ ⎰⎱ \lmoustache \rmoustache \lmoustache
    ~~~~\rmoustache
\updownarrow \updownarrow
 ⟨~⟩ ⟨ ⟩  \langle~\rangle \langle
    ~~~~\rangle
 ⟮~⟯ ⟮ ⟯  \lgroup~\rgroup \lgroup
     ~~~~~\rgroup
\Uparrow \Uparrow
\vert | \vert \vert ┌ ┐ ┌ ┐ \ulcorner \urcorner \ulcorner
     ~~~~~\urcorner
\Downarrow \Downarrow
\Vert \| \Vert \Vert └ ┘ └ ┘ \llcorner \lrcorner \llcorner
     ~~~~~\lrcorner
\Updownarrow \Updownarrow
 \lvert~\rvert \lvert
    ~~~~\rvert
 \lVert~\rVert \lVert
      ~~~~~~\rVert
\left. \right. \\backslash \backslash
 \lang~\rang \lang
     ~~~~~\rang
< >\lt~\gt \lt \gt [[]][[ ]] ⟦ ⟧  \llbracket~\rrbracket \llbracket
     ~~~~~\rrbracket
 \lBrace~\rBrace \lBrace
       ~~~~~~~\rBrace

Delimiter Sizing

(AB)\left(\LARGE{AB}\right) \left(\LARGE{AB}\right)

(((((( \big( \Big( \bigg( \Bigg( ( \big( \Big( \bigg( \Bigg(

\left \big \bigl \bigm \bigr
\middle \Big \Bigl \Bigm \Bigr
\right \bigg \biggl \biggm \biggr
\Bigg \Biggl \Biggm \Biggr

Environments

abcd\begin{matrix} a & b \\ c & d \end{matrix} \begin{matrix}
   a & b \\
   c & d
\end{matrix}
abcd\begin{array}{cc}a & b\\c & d\end{array} \begin{array}{cc}
   a & b \\
   c & d
\end{array}
(abcd)\begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix}
   a & b \\
   c & d
\end{pmatrix}
[abcd]\begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix}
   a & b \\
   c & d
\end{bmatrix}
abcd\begin{vmatrix} a & b \\ c & d \end{vmatrix} \begin{vmatrix}
   a & b \\
   c & d
\end{vmatrix}
abcd\begin{Vmatrix} a & b \\ c & d \end{Vmatrix} \begin{Vmatrix}
   a & b \\
   c & d
\end{Vmatrix}
{abcd}\begin{Bmatrix} a & b \\ c & d \end{Bmatrix} \begin{Bmatrix}
   a & b \\
   c & d
\end{Bmatrix}
abcdefghi\def\arraystretch{1.5}\begin{array}{c:c:c} a & b & c \\ \hline d & e & f \\ \hdashline g & h & i \end{array} \def\arraystretch{1.5}
   \begin{array}{c:c:c}
   a & b & c \\ \hline
   d & e & f \\
   \hdashline
   g & h & i
\end{array}
x={aif bcif dx = \begin{cases} a &\text{if } b \\ c &\text{if } d \end{cases} \begin{cases}
   a &\text{if } b \\
   c &\text{if } d
\end{cases}
aif bcif d}\begin{rcases} a &\text{if } b \\ c &\text{if } d \end{rcases}⇒… \begin{rcases}
   a &\text{if } b \\
   c &\text{if } d
\end{rcases}⇒…
abcd\begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \begin{smallmatrix}
   a & b \\
   c & d
\end{smallmatrix}
iΛ0<j<n\sum_{\begin{subarray}{l} i\in\Lambda \\ 0<j<n \end{subarray}} \sum_
{\begin{subarray}{l}
   i\in\Lambda \\
   0<j<n
\end{subarray}}
a=b+cd+e=f\begin{aligned} a&=b+c \\ d+e&=f \end{aligned} \begin{aligned}
   a&=b+c \\
   d+e&=f
\end{aligned}
10x+3y=23x+13y=4\begin{alignedat}{2}10&x+&3&y=2\\3&x+&13&y=4\end{alignedat} \begin{alignedat}{2}
   10&x+ &3&y = 2 \\
    3&x+&13&y = 4
\end{alignedat}
a=be=b+c\begin{gathered} a=b \\ e=b+c \end{gathered} \begin{gathered}
   a=b \\
   e=b+c
\end{gathered}

KaTeX also supports darray and dcases.

Acceptable line separators include: \\, \cr, \\[distance], and \cr[distance]. Distance can be written with any of the KaTeX units.

The {array} environment supports | and : vertical separators.

The {array} environment does not yet support \cline or \multicolumn.

HTML

NOT WORKING IN HEXO

\href\href{https://katex.org/}{\KaTeX} \href{https://katex.org/}{\KaTeX}
\url\url{https://katex.org/} \url{https://katex.org/}

Letters and Unicode

Greek Letters

A\Alpha \Alpha B\Beta \Beta Γ\Gamma \Gamma Δ\Delta \Delta
E\Epsilon \Epsilon Z\Zeta \Zeta H\Eta \Eta Θ\Theta \Theta
I\Iota \Iota K\Kappa \Kappa Λ\Lambda \Lambda M\Mu \Mu
N\Nu \Nu Ξ\Xi \Xi O\Omicron \Omicron Π\Pi \Pi
P\Rho \Rho Σ\Sigma \Sigma T\Tau \Tau Υ\Upsilon \Upsilon
Φ\Phi \Phi X\Chi \Chi Ψ\Psi \Psi Ω\Omega \Omega
Γ\varGamma \varGamma Δ\varDelta \varDelta Θ\varTheta \varTheta Λ\varLambda \varLambda
Ξ\varXi \varXi Π\varPi \varPi Σ\varSigma \varSigma Υ\varUpsilon \varUpsilon
Φ\varPhi \varPhi Ψ\varPsi \varPsi Ω\varOmega \varOmega
α\alpha \alpha β\beta \beta γ\gamma \gamma δ\delta \delta
ϵ\epsilon \epsilon ζ\zeta \zeta η\eta \eta θ\theta \theta
ι\iota \iota κ\kappa \kappa λ\lambda \lambda μ\mu \mu
ν\nu \nu ξ\xi \xi ο\omicron \omicron π\pi \pi
ρ\rho \rho σ\sigma \sigma τ\tau \tau υ\upsilon \upsilon
ϕ\phi \phi χ\chi \chi ψ\psi \psi ω\omega \omega
ε\varepsilon \varepsilon ϰ\varkappa \varkappa ϑ\vartheta \vartheta ϑ\thetasym \thetasym
ϖ\varpi \varpi ϱ\varrho \varrho ς\varsigma \varsigma φ\varphi \varphi
ϝ\digamma \digamma

Direct Input :
ABΓΔEZHΘIKΛMNΞOΠPΣTΥΦXΨΩΑ Β Γ Δ Ε Ζ Η Θ Ι \allowbreak Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
αβγδϵζηθικλμνξoπρστυϕχψωεϑϖϱςφϝ\allowbreak α β γ δ ϵ ζ η θ ι κ λ μ ν ξ o π \allowbreak ρ σ τ υ ϕ χ ψ ω ε ϑ ϖ ϱ ς φ ϝ

Other Letters

ı\imath \imath \nabla \nabla \Im \Im R\Reals \Reals Œ\text{\OE} \text{\OE}
ȷ\jmath \jmath \partial \partial \image \image \wp \wp ø\text{\o} \text{\o}
\aleph \aleph \Game \Game k\Bbbk \Bbbk \weierp \weierp Ø\text{\O} \text{\O}
\alef \alef \Finv \Finv N\N \N Z\Z \Z ß\text{\ss} \text{\ss}
\alefsym \alefsym C\cnums \cnums N\natnums \natnums a˚\text{\aa} \text{\aa} ı\text{\i} \text{\i}
\beth \beth C\Complex \Complex R\R \R A˚\text{\AA} \text{\AA} ȷ\text{\j} \text{\j}
\gimel \gimel \ell \ell \Re \Re æ\text{\ae} \text{\ae}
\daleth \daleth \hbar \hbar \real \real Æ\text{\AE} \text{\AE}
ð\eth \eth \hslash \hslash R\reals \reals œ\text{\oe} \text{\oe}

Direct Input :
ð∂ ∇ ℑ Ⅎ ℵ ℶ ℷ ℸ ⅁ ℏ ð − ∗
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝÞßàáâãäåçèéêëìíîïðñòóôöùúûüýþÿ
₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᵃᵇᶜᵈᵉᵍʰⁱʲᵏˡᵐⁿᵒᵖʳˢᵗᵘʷˣʸᶻᵛᵝᵞᵟᵠᵡ


Unicode Mathematical Alphanumeric Symbols

Item Range Item Range
Bold 𝐀-𝐙 𝐚-𝐳 𝟎-𝟗\text{𝐀-𝐙 𝐚-𝐳 𝟎-𝟗} Double-struck 𝔸-Z 𝕜\text{𝔸-}ℤ\ 𝕜
Italic 𝐴-𝑍 𝑎-𝑧\text{𝐴-𝑍 𝑎-𝑧} Sans serif 𝖠-𝖹 𝖺-𝗓 𝟢-𝟫\text{𝖠-𝖹 𝖺-𝗓 𝟢-𝟫}
Bold Italic 𝑨-𝒁 𝒂-𝒛\text{𝑨-𝒁 𝒂-𝒛} Sans serif bold 𝗔-𝗭 𝗮-𝘇 𝟬-𝟵\text{𝗔-𝗭 𝗮-𝘇 𝟬-𝟵}
Script 𝒜-𝒵\text{𝒜-𝒵} Sans serif italic 𝘈-𝘡 𝘢-𝘻\text{𝘈-𝘡 𝘢-𝘻}
Fractur 𝔄-Z 𝔞-𝔷\text{𝔄-}ℨ\text{ 𝔞-𝔷} Monospace 𝙰-𝚉 𝚊-𝚣 𝟶-𝟿\text{𝙰-𝚉 𝚊-𝚣 𝟶-𝟿}
Bold Fractur 𝕬-𝖅 𝖆-𝖟\text{𝕬-}𝖅\text{ 𝖆-}𝖟

Unicode

The letters listed above will render in any KaTeX rendering mode.

If the KaTeX rendering mode is set to strict: false or strict:"warn" (default), then KaTeX will accept all Unicode letters. The letters not listed above will be rendered from system fonts, not KaTeX-supplied fonts, so their typography may clash. They may also cause small vertical alignment issues. KaTeX has detailed metrics for glyphs in Latin, Greek, and Cyrillic, but other glyphs are treated as if they are each as tall as the letter M.

For Persian composite characters, a user-supplied plug-in is under development.

Layout

Annotation

5\cancel{5} \cancel{5} a+b+cnote\overbrace{a+b+c}^{\text{note}} \overbrace{a+b+c}^{\text{note}}
5\bcancel{5} \bcancel{5} a+b+cnote\underbrace{a+b+c}_{\text{note}} \underbrace{a+b+c}_{\text{note}}
ABC\xcancel{ABC} \xcancel{ABC} \not = \not =
abc\sout{abc} \sout{abc} π=cd\boxed{\pi=\frac c d} \boxed{\pi=\frac c d}
ana_{\angl n} a_{\angl n} ana_\angln a_\angln
78\phase{-78^\circ} \phase{-78^\circ}

\tag{hi} x+y^{2x}

x+y2x(hi)\tag{hi} x+y^{2x}

\tag*{hi} x+y^{2x}

x+y2xhi\tag*{hi} x+y^{2x}

Line Breaks

KaTeX 0.10.0+ will insert automatic line breaks in inline math after relations or binary operators such as “=” or “+”. These can be suppressed by \nobreak or by placing math inside a pair of braces, as in {F=ma}. \allowbreak will allow automatic line breaks at locations other than relations or operators.

Hard line breaks are \\ and \newline.

In display math, KaTeX does not insert automatic line breaks. It ignores display math hard line breaks when rendering option strict: true.

Vertical Layout

xnx_n x_n =!\stackrel{!}{=} \stackrel{!}{=} aba \atop b a \atop b
exe^x e^x =!\overset{!}{=} \overset{!}{=} abca\raisebox{0.25em}{b}c a\raisebox{0.25em}{b}c
uo_u^o _u^o =!\underset{!}{=} \underset{!}{=}
xnx_n x_n =!\stackrel{!}{=} \stackrel{!}{=} aba \atop b a \atop b
exe^x e^x =!\overset{!}{=} \overset{!}{=} a\raisebox{0.25em}{b}c a\raisebox{0.25em}{$b$}c
uo_u^o _u^o =!\underset{!}{=} \underset{!}{=} a+(abc)a+\left(\vcenter{\frac{\frac a b}c}\right) a+\left(\vcenter{\hbox{$\frac{\frac a b}c$}}\right)
$$\sum_{\substack{0<i<m\0<j<n}}$$ \sum_{\substack{0<i<m\\0<j<n}}

\raisebox and \hbox put their argument into text mode. To raise math, nest $…$ delimiters inside the argument as shown above.

\vcenter can be written without an \hbox if the strict rendering option is false. In that case, omit the nested $…$ delimiters.

The second argument of \raisebox can contain math if it is nested within $…$ delimiters, as in \raisebox{0.25em}{$\frac a b$}

Overlap and Spacing

=/{=}\mathllap{/\,} {=}\mathllap{/\,} (x2)\left(x^{\smash{2}}\right) \left(x^{\smash{2}}\right)
/=\mathrlap{\,/}{=} \mathrlap{\,/}{=} y\sqrt{\smash[b]{y}} \sqrt{\smash[b]{y}}

1ijnxij\displaystyle\sum_{\mathclap{1\le i\le j\le n}} x_{ij} \sum_{\mathclap{1\le i\le j\le n}} x_{ij}

KaTeX also supports \llap, \rlap, and \clap, but they will take only text, not math, as arguments.

Spacing

Function Produces Function Produces
\, ³∕₁₈ em space \kern{distance} space, width = distance
\thinspace ³∕₁₈ em space \mkern{distance} space, width = distance
\: ⁴∕₁₈ em space \mskip{distance} space, width = distance
\medspace ⁴∕₁₈ em space \hskip{distance} space, width = distance
\; ⁵∕₁₈ em space \hspace{distance} space, width = distance
\thickspace ⁵∕₁₈ em space \hspace*{distance} space, width = distance
\enspace ½ em space \phantom{content} space the width and height of content
\quad 1 em space \hphantom{content} space the width of content
\qquad 2 em space \vphantom{content} space the height of content
~ non-breaking space \! – ³∕₁₈ em space
\<space> space \negthinspace – ³∕₁₈ em space
\nobreakspace non-breaking space \negmedspace – ⁴∕₁₈ em space
\space space \negthickspace – ⁵∕₁₈ em space

Notes:

distance will accept any of the KaTeX units.

\kern, \mkern, \mskip, and \hspace accept unbraced distances, as in: \kern1em.

\mkern and \mskip will not work in text mode and both will write a console warning for any unit except mu.

Logic and Set Theory

\forall \forall \complement \complement \therefore \therefore \emptyset \emptyset
\exists \exists \subset \subset \because \because \empty \empty
\exist \exist \supset \supset \mapsto \mapsto \varnothing \varnothing
\nexists \nexists \mid \mid \to \to     \implies \implies
\in \in \land \land \gets \gets     \impliedby \impliedby
\isin \isin \lor \lor \leftrightarrow \leftrightarrow     \iff \iff
\notin \notin \ni \ni \notni \notni ¬\neg \neg or \lnot

{x  |  x<12}      \Set{ x | x<\frac 1 2 }~~~~~~ \Set{ x | x<\frac 1 2 }
{xx<5}   \set{x|x<5}~~~ \set{x|x<5}

Direct Input :
∀ ∴ ∁ ∵ ∃ ∣ ∈ ∉ ∋ ⊂ ⊃ ∧ ∨ ↦ → ← ↔ ¬ ℂ ℍ ℕ ℙ ℚ ℝ

Macros

There shold be a space between { and # to avoid the conflict with the markdown syntax.
OR use {% raw %} and {% endraw %} to avoid the conflict.

  • $\gdef\bar#1{#1^2} \bar{x} + \bar{y}$ (X)
  • $\gdef\bar#1{ #1^2} \bar{x} + \bar{y}$ (O)
  • {% raw %}$\gdef\bar#1{#1^2} \bar{x} + \bar{y}${% endraw %} (O)
x2+x2\def\foo{x^2} \foo + \foo \def\foo{x^2} \foo + \foo
x2+y2\gdef\bar#1{ #1^2} \bar{x} + \bar{y} \gdef\bar#1{ #1^2} \bar{x} + \bar{y}
\global\def\macroname#1#2…{definition}
\newcommand\macroname[numargs]{definition}
\renewcommand\macroname[numargs]{definition}
\providecommand\macroname[numargs]{definition}

Macros can also be defined in the KaTeX rendering options.

Macros accept up to nine arguments: #1, #2, etc.

\gdef and \global\def macros will persist between math expressions.

Available functions include:

\char \mathchoice \TextOrMath \@ifstar \@ifnextchar \@firstoftwo \@secondoftwo \relax

@ is a valid character for commands, as if \makeatletter were in effect.

Operators

Big Operators

\sum \sum \prod \prod \bigotimes \bigotimes \bigvee \bigvee
\int \int \coprod \coprod \bigoplus \bigoplus \bigwedge \bigwedge
\iint \iint \intop \intop \bigodot \bigodot \bigcap \bigcap
\iiint \iiint \smallint \smallint \biguplus \biguplus \bigcup \bigcup
\oint \oint \oiint \oiint \oiiint \oiiint \bigsqcup \bigsqcup

Direct Input :
∫ ∬ ∭ ∮ ∏ ∐ ∑ ⋀ ⋁ ⋂ ⋃ ⨀ ⨁ ⨂ ⨄ ⨆

Binary Operators

++ + \cdot \cdot \gtrdot \gtrdot x(moda)x \pmod a x \pmod a
- - \cdotp \cdotp \intercal \intercal x(a)x \pod a x \pod a
// / \centerdot \centerdot \land \land \rhd \rhd
* * \circ \circ \leftthreetimes \leftthreetimes \rightthreetimes \rightthreetimes
⨿\amalg \amalg \circledast \circledast .\ldotp \ldotp \rtimes \rtimes
&\And \And \circledcirc \circledcirc \lor \lor \setminus \setminus
\ast \ast \circleddash \circleddash \lessdot \lessdot \smallsetminus \smallsetminus
\barwedge \barwedge \Cup \Cup \lhd \lhd \sqcap \sqcap
\bigcirc \bigcirc \cup \cup \ltimes \ltimes \sqcup \sqcup
mod\bmod \bmod \curlyvee \curlyvee xmodax \mod a x\mod a ×\times \times
\boxdot \boxdot \curlywedge \curlywedge \mp \mp \unlhd \unlhd
\boxminus \boxminus ÷\div \div \odot \odot \unrhd \unrhd
\boxplus \boxplus \divideontimes \divideontimes \ominus \ominus \uplus \uplus
\boxtimes \boxtimes \dotplus \dotplus \oplus \oplus \vee \vee
\bullet \bullet \doublebarwedge \doublebarwedge \otimes \otimes \veebar \veebar
\Cap \Cap \doublecap \doublecap \oslash \oslash \wedge \wedge
\cap \cap \doublecup \doublecup ±\pm \pm or \plusmn \wr \wr

Direct Input : +/±×÷+ - / * ⋅ ± × ÷ ∓ ∔ ∧ ∨ ∩ ∪ ≀ ⊎ ⊓ ⊔ ⊕ ⊖ ⊗ ⊘ ⊙ ⊚ ⊛ ⊝

Fractions and Binomials

ab\frac{a}{b} \frac{a}{b} ab\tfrac{a}{b} \tfrac{a}{b} (aa+1]\genfrac ( ] {2pt}{1}a{a+1} \genfrac ( ] {2pt}{1}a{a+1}
ab{a \over b} {a \over b} ab\dfrac{a}{b} \dfrac{a}{b} ab+1{a \above{2pt} b+1} {a \above{2pt} b+1}
a/ba/b a/b a1+1b\cfrac{a}{1 + \cfrac{1}{b}} \cfrac{a}{1 + \cfrac{1}{b}}
(nk)\binom{n}{k} \binom{n}{k} (nk)\dbinom{n}{k} \dbinom{n}{k} {nk}{n\brace k} {n\brace k}
(nk){n \choose k} {n \choose k} (nk)\tbinom{n}{k} \tbinom{n}{k} [nk]{n\brack k} {n\brack k}

Math Operators

arcsin\arcsin \arcsin cosec\cosec \cosec deg\deg \deg sec\sec \sec
arccos\arccos \arccos cosh\cosh \cosh dim\dim \dim sin\sin \sin
arctan\arctan \arctan cot\cot \cot exp\exp \exp sinh\sinh \sinh
arctg\arctg \arctg cotg\cotg \cotg hom\hom \hom sh\sh \sh
arcctg\arcctg \arcctg coth\coth \coth ker\ker \ker tan\tan \tan
arg\arg \arg csc\csc \csc lg\lg \lg tanh\tanh \tanh
ch\ch \ch ctg\ctg \ctg ln\ln \ln tg\tg \tg
cos\cos \cos cth\cth \cth log\log \log th\th \th
f\operatorname{f} \operatorname{f}
arg max\argmax \argmax inj lim\injlim \injlim min\min \min lim\varinjlim \varinjlim
arg min\argmin \argmin lim\lim \lim plim\plim \plim lim\varliminf \varliminf
det\det \det lim inf\liminf \liminf Pr\Pr \Pr lim\varlimsup \varlimsup
gcd\gcd \gcd lim sup\limsup \limsup proj lim\projlim \projlim lim\varprojlim \varprojlim
inf\inf \inf max\max \max sup\sup \sup
f\operatorname*{f} \operatorname*{f}f\operatornamewithlimits{f} \operatornamewithlimits{f}

Functions in the bottom six rows of this table can take \limits.

Square Root

x\sqrt{x} \sqrt{x}

x3\sqrt[3]{x} \sqrt[3]{x}

Relations

=!\stackrel{!}{=} \stackrel{!}{=}

== = \doteqdot \doteqdot \lessapprox \lessapprox \smile \smile
<< < \eqcirc \eqcirc \lesseqgtr \lesseqgtr \sqsubset \sqsubset
>> > \eqcolon \eqcolon or
    \minuscolon
\lesseqqgtr \lesseqqgtr \sqsubseteq \sqsubseteq
:: : \Eqcolon \Eqcolon or
    \minuscoloncolon
\lessgtr \lessgtr \sqsupset \sqsupset
\approx \approx \eqqcolon \eqqcolon or
    \equalscolon
\lesssim \lesssim \sqsupseteq \sqsupseteq
:\approxcolon \approxcolon =\Eqqcolon \Eqqcolon or
    \equalscoloncolon
\ll \ll \Subset \Subset
\approxcoloncolon \approxcoloncolon \eqsim \eqsim \lll \lll \subset \subset or \sub
\approxeq \approxeq \eqslantgtr \eqslantgtr \llless \llless \subseteq \subseteq or \sube
\asymp \asymp \eqslantless \eqslantless <\lt \lt \subseteqq \subseteqq
\backepsilon \backepsilon \equiv \equiv \mid \mid \succ \succ
\backsim \backsim \fallingdotseq \fallingdotseq \models \models \succapprox \succapprox
\backsimeq \backsimeq \frown \frown \multimap \multimap \succcurlyeq \succcurlyeq
\between \between \ge \ge \origof \origof \succeq \succeq
\bowtie \bowtie \geq \geq \owns \owns \succsim \succsim
\bumpeq \bumpeq \geqq \geqq \parallel \parallel \Supset \Supset
\Bumpeq \Bumpeq \geqslant \geqslant \perp \perp \supset \supset
\circeq \circeq \gg \gg \pitchfork \pitchfork \supseteq \supseteq or \supe
:\colonapprox \colonapprox \ggg \ggg \prec \prec \supseteqq \supseteqq
\Colonapprox \Colonapprox or
    \coloncolonapprox
\gggtr \gggtr \precapprox \precapprox \thickapprox \thickapprox
:\coloneq \coloneq or
    \colonminus
>\gt \gt \preccurlyeq \preccurlyeq \thicksim \thicksim
\Coloneq \Coloneq or
    \coloncolonminus
\gtrapprox \gtrapprox \preceq \preceq \trianglelefteq \trianglelefteq
\coloneqq \coloneqq or
   \colonequals
\gtreqless \gtreqless \precsim \precsim \triangleq \triangleq
=\Coloneqq \Coloneqq or
    \coloncolonequals
\gtreqqless \gtreqqless \propto \propto \trianglerighteq \trianglerighteq
:\colonsim \colonsim \gtrless \gtrless \risingdotseq \risingdotseq \varpropto \varpropto
\Colonsim \Colonsim or
    \coloncolonsim
\gtrsim \gtrsim \shortmid \shortmid \vartriangle \vartriangle
\cong \cong \imageof \imageof \shortparallel \shortparallel \vartriangleleft \vartriangleleft
\curlyeqprec \curlyeqprec \in \in or \isin \sim \sim \vartriangleright \vartriangleright
\curlyeqsucc \curlyeqsucc \Join \Join :\simcolon \simcolon :\vcentcolon \vcentcolon or
   \ratio
\dashv \dashv \le \le \simcoloncolon \simcoloncolon \vdash \vdash
\dblcolon \dblcolon or
   \coloncolon
\leq \leq \simeq \simeq \vDash \vDash
\doteq \doteq \leqq \leqq \smallfrown \smallfrown \Vdash \Vdash
\Doteq \Doteq \leqslant \leqslant \smallsmile \smallsmile \Vvdash \Vvdash

Direct Input:
= < > : ∈ ∋ ∝ ∼ ∽ ≂ ≃ ≅ ≈ ≊ ≍ ≎ ≏ ≐ ≑ ≒ ≓ ≖ ≗ ≜ ≡ ≤ ≥ ≦ ≧ ≫ ≬ ≳ ≷ ≺ ≻ ≼ ≽ ≾ ≿ ⊂ ⊃ ⊆ ⊇ ⊏ ⊐ ⊑ ⊒ ⊢ ⊣ ⊩ ⊪ ⊸ ⋈ ⋍ ⋐ ⋑ ⋔ ⋙ ⋛ ⋞ ⋟ ⌢ ⌣ ⩾ ⪆ ⪌ ⪕ ⪖ ⪯ ⪰ ⪷ ⪸ ⫅ ⫆ ≲ ⩽ ⪅ ≶ ⋚ ⪋ ⟂ ⊨ ⊶ ⊷ ≔ ≕ ⩴

Negated Relations

\not = \not =

\gnapprox \gnapprox \ngeqslant \ngeqslant \nsubseteq \nsubseteq \precneqq \precneqq
\gneq \gneq \ngtr \ngtr \nsubseteqq \nsubseteqq \precnsim \precnsim
\gneqq \gneqq \nleq \nleq \nsucc \nsucc \subsetneq \subsetneq
\gnsim \gnsim \nleqq \nleqq \nsucceq \nsucceq \subsetneqq \subsetneqq
\gvertneqq \gvertneqq \nleqslant \nleqslant \nsupseteq \nsupseteq \succnapprox \succnapprox
\lnapprox \lnapprox \nless \nless \nsupseteqq \nsupseteqq \succneqq \succneqq
\lneq \lneq \nmid \nmid \ntriangleleft \ntriangleleft \succnsim \succnsim
\lneqq \lneqq \notin \notin \ntrianglelefteq \ntrianglelefteq \supsetneq \supsetneq
\lnsim \lnsim \notni \notni \ntriangleright \ntriangleright \supsetneqq \supsetneqq
\lvertneqq \lvertneqq \nparallel \nparallel \ntrianglerighteq \ntrianglerighteq \varsubsetneq \varsubsetneq
\ncong \ncong \nprec \nprec \nvdash \nvdash \varsubsetneqq \varsubsetneqq
\ne \ne \npreceq \npreceq \nvDash \nvDash \varsupsetneq \varsupsetneq
\neq \neq \nshortmid \nshortmid \nVDash \nVDash \varsupsetneqq \varsupsetneqq
\ngeq \ngeq \nshortparallel \nshortparallel \nVdash \nVdash
\ngeqq \ngeqq \nsim \nsim \precnapprox \precnapprox

Direct Input :
∉ ∌ ∤ ∦ ≁ ≆ ≠ ≨ ≩ ≮ ≯ ≰ ≱ ⊀ ⊁ ⊈ ⊉ ⊊ ⊋ ⊬ ⊭ ⊮ ⊯ ⋠ ⋡ ⋦ ⋧ ⋨ ⋩ ⋬ ⋭ ⪇ ⪈ ⪉ ⪊ ⪵ ⪶ ⪹ ⪺ ⫋ ⫌

Arrows

\circlearrowleft \circlearrowleft \leftharpoonup \leftharpoonup \rArr \rArr
\circlearrowright \circlearrowright \leftleftarrows \leftleftarrows \rarr \rarr
\curvearrowleft \curvearrowleft \leftrightarrow \leftrightarrow \restriction \restriction
\curvearrowright \curvearrowright \Leftrightarrow \Leftrightarrow \rightarrow \rightarrow
\Darr \Darr \leftrightarrows \leftrightarrows \Rightarrow \Rightarrow
\dArr \dArr \leftrightharpoons \leftrightharpoons \rightarrowtail \rightarrowtail
\darr \darr \leftrightsquigarrow \leftrightsquigarrow \rightharpoondown \rightharpoondown
\dashleftarrow \dashleftarrow \Lleftarrow \Lleftarrow \rightharpoonup \rightharpoonup
\dashrightarrow \dashrightarrow \longleftarrow \longleftarrow \rightleftarrows \rightleftarrows
\downarrow \downarrow \Longleftarrow \Longleftarrow \rightleftharpoons \rightleftharpoons
\Downarrow \Downarrow \longleftrightarrow \longleftrightarrow \rightrightarrows \rightrightarrows
\downdownarrows \downdownarrows \Longleftrightarrow \Longleftrightarrow \rightsquigarrow \rightsquigarrow
\downharpoonleft \downharpoonleft \longmapsto \longmapsto \Rrightarrow \Rrightarrow
\downharpoonright \downharpoonright \longrightarrow \longrightarrow \Rsh \Rsh
\gets \gets \Longrightarrow \Longrightarrow \searrow \searrow
\Harr \Harr \looparrowleft \looparrowleft \swarrow \swarrow
\hArr \hArr \looparrowright \looparrowright \to \to
\harr \harr \Lrarr \Lrarr \twoheadleftarrow \twoheadleftarrow
\hookleftarrow \hookleftarrow \lrArr \lrArr \twoheadrightarrow \twoheadrightarrow
\hookrightarrow \hookrightarrow \lrarr \lrarr \Uarr \Uarr
    \iff \iff \Lsh \Lsh \uArr \uArr
    \impliedby \impliedby \mapsto \mapsto \uarr \uarr
    \implies \implies \nearrow \nearrow \uparrow \uparrow
\Larr \Larr \nleftarrow \nleftarrow \Uparrow \Uparrow
\lArr \lArr \nLeftarrow \nLeftarrow \updownarrow \updownarrow
\larr \larr \nleftrightarrow \nleftrightarrow \Updownarrow \Updownarrow
\leadsto \leadsto \nLeftrightarrow \nLeftrightarrow \upharpoonleft \upharpoonleft
\leftarrow \leftarrow \nrightarrow \nrightarrow \upharpoonright \upharpoonright
\Leftarrow \Leftarrow \nRightarrow \nRightarrow \upuparrows \upuparrows
\leftarrowtail \leftarrowtail \nwarrow \nwarrow
\leftharpoondown \leftharpoondown \Rarr \Rarr

Direct Input :
← ↑ → ↓ ↔ ↕ ↖ ↗ ↘ ↙ ↚ ↛ ↞ ↠ ↢ ↣ ↦ ↩ ↪ ↫ ↬ ↭ ↮ ↰ ↱↶ ↷ ↺ ↻ ↼ ↽ ↾ ↾ ↿ ⇀ ⇁ ⇂ ⇃ ⇄ ⇆ ⇇ ⇈ ⇉ ⇊ ⇋ ⇌⇍ ⇎ ⇏ ⇐ ⇑ ⇒ ⇓ ⇔ ⇕ ⇚ ⇛ ⇝ ⇠ ⇢ ⟵ ⟶ ⟷ ⟸ ⟹ ⟺ ⟼ ↽

Extensible Arrows

abc\xleftarrow{abc} \xleftarrow{abc} underover\xrightarrow[under]{over} \xrightarrow[under]{over}
abc\xLeftarrow{abc} \xLeftarrow{abc} abc\xRightarrow{abc} \xRightarrow{abc}
abc\xleftrightarrow{abc} \xleftrightarrow{abc} abc\xLeftrightarrow{abc} \xLeftrightarrow{abc}
abc\xhookleftarrow{abc} \xhookleftarrow{abc} abc\xhookrightarrow{abc} \xhookrightarrow{abc}
abc\xtwoheadleftarrow{abc} \xtwoheadleftarrow{abc} abc\xtwoheadrightarrow{abc} \xtwoheadrightarrow{abc}
abc\xleftharpoonup{abc} \xleftharpoonup{abc} abc\xrightharpoonup{abc} \xrightharpoonup{abc}
abc\xleftharpoondown{abc} \xleftharpoondown{abc} abc\xrightharpoondown{abc} \xrightharpoondown{abc}
abc\xleftrightharpoons{abc} \xleftrightharpoons{abc} abc\xrightleftharpoons{abc} \xrightleftharpoons{abc}
abc\xtofrom{abc} \xtofrom{abc} abc\xmapsto{abc} \xmapsto{abc}
=abc\xlongequal{abc} \xlongequal{abc}

Extensible arrows all can take an optional argument in the same manner as \xrightarrow[under]{over}.

Style, Color, Size, and Font

Class Assignment

\mathbin \mathclose \mathinner \mathop
\mathopen \mathord \mathpunct \mathrel

Color

Using # inside $$ will cause a conflict with the markdown syntax.
To avoid this, use six-digit CSS hexadecimal style without the #, OR use {% raw %} and {% endraw %} tags.

  • $\textcolor{#FF0000}{F=ma}$ (X)
  • $\textcolor{FF0000}{F=ma}$ (O)
  • {% raw %}$\textcolor{#FF0000}{F=ma}${% endraw %} (O)

Using $ inside $$ will cause a conflict with the markdown syntax. To avoid this, use \textit{} instead of $…$.

  • $\textcolor{red}{$F=ma$}$ (X)
  • $\textcolor{red}{\textit{F=ma}}$ (O)

F=ma\color{blue} F=ma \color{blue} F=ma

Note that KaTeX \color acts like a switch. This aligns with LaTeX and differs from MathJax.
Other KaTeX color functions expect the content to be a function argument:

F=ma\textcolor{blue}{F=ma} \textcolor{blue}{F=ma}

F=ma\textcolor{228B22}{F=ma} \textcolor{228B22}{F=ma}

F=ma\colorbox{aqua}{\textit{F=ma}} \colorbox{aqua}{\textit{F=ma}}

F=ma\fcolorbox{red}{aqua}{\textit{F=ma}} \fcolorbox{red}{aqua}{\textit{F=ma}}

For color definition, KaTeX color functions will accept the standard HTML predefined color names. They will also accept an RGB argument in CSS hexa­decimal style. The “#” is optional before a six-digit specification.

Font

Ab0\mathrm{Ab0} \mathrm{Ab0} Ab0\mathbf{Ab0} \mathbf{Ab0} Ab\mathit{Ab} \mathit{Ab}
Ab0\mathnormal{Ab0} \mathnormal{Ab0} Ab0\textbf{Ab0} \textbf{Ab0} Ab\textit{Ab} \textit{Ab}
Ab0\textrm{Ab0} \textrm{Ab0} Ab0\bf Ab0 \bf Ab0 Ab\it Ab \it Ab
Ab0\rm Ab0 \rm Ab0 Ab0\bold{Ab0} \bold{Ab0} AB\Bbb{AB} \Bbb{AB}
Ab0\textnormal{Ab0} \textnormal{Ab0} Ab\boldsymbol{Ab} \boldsymbol{Ab} AB\mathbb{AB} \mathbb{AB}
Ab0\text{Ab0} \text{Ab0} Ab\bm{Ab} \bm{Ab} Ab0\frak{Ab0} \frak{Ab0}
Ab0\mathsf{Ab0} \mathsf{Ab0} Ab0\mathtt{Ab0} \mathtt{Ab0} Ab0\mathfrak{Ab0} \mathfrak{Ab0}
Ab0\textsf{Ab0} \textsf{Ab0} Ab0\texttt{Ab0} \texttt{Ab0} AB0\mathcal{AB0} \mathcal{AB0}
Ab0\sf Ab0 \sf Ab0 Ab0\tt Ab0 \tt Ab0 AB\mathscr{AB} \mathscr{AB}

One can stack font family, font weight, and font shape by using the \textXX versions of the font functions. So \textsf{\textbf{H}} will produce H\textsf{\textbf{H}}. The other versions do not stack, e.g., \mathsf{\mathbf{H}} will produce H\mathsf{\mathbf{H}}.

In cases where KaTeX fonts do not have a bold glyph, \pmb can simulate one. For example, \pmb{\mu} renders as : μ\pmb{\mu}

Size

AB\Huge AB \Huge AB AB\normalsize AB \normalsize AB
AB\huge AB \huge AB AB\small AB \small AB
AB\LARGE AB \LARGE AB AB\footnotesize AB \footnotesize AB
AB\Large AB \Large AB AB\scriptsize AB \scriptsize AB
AB\large AB \large AB AB\tiny AB \tiny AB

Style

i=1n\displaystyle\sum_{i=1}^n \displaystyle\sum_{i=1}^n
i=1n\textstyle\sum_{i=1}^n \textstyle\sum_{i=1}^n
x\scriptstyle x \scriptstyle x         (The size of a first sub/superscript)
x\scriptscriptstyle x \scriptscriptstyle x (The size of subsequent sub/superscripts)
limx\lim\limits_x \lim\limits_x
limx\lim\nolimits_x \lim\nolimits_x
x^2\verb!x^2! \verb!x^2!

\text{…} will accept nested $…$ fragments and render them in math mode.

Symbols and Punctuation

% comment \dots \dots KaTeX\KaTeX \KaTeX
%\% \% \cdots \cdots LaTeX\LaTeX \LaTeX
#\# \# \ddots \ddots TeX\TeX \TeX
&\& \& \ldots \ldots \nabla \nabla
_\_ \_ \vdots \vdots \infty \infty
_\text{\textunderscore} \text{\textunderscore} \dotsb \dotsb \infin \infin
\text{--} \text{--} \dotsc \dotsc \checkmark \checkmark
\text{\textendash} \text{\textendash}  ⁣\dotsi \dotsi \dag \dag
\text{---} \text{---} \dotsm \dotsm \dagger \dagger
\text{\textemdash} \text{\textemdash} \dotso \dotso \text{\textdagger} \text{\textdagger}
~\text{\textasciitilde} \text{\textasciitilde} \sdot \sdot \ddag \ddag
^\text{\textasciicircum} \text{\textasciicircum} \mathellipsis \mathellipsis \ddagger \ddagger
` ` \text{\textellipsis} \text{\textellipsis} \text{\textdaggerdbl} \text{\textdaggerdbl}
\text{\textquoteleft} text{\textquoteleft} \Box \Box \Dagger \Dagger
\lq \lq \square \square \angle \angle
\text{\textquoteright} \text{\textquoteright} \blacksquare \blacksquare \measuredangle \measuredangle
\rq \rq \triangle \triangle \sphericalangle \sphericalangle
\text{\textquotedblleft} \text{\textquotedblleft} \triangledown \triangledown \top \top
"" " \triangleleft \triangleleft \bot \bot
\text{\textquotedblright} \text{\textquotedblright} \triangleright \triangleright $\$ \$
 ⁣:\colon \colon \bigtriangledown \bigtriangledown $\text{\textdollar} \text{\textdollar}
\backprime \backprime \bigtriangleup \bigtriangleup £\pounds \pounds
\prime \prime \blacktriangle \blacktriangle £\mathsterling \mathsterling
<\text{\textless} \text{\textless} \blacktriangledown \blacktriangledown £\text{\textsterling} \text{\textsterling}
>\text{\textgreater} \text{\textgreater} \blacktriangleleft \blacktriangleleft ¥\yen \yen
|\text{\textbar} \text{\textbar} \blacktriangleright \blacktriangleright \surd \surd
\text{\textbardbl} \text{\textbardbl} \diamond \diamond °\degree \degree
{\text{\textbraceleft} \text{\textbraceleft} \Diamond \Diamond °\text{\textdegree} \text{\textdegree}
}\text{\textbraceright} \text{\textbraceright} \lozenge \lozenge \mho \mho
\\text{\textbackslash} \text{\textbackslash} \blacklozenge \blacklozenge \diagdown \diagdown
\text{\P} \text{\P} or \P \star \star \diagup \diagup
§\text{\S} \text{\S} or \S \bigstar \bigstar \flat \flat
§\text{\sect} \text{\sect} \clubsuit \clubsuit \natural \natural
©\copyright \copyright \clubs \clubs \sharp \sharp
®\circledR \circledR \diamondsuit \diamondsuit \heartsuit \heartsuit
®\text{\textregistered} \text{\textregistered} \diamonds \diamonds \hearts \hearts
\circledS \circledS \spadesuit \spadesuit \spades \spades
a\text{\textcircled a} \text{\textcircled a} \maltese \maltese \minuso \minuso

Direct Input :
§ ¶ $ £ ¥ ∇ ∞ · ∠ ∡ ∢ ♠ ♡ ♢ ♣ ♭ ♮ ♯ ✓ … ⋮ ⋯ ⋱ ! ‼ ⦵

Units

In KaTeX, units are proportioned as they are in TeX.

KaTeX units are different than CSS units.

KaTeX Unit Value KaTeX Unit Value
em CSS em bp 1/72​ inch × F × G
ex CSS ex pc 12 KaTeX pt
mu 1/18 CSS em dd 1238/1157​ KaTeX pt
pt 1/72.27 inch × F × G cc 14856/1157 KaTeX pt
mm 1 mm × F × G nd 685/642 KaTeX pt
cm 1 cm × F × G nc 1370/107​ KaTeX pt
in 1 inch × F × G sp 1/65536 KaTeX pt

where:

F = (font size of surrounding HTML text)/(10 pt)

G = 1.21 by default, because KaTeX font-size is normally 1.21 × the surrounding font size. This value can be overridden by the CSS of an HTML page.

The effect of style and size:

Unit textstyle scriptscript huge
em or ex \rule{1em}{1em} \scriptscriptstyle\rule{1em}{1em} \huge\rule{1em}{1em}
mu \rule{18mu}{18mu} \scriptscriptstyle\rule{18mu}{18mu} \huge\rule{18mu}{18mu}
others \rule{10pt}{10pt} \scriptscriptstyle\rule{10pt}{10pt} \huge\rule{10pt}{10pt}

  1. KaTex Test Code - upupming’s blog (link) ↩︎ ↩︎

  2. Original Markdown Code of the blog article (link) ↩︎ ↩︎ ↩︎

  3. Supported Functions - KaTex Official Site (link) ↩︎ ↩︎

Author :extreme-rearranger
Link :https://ex-rearranger.github.io/posts/en/KaTeX-Test-Code/
Copyright :This article is licensed under CC BY-NC-SA 4.0 due to the original source license.