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.
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ên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
tex | query|body | string | có | Công thức LaTeX, không kèm dấu $ (tối đa 5000 ký tự). | |
format | query|body | string | không | svg | svg, png, mathml hoặc json. |
display | query|body | boolean | không | true | false để dùng kiểu công thức trong dòng. |
size | query|body | number | không | 24 | Cỡ chữ, px (8–200). |
color | query|body | string | không | #000000 | Màu công thức. |
background | query|body | string | không | Màu nền (mặc định trong suốt). | |
padding | query|body | number | không | Lề, px (mặc định: một phần tư size). | |
scale | query|body | number | không | 2 | Tỷ 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"const res = await fetch('https://apibox.io.vn/v1/math-render?tex=E%20%3D%20mc%5E2&format=json', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/math-render?tex=E%20%3D%20mc%5E2&format=json",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/math-render?tex=E%20%3D%20mc%5E2&format=json');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));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
Tạo mã QR
Tạo mã QR dạng PNG hoặc SVG chỉ với một request GET: link, văn bản, WiFi, danh thiếp vCard, e-mail, SMS, số điện thoại, toạ độ. Tuỳ chỉnh màu, kích thước.
|||Tạo mã vạch
Tạo mã vạch Code 128 cho tem nhãn, mã SKU, vận đơn chỉ với một request. Xuất SVG kèm dòng chữ hoặc PNG, tuỳ chỉnh chiều cao, độ rộng và màu sắc.
▭Ảnh placeholder
Lấy ảnh giữ chỗ đúng kích thước cho mockup và test: /v1/placeholder/600x400.png. Xuất SVG với chữ và màu tuỳ chỉnh, hoặc PNG một màu.