Hiển thị công thức LaTeX API

Chuyển công thức LaTeX (phân số, căn, tổng, tích phân, ma trận, hóa học \ce) sang SVG, PNG hoặc MathML cho web, email, PDF và đề thi.

GETPOSThttps://apibox.io.vn/v1/math-render

Gửi công thức LaTeX trong tex và chọn định dạng: svg (mặc định, độc lập: ký tự là đường vector, không cần phông), png (nền trong suốt hoặc background, mặc định scale 2 cho chữ nét), mathml (MathML gốc, trình duyệt hiện nay hiển thị được) hoặc json (MathML, đoạn HTML, SVG, PNG dạng base64, kích thước và độ lệch vertical_align để ảnh thẳng hàng với chữ xung quanh). display=false cho kiểu công thức trong dòng (phân số nhỏ, giới hạn đặt cạnh dấu ∑).

LaTeX được phân tích bằng temml (MIT), hỗ trợ phần toán thông dụng như KaTeX: phân số, tổ hợp, căn, chỉ số trên dưới, tổng và tích phân có cận, cặp ngoặc \left…\right, ma trận, cases, aligned, dấu mũ, \mathbb / \mathcal / \mathbf, \text{} (gõ tiếng Việt được), màu sắc và \ce{} (mhchem) cho Hóa học. Sau đó MathML được dàn trang bằng bộ dàn hộp kiểu TeX do chúng tôi tự viết và vẽ bằng phông STIX Two Math (SIL OFL); máy chủ không chạy MathJax hay trình duyệt. Có thể đặt size (cỡ chữ px, mặc định 24), color và padding.

Dàn trang SVG / PNG là bản xấp xỉ TeX: khoảng cách và ngoặc co giãn (được kéo giãn chứ không ghép từ nhiều mảnh) có thể hơi khác KaTeX hay MathJax, và lệnh xuống dòng (\\ ngoài môi trường) bị bỏ qua. LaTeX sai cú pháp trả lỗi 400 kèm thông báo của bộ phân tích.

Tham số

TênVị tríKiểuBắt buộcMặc định
texquery|bodystringcóCông thức LaTeX, không kèm dấu $ (tối đa 5000 ký tự).
formatquery|bodystringkhôngsvgsvg, png, mathml hoặc json.
displayquery|bodybooleankhôngtruefalse để dùng kiểu công thức trong dòng.
sizequery|bodynumberkhông24Cỡ chữ, px (8–200).
colorquery|bodystringkhông#000000Màu công thức.
backgroundquery|bodystringkhôngMàu nền (mặc định trong suốt).
paddingquery|bodynumberkhôngLề, px (mặc định: một phần tư size).
scalequery|bodynumberkhông2Tỷ lệ điểm ảnh của PNG (1–8).

Ví dụ

curl "https://apibox.io.vn/v1/math-render?tex=E%20%3D%20mc%5E2&format=json" \
  -H "Authorization: Bearer YOUR_API_KEY"

Kết quả trả về

{
  "tex": "E = mc^2",
  "display": true,
  "mathml": "<math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\" class=\"tml-display\" style=\"display:block math;\"><mrow><mi>E</mi><mo>=</mo><mi>m</mi><msup><mi>c</mi><mn class=\"tml-sml-pad\">2</mn></msup></mrow></math>",
  "html": "<div style=\"text-align:center\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\" …</math></div>",
  "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"99\" height=\"34\" viewBox=\"0 0 99 34\" role=\"img\">…</svg>",
  "width": 99,
  "height": 34,
  "vertical_align": "-6.29px",
  "png_base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMYAAABECAYAAADa40qO…",
  "png_scale": 2,
  "engine": "temml (LaTeX to MathML) + own box layout with STIX Two Math outlines"
}

Ứng dụng

  • Công thức trong đề thi, bài trắc nghiệm, nội dung học trực tuyến
  • Gửi công thức qua email, tin nhắn dưới dạng ảnh PNG
  • Công thức trong file PDF, slide tạo tự động
  • Xem trước LaTeX do học sinh, giáo viên nhập

Hỏi đáp

Hỗ trợ những lệnh LaTeX nào?

Các lệnh của temml, tương tự KaTeX: toán thông dụng, môi trường (matrix, pmatrix, cases, aligned, array), \text, \operatorname, \color, \boxed, \cancel và \ce cho Hóa học. Lệnh không biết sẽ trả lỗi 400.

Làm sao để ảnh thẳng hàng với chữ?

Dùng format=json: vertical_align (ví dụ -6.29px) là khoảng từ đường chân chữ tới đáy ảnh; đặt giá trị này vào CSS vertical-align của thẻ <img>.

SVG có hỗ trợ trình đọc màn hình không?

SVG chỉ là hình vẽ. Với trình đọc màn hình, hãy dùng MathML (format=mathml hoặc trường html của json), trình duyệt đọc được như công thức toán.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →