LaTeX
Makie can render LaTeX strings from the LaTeXStrings.jl package using MathTeXEngine.jl.
This engine supports a subset of LaTeX's most used commands, which are rendered quickly enough for responsive use in GLMakie.
Using L-strings
You can pass LaTeXString
objects to almost any object with text labels. They are constructed using the L
string macro prefix. The whole string is interpreted as an equation if it doesn't contain an unescaped $
.
using CairoMakie
f = Figure(fontsize = 18)
Axis(f[1, 1],
title = L"\frac{x + y}{\sin(k^2)}",
xlabel = L"\sum_a^b{xy}",
ylabel = L"\sqrt{\frac{a}{b}}"
)
f
You can also mix math-mode and text-mode. For string interpolation use %$
instead of $
:
using CairoMakie
f = Figure(fontsize = 18)
t = "text"
Axis(f[1,1], title=L"Some %$(t) and some math: $\frac{2\alpha+1}{y}$")
f
Caveats
You can currently not change a text object which has been instantiated with a normal String
input to use a LaTeXString
. If you do this, the LaTeXString
is converted to a String
implicitly, losing its special properties. Instead it appears with $
signs wrapped around.
Notice how the second axis loses its LaTeX title. You have to pass the L-string at axis construction.
using CairoMakie
f = Figure(fontsize = 18)
Axis(f[1, 1], title = L"\frac{x + y}{\sin(k^2)}")
ax2 = Axis(f[1, 2])
ax2.title = L"\frac{x + y}{\sin(k^2)}"
f
For implicitly created axes, you can do this via the axis
keyword argument.
scatter(randn(50, 2), axis = (; title = L"\frac{x + y}{\sin(k^2)}"))
These docs were autogenerated using Makie: v0.17.2, GLMakie: v0.6.2, CairoMakie: v0.8.2, WGLMakie: v0.6.2