Skip to content

Commit b93767e

Browse files
shashiYingboMa
andcommitted
fix latexify
Co-authored-by: "Yingbo Ma" <[email protected]>
1 parent 8170b05 commit b93767e

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

src/latexify_recipes.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
prettify_expr(expr) = expr
2+
prettify_expr(f::Function) = Base.isoperator(nameof(f)) ? nameof(f) : f
3+
prettify_expr(expr::Expr) = Expr(expr.head, prettify_expr.(expr.args)...)
4+
15
@latexrecipe function f(eqs::Vector{ModelingToolkit.Equation})
26
# Set default option values.
37
env --> :align
@@ -7,13 +11,13 @@
711
# that latexify can deal with
812

913
rhs = getfield.(eqs, :rhs)
10-
rhs = toexpr.(rhs)
14+
rhs = prettify_expr.(toexpr.(rhs))
1115
rhs = [postwalk(x -> x isa Expr && length(x.args) == 1 ? x.args[1] : x, eq) for eq in rhs]
1216
rhs = [postwalk(x -> x isa Expr && x.args[1] == :derivative && length(x.args[2].args) == 2 ? :($(Symbol(:d, x.args[2]))/($(Symbol(:d, x.args[2].args[2])))) : x, eq) for eq in rhs]
1317
rhs = [postwalk(x -> x isa Expr && x.args[1] == :derivative ? "\\frac{d\\left($(Latexify.latexraw(x.args[2]))\\right)}{d$(Latexify.latexraw(x.args[3]))}" : x, eq) for eq in rhs]
1418

1519
lhs = getfield.(eqs, :lhs)
16-
lhs = toexpr.(lhs)
20+
lhs = prettify_expr.(toexpr.(lhs))
1721
lhs = [postwalk(x -> x isa Expr && length(x.args) == 1 ? x.args[1] : x, eq) for eq in lhs]
1822
lhs = [postwalk(x -> x isa Expr && x.args[1] == :derivative && length(x.args[2].args) == 2 ? :($(Symbol(:d, x.args[2]))/($(Symbol(:d, x.args[2].args[2])))) : x, eq) for eq in lhs]
1923
lhs = [postwalk(x -> x isa Expr && x.args[1] == :derivative ? "\\frac{d\\left($(Latexify.latexraw(x.args[2]))\\right)}{d$(Latexify.latexraw(x.args[3]))}" : x, eq) for eq in lhs]

test/latexify.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ eqs = [D(x) ~ σ*(y-x)*D(x-y)/D(z),
2727
D(z) ~ x*y^(2//3) - β*z]
2828

2929
@test latexify(eqs) == raw"""\begin{align}
30-
\frac{dx(t)}{dt} =& /\left( *\left( *\left( \sigma, -\left( y\left( t \right), x\left( t \right) \right) \right), \frac{d\left(-\left( x\left( t \right), y\left( t \right) \right)\right)}{dt} \right), \frac{dz(t)}{dt} \right) \\
31-
0 =& -\left( /\left( *\left( *\left( \sigma, x\left( t \right) \right), -\left( \rho, z\left( t \right) \right) \right), 10 \right), y\left( t \right) \right) \\
32-
\frac{dz(t)}{dt} =& -\left( *\left( x\left( t \right), ^\left( y\left( t \right), \frac{2}{3} \right) \right), *\left( \beta, z\left( t \right) \right) \right)
30+
\frac{dx(t)}{dt} =& \frac{\sigma \left( y\left( t \right) - x\left( t \right) \right) \frac{d\left(x\left( t \right) - y\left( t \right)\right)}{dt}}{\frac{dz(t)}{dt}} \\
31+
0 =& \frac{\sigma x\left( t \right) \left( \rho - z\left( t \right) \right)}{10} - y\left( t \right) \\
32+
\frac{dz(t)}{dt} =& x\left( t \right) \left( y\left( t \right) \right)^{\frac{2}{3}} - \beta z\left( t \right)
3333
\end{align}
3434
"""
3535
@parameters t p[1:3]
@@ -42,9 +42,9 @@ eqs = [D(u[1]) ~ p[3]*(u[2]-u[1]),
4242

4343
@test latexify(eqs) ==
4444
raw"\begin{align}
45-
\frac{du_1(t)}{dt} =& *\left( p_3, -\left( \mathrm{u_2}\left( t \right), \mathrm{u_1}\left( t \right) \right) \right) \\
46-
0 =& -\left( /\left( *\left( *\left( *\left( p_2, p_3 \right), \mathrm{u_1}\left( t \right) \right), -\left( p_1, \mathrm{u_1}\left( t \right) \right) \right), 10 \right), \mathrm{u_2}\left( t \right) \right) \\
47-
\frac{du_3(t)}{dt} =& -\left( *\left( \mathrm{u_1}\left( t \right), ^\left( \mathrm{u_2}\left( t \right), \frac{2}{3} \right) \right), *\left( p_3, \mathrm{u_3}\left( t \right) \right) \right)
45+
\frac{du_1(t)}{dt} =& p_3 \left( \mathrm{u_2}\left( t \right) - \mathrm{u_1}\left( t \right) \right) \\
46+
0 =& \frac{p_2 p_3 \mathrm{u_1}\left( t \right) \left( p_1 - \mathrm{u_1}\left( t \right) \right)}{10} - \mathrm{u_2}\left( t \right) \\
47+
\frac{du_3(t)}{dt} =& \mathrm{u_1}\left( t \right) \left( \mathrm{u_2}\left( t \right) \right)^{\frac{2}{3}} - p_3 \mathrm{u_3}\left( t \right)
4848
\end{align}
4949
"
5050

@@ -56,8 +56,8 @@ sys = ODESystem(eqs)
5656

5757
@test latexify(eqs) ==
5858
raw"\begin{align}
59-
\frac{du_1(t)}{dt} =& *\left( p_3, -\left( \mathrm{u_2}\left( t \right), \mathrm{u_1}\left( t \right) \right) \right) \\
60-
\frac{du_2(t)}{dt} =& -\left( /\left( *\left( *\left( *\left( p_2, p_3 \right), \mathrm{u_1}\left( t \right) \right), -\left( p_1, \mathrm{u_1}\left( t \right) \right) \right), 10 \right), \mathrm{u_2}\left( t \right) \right) \\
61-
\frac{du_3(t)}{dt} =& -\left( *\left( \mathrm{u_1}\left( t \right), ^\left( \mathrm{u_2}\left( t \right), \frac{2}{3} \right) \right), *\left( p_3, \mathrm{u_3}\left( t \right) \right) \right)
59+
\frac{du_1(t)}{dt} =& p_3 \left( \mathrm{u_2}\left( t \right) - \mathrm{u_1}\left( t \right) \right) \\
60+
\frac{du_2(t)}{dt} =& \frac{p_2 p_3 \mathrm{u_1}\left( t \right) \left( p_1 - \mathrm{u_1}\left( t \right) \right)}{10} - \mathrm{u_2}\left( t \right) \\
61+
\frac{du_3(t)}{dt} =& \mathrm{u_1}\left( t \right) \left( \mathrm{u_2}\left( t \right) \right)^{\frac{2}{3}} - p_3 \mathrm{u_3}\left( t \right)
6262
\end{align}
6363
"

0 commit comments

Comments
 (0)