README.md

latexSymb

Transform complex LaTex mathematical expressions into readable, composable R code. Instead of wrestling with backslashes and braces, express your mathematics naturally using familiar R syntax.

✨ Why latexSymb?

Before (Raw LaTex) 😓

\frac{d}{dt} \left \langle V,W \right \rangle = \left \langle \frac{DV}{dt}, W \right \rangle + \left \langle V, \frac{DW}{dt} \right \rangle

After (latexSymb) 🎉

vf1 <- lsymb("V")
vf2 <- lsymb("W")
inner <- function(x, y) ang(lsymb(x, ",", y))
cov.der <- function(x) lsymb("D", x) / "dt"
ddt <- function(x) lsymb("d", x) / "dt"

ddt(inner(vf1, vf2)) *eq* inner(cov.der(vf1), vf2) + inner(vf1, cov.der(vf2))

🚀 Key Features

1. Natural Mathematical Syntax

# Division automatically becomes \frac
x / y               # → \frac{x}{y}

# Powers become superscripts
x^2                 # → x^{2}

# Subscripts with under()
x |> under(i)       # → x_{i}

2. Automatic Delimiter Sizing

No more \left and \right headaches!

pths(x / y)         # Parentheses with auto-sizing
ang(x, y)           # Angle brackets ⟨x,y⟩
sqbr(x + y)         # Square brackets [x+y]
br(condition)       # Braces {condition}

3. Composable Mathematical Functions

Build complex expressions from simple, reusable parts:

# Define semantic functions
exp_val <- function(x) lsymb("\\mathbb{E}") * sqbr(x)
sq <- function(x) pths(x)^2
abs <- function(x) lsymb("\\abs{", x, "}")

# Compose naturally
exp_val(sq(abs(x) - y))     # → 𝔼[(|x| - y)²]

4. Multi-line Equations Made Simple

proof_steps <- list(
  ruler * dist(x, y) * leq * dist(x, z) + dist(z, y) * endl,
  ruler * thus * dist(x, y) - dist(x, z) * leq * dist(z, y)
) |>
  lenv("align*", rows = _)

5. Common Symbols Pre-loaded

data(common)
attach(common)
# Instantly use: alpha, beta, mu, sigma, eq, leq, sum, int, infty...

📦 Installation

Released version from CRAN:

install.packages("latexSymb")

Development version from GitHub:

# install.packages("devtools")
devtools::install_github("nicoesve/latexSymb")

🎓 Quick Example: Central Limit Theorem

library(latexSymb)
data(common)
attach(common)

# Define components
sample_mean <- lsymb("\\bar{x}")
sqrt <- function(x) lsymb("\\sqrt{", x, "}")
conv_distr <- lsymb("\\overset{d}{\\rightarrow}")

# Express the theorem
clt <- sqrt(n) * (pths(sample_mean - mu) / si) * conv_distr * lsymb("N(0,1)")

📚 Learn More

🎯 Perfect For

Stop fighting with LaTex syntax. Start expressing your mathematics naturally with latexSymb!



Try the latexSymb package in your browser

Any scripts or data that you put into this service are public.

latexSymb documentation built on June 17, 2025, 9:12 a.m.