use std::{fs::File, path::Path};
use common::{html_template, tabled, OUTPUT_DIR};
mod common;
fn main() {
let concl = common::test();
if std::env::var("RENDER").as_deref() != Ok("true") {
concl.exit()
}
let mut file = File::create(Path::new(OUTPUT_DIR).join("wikipedia.html")).unwrap();
html_template(&mut file, "Wikipedia Tests", None, tabled).unwrap();
concl.exit();
}
round_trip_display!(
basic,
r"\alpha",
r"f(x) = x^2",
r"\{1,e,\pi\}",
r"|z| \leq 2",
);
round_trip_display!(
accents_and_diacritics,
r"\dot{a}, \ddot{a}, \acute{a}, \grave{a}",
r"\check{a}, \breve{a}, \tilde{a}, \bar{a}",
r"\hat{a}, \widehat{a}, \vec{a}"
);
round_trip_display!(
standard_numerical_functions,
r"\exp_a b = a^b, \exp b = e^b, 10^m",
r"\ln c = \log c, \lg d = \log_{10} d",
r"\sin a, \cos b, \tan c, \cot d, \sec f, \csc g",
r"\arcsin h, \arccos i, \arctan j",
r"\sinh k, \cosh l, \tanh m, \coth n",
r"\operatorname{sh}k, \operatorname{ch}l, \operatorname{th}m, \operatorname{coth}n",
r"\operatorname{argsh}o, \operatorname{argch}p, \operatorname{argth}q",
r"\sgn r, \left\vert s \right\vert",
r"\min(x,y), \max(x,y)"
);
round_trip_display!(
bounds,
r"\min x, \max y, \inf s, \sup t",
r"\lim u, \liminf v, \limsup w",
r"\dim p, \deg q, \det m, \ker\phi"
);
round_trip_display!(projections, r"\Pr j, \hom l, \lVert z \rVert, \arg z");
round_trip_display!(
differential_and_derivatives,
r"dt, \mathrm{d}t, \partial t, \nabla\psi",
r"dy/dx, \mathrm{d}y/\mathrm{d}x, \frac{dy}{dx}, \frac{\mathrm{d}y}{\mathrm{d}x}",
r"\frac{\partial^2}{\partial x_1\partial x_2}y, \left.\frac{\partial^3 f}{\partial^2 x \partial y}\right\vert_{p_0}",
r"\prime, \backprime, f^\prime, f', f'', f^{(3)}, \dot y, \ddot y"
);
round_trip_display!(
letter_like_symbols_or_constants,
r"\infty, \aleph, \complement, \backepsilon, \eth, \Finv, \hbar",
r"\Im, \imath, \jmath, \Bbbk, \ell, \mho, \wp, \Re, \circledS, \S, \P"
);
round_trip_display!(
modular_arithmetic,
r"s_k \equiv 0 \pmod{m}",
r"a \bmod b",
r"\gcd(m, n), \operatorname{lcm}(m, n)",
r"\mid, \nmid, \shortmid, \nshortmid"
);
round_trip_display!(
radicals,
r"\surd, \sqrt{2}, \sqrt[n]{2}, \sqrt[3]{\frac{x^3+y^3}{2}}"
);
round_trip_display!(
operators,
r"+, -, \pm, \mp, \dotplus",
r"\times, \div, \divideontimes, /, \backslash",
r"\cdot, * \ast, \star, \circ, \bullet",
r"\boxplus, \boxminus, \boxtimes, \boxdot",
r"\oplus, \ominus, \otimes, \oslash, \odot",
r"\circleddash, \circledcirc, \circledast",
r"\bigoplus, \bigotimes, \bigodot"
);
round_trip_display!(
sets,
r"\{ \}, \emptyset, \varnothing",
r"\in, \notin \not\in, \ni, \not\ni",
r"\cap, \Cap, \sqcap, \bigcap",
r"\cup, \Cup, \sqcup, \bigcup, \bigsqcup, \uplus, \biguplus",
r"\setminus, \smallsetminus, \times",
r"\subset, \Subset, \sqsubset",
r"\supset, \Supset, \sqsupset",
r"\subseteq, \nsubseteq, \subsetneq, \varsubsetneq, \sqsubseteq",
r"\supseteq, \nsupseteq, \supsetneq, \varsupsetneq, \sqsupseteq",
r"\subseteqq, \nsubseteqq, \subsetneqq, \varsubsetneqq",
r"\supseteqq, \nsupseteqq, \supsetneqq, \varsupsetneqq"
);
round_trip_display!(
relations,
r"=, \ne, \neq, \equiv, \not\equiv",
r"\doteq, \doteqdot, \overset{\underset{\mathrm{def}}{}}{=}, :=",
r"\sim, \nsim, \backsim, \thicksim, \simeq, \backsimeq, \eqsim, \cong, \ncong",
r"\approx, \thickapprox, \approxeq, \asymp, \propto, \varpropto",
r"<, \nless, \ll, \not\ll, \lll, \not\lll, \lessdot",
r">, \ngtr, \gg, \not\gg, \ggg, \not\ggg, \gtrdot",
r"\le, \leq, \lneq, \leqq, \nleq, \nleqq, \lneqq, \lvertneqq",
r"\ge, \geq, \gneq, \geqq, \ngeq, \ngeqq, \gneqq, \gvertneqq",
r"\lessgtr, \lesseqgtr, \lesseqqgtr, \gtrless, \gtreqless, \gtreqqless",
r"\leqslant, \nleqslant, \eqslantless",
r"\geqslant, \ngeqslant, \eqslantgtr",
r"\lesssim, \lnsim, \lessapprox, \lnapprox",
r"\gtrsim, \gnsim, \gtrapprox, \gnapprox",
r"\prec, \nprec, \preceq, \npreceq, \precneqq",
r"\succ, \nsucc, \succeq, \nsucceq, \succneqq",
r"\preccurlyeq, \curlyeqprec",
r"\succcurlyeq, \curlyeqsucc",
r"\precsim, \precnsim, \precapprox, \precnapprox",
r"\succsim, \succnsim, \succapprox, \succnapprox"
);
round_trip_display!(
geometric,
r"\parallel, \nparallel, \shortparallel, \nshortparallel",
r"\perp, \angle, \sphericalangle, \measuredangle, 45^\circ",
r"\Box, \square, \blacksquare, \diamond, \Diamond, \lozenge, \blacklozenge, \bigstar",
r"\bigcirc, \triangle, \bigtriangleup, \bigtriangledown",
r"\vartriangle, \triangledown",
r"\blacktriangle, \blacktriangledown, \blacktriangleleft, \blacktriangleright"
);
round_trip_display!(
logic,
r"\forall, \exists, \nexists",
r"\therefore, \because, \And",
r"\lor, \vee, \curlyvee, \bigvee",
r"\land, \wedge, \curlywedge, \bigwedge",
r"\bar{q}, \bar{abc}, \overline{q}, \overline{abc}",
r"\lnot, \neg, \not\operatorname{R}, \bot, \to",
r"\vdash, \dashv, \vDash, \Vdash, \models",
r"\Vvdash, \nvdash, \nVdash, \nvDash, \nVDash",
r"\ulcorner, \urcorner, \llcorner, \lrcorner"
);
round_trip_display!(
arrows,
r"\Rrightarrow, \Lleftarrow",
r"\Rightarrow, \nRightarrow, \Longrightarrow, \implies",
r"\Leftarrow, \nLeftarrow, \Longleftarrow",
r"\Leftrightarrow, \nLeftrightarrow, \Longleftrightarrow, \iff",
r"\Uparrow, \Downarrow, \Updownarrow",
r"\rightarrow, \to, \nrightarrow, \longrightarrow",
r"\leftarrow, \gets, \nleftarrow, \longleftarrow",
r"\leftrightarrow, \nleftrightarrow, \longleftrightarrow",
r"\uparrow, \downarrow, \updownarrow",
r"\nearrow, \swarrow, \nwarrow, \searrow",
r"\mapsto, \longmapsto",
r"\rightharpoonup \rightharpoondown \leftharpoonup \leftharpoondown \upharpoonleft \upharpoonright \downharpoonleft \downharpoonright \rightleftharpoons \leftrightharpoons",
r"\curvearrowleft \circlearrowleft \Lsh \upuparrows \rightrightarrows \rightleftarrows \rightarrowtail \looparrowright",
r"\curvearrowright \circlearrowright \Rsh \downdownarrows \leftleftarrows \leftrightarrows \leftarrowtail \looparrowleft",
r"\hookrightarrow \hookleftarrow \multimap \leftrightsquigarrow \rightsquigarrow \twoheadrightarrow \twoheadleftarrow"
);
round_trip_display!(
special,
r"\amalg \P \S \% \dagger \ddagger \ldots \cdots \vdots \ddots",
r"\smile \frown \wr \triangleleft \triangleright",
r"\diamondsuit, \heartsuit, \clubsuit, \spadesuit, \Game, \flat, \natural, \sharp"
);
round_trip_display!(
unsorted,
r"\diagup \diagdown \centerdot \ltimes \rtimes \leftthreetimes \rightthreetimes",
r"\eqcirc \circeq \triangleq \bumpeq \Bumpeq \doteqdot \risingdotseq \fallingdotseq",
r"\intercal \barwedge \veebar \doublebarwedge \between \pitchfork",
r"\vartriangleleft \ntriangleleft \vartriangleright \ntriangleright",
r"\trianglelefteq \ntrianglelefteq \trianglerighteq \ntrianglerighteq"
);
round_trip_display!(
should_panic,
unsupported,
r"\N \R \Z \C \Q",
r"\AA",
r"\O \empty"
);
round_trip_display!(superscript, r"a^2, a^{x+3}");
round_trip_display!(subscript, r"a_2");
round_trip_display!(grouping, r"10^{30} a^{2+2}", r"a_{i,j} b_{f'}");
round_trip_display!(combined_sub_superscript, r"x_2^3", r"{x_2}^3");
round_trip_display!(super_super, r"10^{10^{8}}");
round_trip_display!(
preceding_and_or_additional,
r"{}_1^2\!\Omega_3^4"
);
round_trip_display!(
stacking,
r"\overset{\alpha}{\omega}",
r"\underset{\alpha}{\omega}",
r"\overset{\alpha}{\underset{\gamma}{\omega}}",
r"\stackrel{\alpha}{\omega}"
);
round_trip_display!(
derivatives,
r"x', y'', f', f''",
r"x^\prime, y^{\prime\prime}"
);
round_trip_display!(derivative_dots, r"\dot{x}, \ddot{x}");
round_trip_display!(
underline_overline_vectors,
r"\hat a \ \bar b \ \vec c",
r"\overrightarrow{a b} \ \overleftarrow{c d} \ \widehat{d e f}",
r"\overline{g h i} \ \underline{j k l}"
);
round_trip_display!(arc, r"\overset{\frown} {AB}");
round_trip_display!(
arrows_example,
r"A \xleftarrow{n+\mu-1} B \xrightarrow[T]{n\pm i-1} C"
);
round_trip_display!(
overbraces,
r"\overbrace{ 1+2+\cdots+100 }^{5050}",
r"\underbrace{ a+b+\cdots+z }_{26}"
);
round_trip_display!(sum, r"\sum_{k=1}^N k^2", r"\textstyle \sum_{k=1}^N k^2");
round_trip_display!(
sum_in_fraction,
r"\frac{\sum_{k=1}^N k^2}{a}",
r"\frac{\displaystyle \sum_{k=1}^N k^2}{a}",
r"\frac{\sum\limits^{N}_{k=1} k^2}{a}"
);
round_trip_display!(
product,
r"\prod_{i=1}^N x_i",
r"\textstyle \prod_{i=1}^N x_i"
);
round_trip_display!(
coproduct,
r"\coprod_{i=1}^N x_i",
r"\textstyle \coprod_{i=1}^N x_i"
);
round_trip_display!(
limit,
r"\lim_{x \to \infty} x_n",
r"\textstyle \lim_{x \to \infty} x_n"
);
round_trip_display!(
integral,
r"\int\limits_{1}^{3}\frac{e^3/x}{x^2}\, dx",
r"\int_{1}^{3}\frac{e^3/x}{x^2}\, dx",
r"\textstyle \int\limits_{-N}^{N} e^x dx",
r"\textstyle \int_{-N}^{N} e^x dx"
);
round_trip_display!(double_integral, r"\iint\limits_{D} dx\,dy");
round_trip_display!(triple_integral, r"\iiint\limits_{D} dx\,dy\,dz");
round_trip_display!(quadruple_integral, r"\iiiint\limits_{D} dx\,dy\,dz\,dt");
round_trip_display!(
line_or_path_integral,
r"\int_{(x,y)\in C} x^3\, dx + 4y^2\, dy"
);
round_trip_display!(
closed_line_or_path_integral,
r"\oint_{(x,y)\in C} x^3\, dx + 4y^2\, dy"
);
round_trip_display!(intersections, r"\bigcap_{i=1}^n E_i");
round_trip_display!(unions, r"\bigcup_{i=1}^n E_i");
round_trip_display!(
fractions,
r"\frac{2}{4} = 0.5",
r"\tfrac{2}{4} = 0.5",
r"\dfrac{2}{4} = 0.5 \qquad \dfrac{2}{c + \dfrac{2}{d + \dfrac{2}{4}}} = a",
r"\cfrac{2}{c + \cfrac{2}{d + \cfrac{2}{4}}} = a",
r"\cfrac{x}{1 + \cfrac{\cancel{y}}{\cancel{y}}} = \cfrac{x}{2}"
);
round_trip_display!(
binomials,
r"\binom{n}{k}",
r"\tbinom{n}{k}",
r"\dbinom{n}{k}"
);
round_trip_display!(
matrices,
r"\begin{matrix}
-x & y \\
z & -v
\end{matrix}",
r"\begin{vmatrix}
-x & y \\
z & -v
\end{vmatrix}",
r"\begin{Vmatrix}
-x & y \\
z & -v
\end{Vmatrix}",
r"\begin{bmatrix}
0 & \cdots & 0 \\
\vdots & \ddots & \vdots \\
0 & \cdots & 0
\end{bmatrix}",
r"\begin{Bmatrix}
x & y \\
z & v
\end{Bmatrix}",
r"\begin{pmatrix}
x & y \\
z & v
\end{pmatrix}",
r"\bigl( \begin{smallmatrix}
a&b\\ c&d
\end{smallmatrix} \bigr)"
);
round_trip_display!(
cases,
r"f(n) =
\begin{cases}
n/2, & \text{if }n\text{ is even} \\
3n+1, & \text{if }n\text{ is odd}
\end{cases}",
r"\begin{cases}
3x + 5y + z \\
7x - 2y + 4z \\
-6x + 3y + 2z
\end{cases}"
);
round_trip_display!(
multiline_equations,
r"\begin{align}
f(x) & = (a+b)^2 \\
& = a^2+2ab+b^2 \\
\end{align}",
r"\begin{alignat}{2}
f(x) & = (a-b)^2 \\
& = a^2-2ab+b^2 \\
\end{alignat}",
r"\begin{align}
f(a,b) & = (a+b)^2 && = (a+b)(a+b) \\
& = a^2+ab+ba+b^2 && = a^2+2ab+b^2 \\
\end{align}",
r"\begin{alignat}{3}
f(a,b) & = (a+b)^2 && = (a+b)(a+b) \\
& = a^2+ab+ba+b^2 && = a^2+2ab+b^2 \\
\end{alignat}",
r"\begin{array}{lcl}
z & = & a \\
f(x,y,z) & = & x + y + z
\end{array}",
r"\begin{array}{lcr}
z & = & a \\
f(x,y,z) & = & x + y + z
\end{array}",
r"\begin{alignat}{4}
F:\; && C(X) && \;\to\; & C(X) \\
&& g && \;\mapsto\; & g^2
\end{alignat}",
r"\begin{alignat}{4}
F:\; && C(X) && \;\to\; && C(X) \\
&& g && \;\mapsto\; && g^2
\end{alignat}"
);
round_trip_display!(
arrays,
r"\begin{array}{||c|c::c|c||}
A & B & C & D \\ \hdashline
1 & 2 & 3 & 4 \\ \hline
5 & 6 & 7 & 8 \\
9 & 10 & 11 & 12
\end{array}",
);
round_trip_display!(parentheses, r"\left ( \frac{a}{b} \right )");
round_trip_display!(
brackets,
r"\left [ \frac{a}{b} \right ]",
r"\left \lbrack \frac{a}{b} \right \rbrack"
);
round_trip_display!(
braces,
r"\left \{ \frac{a}{b} \right \}",
r"\left \lbrace \frac{a}{b} \right \rbrace"
);
round_trip_display!(angle_brackets, r"\left \langle \frac{a}{b} \right \rangle");
round_trip_display!(
bars_and_double_bars,
r"\left | \frac{a}{b} \right \vert",
r"\left \| \frac{a}{b} \right \Vert"
);
round_trip_display!(
floor_and_ceiling,
r"\left \lfloor \frac{a}{b} \right \rfloor",
r"\left \lceil \frac{a}{b} \right \rceil"
);
round_trip_display!(
slashes_and_backslashes,
r"\left / \frac{a}{b} \right \backslash"
);
round_trip_display!(
up_down_updown_arrows,
r"\left \uparrow \frac{a}{b} \right \downarrow",
r"\left \Uparrow \frac{a}{b} \right \Downarrow",
r"\left \updownarrow \frac{a}{b} \right \Updownarrow"
);
round_trip_display!(
mixed,
r"\left [ 0,1 \right )",
r"\left \langle \psi \right |"
);
round_trip_display!(no_delimiter, r"\left . \frac{A}{B} \right \} \to X");
round_trip_display!(
delimiter_sizes,
r"( \bigl( \Bigl( \biggl( \Biggl( \dots \Biggr] \biggr] \Bigr] \bigr] ]",
r"\{ \bigl\{ \Bigl\{ \biggl\{ \Biggl\{ \dots \Biggr\rangle \biggr\rangle \Bigr\rangle \bigr\rangle \rangle",
r"\| \big\| \Big\| \bigg\| \Bigg\| \dots \Bigg| \bigg| \Big| \big| |",
r"\lfloor \bigl\lfloor \Bigl\lfloor \biggl\lfloor \Biggl\lfloor \dots \Biggr\rceil \biggr\rceil \Bigr\rceil \bigr\rceil \rceil",
r"\uparrow \big\uparrow \Big\uparrow \bigg\uparrow \Bigg\uparrow \dots \Bigg\Downarrow \bigg\Downarrow \Big\Downarrow \big\Downarrow \Downarrow",
r"\updownarrow \big\updownarrow \Big\updownarrow \bigg\updownarrow \Bigg\updownarrow \dots \Bigg\Updownarrow \bigg\Updownarrow \Big\Updownarrow \big\Updownarrow \Updownarrow",
r"/ \big/ \Big/ \bigg/ \Bigg/ \dots \Bigg\backslash \bigg\backslash \Big\backslash \big\backslash \backslash"
);
round_trip_display!(
greek_alphabet,
r"\Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta",
r"\Iota \Kappa \Lambda \Mu \Nu \Xi \Omicron \Pi",
r"\Rho \Sigma \Tau \Upsilon \Phi \Chi \Psi \Omega",
r"\alpha \beta \gamma \delta \epsilon \zeta \eta \theta",
r"\iota \kappa \lambda \mu \nu \xi \omicron \pi",
r"\rho \sigma \tau \upsilon \phi \chi \psi \omega",
r"\varGamma \varDelta \varTheta \varLambda \varXi \varPi \varSigma \varPhi \varUpsilon \varOmega",
r"\varepsilon \digamma \varkappa \varpi \varrho \varsigma \vartheta \varphi"
);
round_trip_display!(hebrew_symbols, r"\aleph \beth \gimel \daleth");
round_trip_display!(
blackboard_bold,
r"\mathbb{ABCDEFGHI}",
r"\mathbb{JKLMNOPQR}",
r"\mathbb{STUVWXYZ}"
);
round_trip_display!(
boldface,
r"\mathbf{ABCDEFGHI}",
r"\mathbf{JKLMNOPQR}",
r"\mathbf{STUVWXYZ}",
r"\mathbf{abcdefghijklm}",
r"\mathbf{nopqrstuvwxyz}",
r"\mathbf{0123456789}"
);
round_trip_display!(
boldface_greek,
r"\boldsymbol{\Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta}",
r"\boldsymbol{\Iota \Kappa \Lambda \Mu \Nu \Xi \Omicron \Pi}",
r"\boldsymbol{\Rho \Sigma \Tau \Upsilon \Phi \Chi \Psi \Omega}",
r"\boldsymbol{\alpha \beta \gamma \delta \epsilon \zeta \eta \theta}",
r"\boldsymbol{\iota \kappa \lambda \mu \nu \xi \omicron \pi}",
r"\boldsymbol{\rho \sigma \tau \upsilon \phi \chi \psi \omega}",
r"\boldsymbol{\varepsilon\digamma\varkappa\varpi}",
r"\boldsymbol{\varrho\varsigma\vartheta\varphi}"
);
round_trip_display!(italics, r"\mathit{0123456789}");
round_trip_display!(
greek_italics,
r"\mathit{\Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta}",
r"\mathit{\Iota \Kappa \Lambda \Mu \Nu \Xi \Omicron \Pi}",
r"\mathit{\Rho \Sigma \Tau \Upsilon \Phi \Chi \Psi \Omega}"
);
round_trip_display!(
greek_uppercase_boldface_italics,
r"\boldsymbol{\varGamma \varDelta \varTheta \varLambda}",
r"\boldsymbol{\varXi \varPi \varSigma \varUpsilon \varOmega}"
);
round_trip_display!(
roman_typeface,
r"\mathrm{ABCDEFGHI}",
r"\mathrm{JKLMNOPQR}",
r"\mathrm{STUVWXYZ}",
r"\mathrm{abcdefghijklm}",
r"\mathrm{nopqrstuvwxyz}",
r"\mathrm{0123456789}"
);
round_trip_display!(
sans_serif,
r"\mathsf{ABCDEFGHI}",
r"\mathsf{JKLMNOPQR}",
r"\mathsf{STUVWXYZ}",
r"\mathsf{abcdefghijklm}",
r"\mathsf{nopqrstuvwxyz}",
r"\mathsf{0123456789}"
);
round_trip_display!(
sans_serif_greek,
r"\mathsf{\Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta}",
r"\mathsf{\Iota \Kappa \Lambda \Mu \Nu \Xi \Omicron \Pi}",
r"\mathsf{\Rho \Sigma \Tau \Upsilon \Phi \Chi \Psi \Omega}"
);
round_trip_display!(
calligraphiy,
r"\mathcal{ABCDEFGHI}",
r"\mathcal{JKLMNOPQR}",
r"\mathcal{STUVWXYZ}",
r"\mathcal{abcdefghi}",
r"\mathcal{jklmnopqr}",
r"\mathcal{stuvwxyz}"
);
round_trip_display!(
fraktur,
r"\mathfrak{ABCDEFGHI}",
r"\mathfrak{JKLMNOPQR}",
r"\mathfrak{STUVWXYZ}",
r"\mathfrak{abcdefghijklm}",
r"\mathfrak{nopqrstuvwxyz}",
r"\mathfrak{0123456789}"
);
round_trip_display!(small_script, r"{\scriptstyle\text{abcdefghijklm}}");
round_trip_display!(
mixed_faces,
r"x y z",
r"\text{x y z}",
r"\text{if} n \text{is even}",
r"\text{if }n\text{ is even}",
r"\text{if}~n\ \text{is even}"
);
round_trip_display!(
color,
r"{\color{Blue}x^2}+{\color{Orange}2x}-{\color{LimeGreen}1}",
r"x=\frac{{\color{Blue}-b}\pm\sqrt{\color{Red}b^2-4ac}}{\color{Green}2a}",
r"x\color{red}\neq y=z",
r"x{\color{red}\neq} y=z",
r"x\color{red}\neq\color{black} y=z",
r"\frac{-b\color{Green}\pm\sqrt{b^2\color{Blue}-4{\color{Red}a}c}}{2a}=x",
r"{\color{Blue}x^2}+{\color{Orange}2x}-{\color{LimeGreen}1}",
r"\color{Blue}x^2\color{Black}+\color{Orange}2x\color{Black}-\color{LimeGreen}1"
);
round_trip_display!(quadratic_polynomial, r"ax^2 + bx + c = 0");
round_trip_display!(quadratic_formula, r"x = \frac{-b\pm\sqrt{b^2-4ac}}{2a}");
round_trip_display!(
tall_parentheses_and_fractions,
r"2 = \left( \frac{\left(3-x\right) \times 2}{3-x} \right)",
r"S_{\text{new}} = S_{\text{old}} - \frac{ \left( 5-T \right) ^2} {2}",
r"\phi_n(\kappa) = 0.033C_n^2\kappa^{-11/3},\quad \frac{1}{L_0}\ll\kappa\ll\frac{1}{l_0}"
);
round_trip_display!(
integrals,
r"\int_a^x \int_a^s f(y)\,dy\,ds = \int_a^x f(y)(x-y)\,dy",
r"\int_e^{\infty}\frac {1}{t(\ln t)^2}dt = \left. \frac{-1}{\ln t} \right\vert_e^\infty = 1"
);
round_trip_display!(
matrices_and_determinants,
r"\det(\mathsf{A}-\lambda\mathsf{I}) = 0"
);
round_trip_display!(
summation,
r"\sum_{i=0}^{n-1} i",
r"\sum_{m=1}^\infty\sum_{n=1}^\infty\frac{m^2 n}{3^m\left(m 3^n + n 3^m\right)}"
);
round_trip_display!(
differential_equations,
r"u'' + p(x)u' + q(x)u=f(x),\quad x>a"
);
round_trip_display!(
complex_numbers,
r"|\bar{z}| = |z|,
|(\bar{z})^n| = |z|^n,
\arg(z^n) = n \arg(z)"
);
round_trip_display!(limits, r"\lim_{z\to z_0} f(z)=f(z_0)");
round_trip_display!(
integral_equation,
r"\phi_n(\kappa) =
\frac{1}{4\pi^2\kappa^2} \int_0^\infty
\frac{\sin(\kappa R)}{\kappa R}
\frac{\partial}{\partial R}
\left [ R^2\frac{\partial D_n(R)}{\partial R} \right ] \,dR"
);
round_trip_display!(
continuation_and_cases,
r"f(x) =
\begin{cases}
1 & -1 \le x < 0 \\
\frac{1}{2} & x = 0 \\
1 - x^2 & \text{otherwise}
\end{cases}"
);
round_trip_display!(
prefixed_subscript,
r"{}_pF_q(a_1,\dots,a_p;c_1,\dots,c_q;z)
= \sum_{n=0}^\infty
\frac{(a_1)_n\cdots(a_p)_n}{(c_1)_n\cdots(c_q)_n}
\frac{z^n}{n!}"
);
round_trip_display!(fraction_and_small_fraction, r"\frac{a}{b}\ \tfrac{a}{b}");
round_trip_display!(area_of_quadrilateral, r"S=dD\sin\alpha");
round_trip_display!(
volume_of_sphere_stand,
r"V = \frac{1}{6} \pi h \left [ 3 \left ( r_1^2 + r_2^2 \right ) + h^2 \right ]"
);
round_trip_display!(
multiple_equations,
r"\begin{align}
u & = \tfrac{1}{\sqrt{2}}(x+y) \qquad & x &= \tfrac{1}{\sqrt{2}}(u+v) \\[0.6ex]
v & = \tfrac{1}{\sqrt{2}}(x-y) \qquad & y &= \tfrac{1}{\sqrt{2}}(u-v)
\end{align}"
);