📚 Tài liệu hướng dẫn TikZ2SVG

Hướng dẫn đầy đủ về cách sử dụng TikZ2SVG API

🚀 Giới thiệu tổng quan

Mô tả ứng dụng

TikZ2SVG API là một web application mạnh mẽ cho phép chuyển đổi TikZ LaTeX code thành các file SVG vector graphics chất lượng cao. Ứng dụng cung cấp giao diện thân thiện, hệ thống quản lý file, tương tác xã hội và API mở cho developers.

✨ Tính năng chính

🤖

AI-powered Generation

Tạo mã TikZ từ mô tả bằng tiếng Việt/Anh

Biên dịch Real-time

Preview ngay lập tức với auto-detection packages thông minh

🌏

Unicode đầy đủ

Hỗ trợ tiếng Việt, Trung, Nhật, Hàn với LuaLaTeX + fontspec

🎨

Quản lý File

Like/unlike, follow/unfollow system hoàn chỉnh

💬

Comments System

Bình luận với LaTeX & TikZ code sharing

🔄

Chuyển đổi định dạng

SVG → PNG/JPEG với tùy chọn size, DPI

🛠️ Công nghệ sử dụng

  • Backend: Python Flask, MySQL, LuaLaTeX, pdf2svg
  • Frontend: Bootstrap 5, JavaScript ES6+, CodeMirror
  • Email: Zoho Mail SMTP với rate limiting
  • Security: OAuth 2.0 (Google), CSRF protection, input validation
  • Performance: Caching, async processing, image optimization

📋 Hướng dẫn bắt đầu nhanh

1

Đăng ký tài khoản

  1. Truy cập trang chủ tại /
  2. Nhấn "Đăng nhập" → Chọn "Google OAuth"
  3. Authorize ứng dụng với Google account của bạn
  4. Tự động tạo profile với thông tin cơ bản từ Google
2

Chuyển đổi TikZ đầu tiên

  1. Nhập TikZ code vào code editor (CodeMirror)
  2. Nhấn "Biên dịch" → Hệ thống tự động phát hiện packages
  3. Xem preview SVG ngay lập tức ở phần kết quả
  4. Tải về hoặc lưu file SVG vào account
Ví dụ TikZ code đơn giản
\begin{tikzpicture}
  \draw (0,0) circle (1cm);
  \node at (0,0) {Hello World};
\end{tikzpicture}
3

Lưu và quản lý file

  1. Nhấn "Lưu SVG" sau khi biên dịch thành công
  2. Nhập keywords/tags để dễ tìm kiếm sau này
  3. Xem file đã lưu trong section "Các file SVG đã tạo"
  4. Sử dụng menu actions trên mỗi file card để quản lý

🤖 Tạo TikZ từ mô tả (AI-powered)

Giới thiệu tính năng

TikZ Generation from Prompt là tính năng AI-powered cho phép bạn tạo mã TikZ tự động từ mô tả bằng tiếng Việt hoặc tiếng Anh. Đây là tính năng độc đáo giúp người dùng không cần biết cú pháp TikZ vẫn có thể tạo ra các hình vẽ phức tạp.

✨ Lợi ích

  • 🚀 Tiết kiệm thời gian: Không cần viết code từ đầu
  • 📚 Học TikZ: Xem code được tạo để học cú pháp
  • 💡 Sáng tạo nhanh: Thử nghiệm ý tưởng một cách nhanh chóng
  • 🌐 Đa ngôn ngữ: Hỗ trợ cả tiếng Việt và tiếng Anh

Cách sử dụng

1

Truy cập tính năng

  • Đăng nhập vào tài khoản (bắt buộc)
  • Vào trang chủ hoặc trang biên dịch TikZ
  • Tìm section "🤖 Tạo TikZ từ mô tả"
2

Nhập mô tả

  • Nhập mô tả hình vẽ bạn muốn tạo
  • Mô tả chi tiết: Càng cụ thể càng tốt
  • Giới hạn: Tối đa 500 ký tự
Ví dụ mô tả tốt
Vẽ một đường tròn màu xanh bán kính 2cm, 
bên trong có một tam giác đều màu đỏ
3

Tạo và sử dụng

  • Click nút "🚀 Tạo mã TikZ"
  • Chờ AI xử lý (3-5 giây)
  • Xem kết quả với syntax highlighting
  • Copy hoặc sử dụng mã trong editor chính

Giới hạn và Rate Limiting

  • ⏱️ Rate Limiting: 10 yêu cầu / 10 phút mỗi user
  • 📝 Độ dài mô tả: Tối đa 500 ký tự
  • Timeout: 30 giây (nếu API không phản hồi)
  • 🔐 Yêu cầu đăng nhập: Phải có tài khoản

Tips để có kết quả tốt

✅ Nên làm

  • Mô tả cụ thể và rõ ràng về hình vẽ
  • Nêu màu sắc, kích thước, vị trí nếu cần
  • Sử dụng thuật ngữ toán học chính xác
  • Chia nhỏ thành nhiều yêu cầu đơn giản

❌ Không nên

  • Mô tả quá mơ hồ hoặc chung chung
  • Yêu cầu quá nhiều chi tiết trong một lần
  • Dùng ngôn ngữ không rõ ràng
  • Mong đợi kết quả hoàn hảo 100% ngay lần đầu

Ví dụ thực tế

Ví dụ 1: Hình học cơ bản
Mô tả:
Vẽ tam giác ABC với A(0,0), B(4,0), C(2,3).
Tô màu vàng, viền đen dày 2pt.

Kết quả:
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,0);
\coordinate (C) at (2,3);
\draw[fill=yellow, draw=black, line width=2pt] (A) -- (B) -- (C) -- cycle;
\node[below] at (A) {A};
\node[below] at (B) {B};
\node[above] at (C) {C};
\end{tikzpicture}
Ví dụ 2: Biểu đồ toán học
Mô tả:
Draw a coordinate system from -2 to 2 on both axes.
Plot the function y = x^2 in red and y = 2x in blue.
Add grid and axis labels.

Kết quả:
\begin{tikzpicture}
\begin{axis}[
    xmin=-2, xmax=2,
    ymin=-2, ymax=4,
    grid=both,
    xlabel={$x$},
    ylabel={$y$}
]
\addplot[red, thick, domain=-2:2] {x^2};
\addplot[blue, thick, domain=-2:2] {2*x};
\legend{$y=x^2$, $y=2x$}
\end{axis}
\end{tikzpicture}

FAQ về tính năng AI

Q: AI tạo mã có chính xác 100% không?

A: Không, AI có thể tạo mã cần chỉnh sửa nhỏ. Hãy xem đây là điểm khởi đầu và tùy chỉnh theo ý bạn.

Q: Tôi có thể yêu cầu AI tạo lại không?

A: Có, click "Tạo mới" và nhập mô tả khác. Mỗi lần tạo có thể cho kết quả khác nhau.

Q: Tính năng này có miễn phí không?

A: Có, hoàn toàn miễn phí với giới hạn 10 yêu cầu/10 phút.

Q: AI có hiểu tiếng Việt không?

A: Có, AI hỗ trợ cả tiếng Việt và tiếng Anh.

🔧 Chức năng biên dịch chi tiết

Trình biên dịch TikZ cơ bản

  • Input: CodeMirror editor với syntax highlighting
  • Auto-detection: Tự động phát hiện packages, TikZ libraries, PGFPlots libraries
  • Compilation: LuaLaTeX → PDF → SVG (pdf2svg)
  • Preview: Real-time SVG preview với zoom/pan
  • Error handling: Chi tiết log lỗi LaTeX với line numbers

Auto-detection thông minh

Hệ thống tự động phát hiện các packages sau:

📦 LaTeX Packages cơ bản

  • Nền tảng: fontspec, polyglossia, xcolor, graphicx, geometry, setspace
  • Toán học: amsmath, amssymb, amsfonts, mathtools, physics, siunitx, cancel, cases
  • TikZ/PGF: tikz, pgfplots, tikz-3dplot, tkz-euclide, tkz-tab, pgf, pgfkeys, pgfornament
  • Chuyên biệt: circuitikz, tikz-timing, tikz-cd, tikz-network, tikzpeople, tikzmark
  • Bảng biểu: array, booktabs, multirow, colortbl, longtable, tabularx

🎨 TikZ Libraries

  • Tính toán: calc, math, positioning, arrows.meta, intersections
  • Hình học: angles, quotes, shapes.geometric, shapes.symbols, shapes.arrows
  • Trang trí: decorations.markings, decorations.pathreplacing, decorations.text
  • Hiệu ứng: patterns, shadings, hobby, spy, backgrounds, fadings, shadows
  • Cấu trúc: fit, matrix, chains, automata, petri, mindmap, trees

📊 PGFPlots Libraries

  • polar, statistics, dateplot, fillbetween, colorbrewer
  • groupplots, ternary, smithchart, units
💡 Lưu ý: Đây là danh sách đầy đủ các packages được phép sử dụng. Hệ thống sẽ tự động phát hiện khi bạn sử dụng các lệnh như \draw, \node, \addplot, etc.

🌏 Unicode & Multi-language Support

✅ Hệ thống hỗ trợ Unicode đầy đủ

  • ✅ Hệ thống hỗ trợ ĐẦY ĐỦ chữ Trung/Nhật/Hàn (CJK characters)
  • ✅ Người dùng CHỈ CẦN thêm \setmainfont{STSong} để hiển thị chữ CJK
  • KHÔNG CẦN sửa app.py hay thêm package
  • LuaLaTeX + fontspec = Unicode native support HOÀN HẢO

Ví dụ sử dụng chữ CJK

Tiếng Trung, Nhật, Hàn
\setmainfont{STSong}  % Chỉ cần thêm dòng này!

\begin{tikzpicture}
  \node {中文: 富贵};                    % Tiếng Trung
  \node at (0,-1) {日本語: こんにちは};    % Tiếng Nhật
  \node at (0,-2) {한국어: 안녕하세요};    % Tiếng Hàn
\end{tikzpicture}

Fonts CJK có sẵn

  • STSong (宋体) - ✅ Khuyến nghị cho văn bản thông thường
  • Heiti TC/SC (黑体) - Chữ đậm, tiêu đề
  • Kaiti TC/SC (楷书) - Thư pháp, chữ viết tay đẹp

⚠️ Lưu ý quan trọng

  • KHÔNG dùng %!<CJKutf8> (xung đột với LuaLaTeX + fontspec)
  • KHÔNG dùng \begin{CJK*}{UTF8}{gbsn}...\end{CJK*} (cú pháp cũ)
  • CHỈ CẦN \setmainfont{STSong} (hoặc font CJK khác)
  • ✅ Tiếng Việt hoạt động HOÀN HẢO không cần font đặc biệt

📦 Manual Package Specification

Khi nào cần sử dụng?

  • ✅ Hệ thống không tự động phát hiện package cần thiết
  • ✅ Packages ít phổ biến hoặc mới
  • ✅ Cần kiểm soát chính xác packages được load

Cú pháp: %!<commands>

Ví dụ đơn giản
%!<\usepackage{pgfornament}>
\begin{tikzpicture}
\pgfornament[width=2cm]{15}
\end{tikzpicture}
Package with options (⭐ MỚI)
%!<\usepackage[siunitx]{circuitikz}>
\begin{tikzpicture}
\draw (0,0) to[R=1<\ohm>] (2,0)
          to[L=1<\henry>] (4,0)
          to[C=1<\farad>] (6,0);
\end{tikzpicture}
Multiple packages (1 dòng)
%!<\usepackage{circuitikz},\usepackage{pgfornament}>
\begin{tikzpicture}
\draw (0,0) to[R, o-o] (2,0);
\node at (3,0) {\pgfornament[width=1cm]{15}};
\end{tikzpicture}
Multiple packages (nhiều dòng)
%!<\usepackage{circuitikz}>
%!<\usepackage{pgfornament}>
\begin{tikzpicture}
\draw (0,0) to[R, o-o] (2,0);
\node at (3,0) {\pgfornament[width=1cm]{15}};
\end{tikzpicture}
Kết hợp packages và libraries
%!<\usepackage{circuitikz},\usetikzlibrary{angles,quotes}>
\begin{tikzpicture}
\draw (0,0) to[R, o-o] (2,0);
\pic [draw, angle radius=5mm] {angle = A--B--C};
\end{tikzpicture}

Quy trình sử dụng

  1. ✍️ Viết TikZ code như bình thường
  2. 📦 Thêm dòng %!<...> ở đầu nếu cần package đặc biệt
  3. ⚡ Biên dịch → Hệ thống tự động xử lý
  4. ✅ Xem kết quả SVG như thường lệ

📮 Yêu cầu thêm Package mới

Khi nào cần sử dụng?

  • ❓ Package bạn cần chưa có trong danh sách hỗ trợ
  • 🆕 Muốn sử dụng package mới hoặc ít phổ biến
  • 🤝 Đóng góp mở rộng thư viện cho cộng đồng

Cách gửi yêu cầu

1

Truy cập trang Packages

  • Vào trang chủ → Click menu "📦 Packages"
  • Hoặc truy cập trực tiếp: /packages
  • Xem danh sách packages hiện có
2

Mở form yêu cầu

  • Cuộn xuống phần "Yêu cầu Package mới"
  • Click nút "🚀 Gửi yêu cầu Package"
  • Chuyển đến trang form /packages/request
3

Điền thông tin

  • Tên Package (bắt buộc): Nhập tên chính xác
  • Lý do yêu cầu (bắt buộc): Giải thích tại sao cần thiết
  • Ví dụ sử dụng (tùy chọn): Mô tả cụ thể cách sử dụng
  • Mức độ ưu tiên: Chọn độ khẩn cấp
4

Gửi yêu cầu

  • Kiểm tra lại thông tin
  • Click "🚀 Gửi yêu cầu"
  • Nhận thông báo xác nhận
⏱️ Giới hạn Rate Limiting: Tối đa 3 yêu cầu/giờ để tránh spam. Bạn sẽ nhận email thông báo khi yêu cầu được xử lý.

Quy trình xét duyệt

Pending

Yêu cầu đang chờ xử lý

🔍

Under Review

Admin đang xem xét

Approved

Đã phê duyệt, sẽ được thêm

Rejected

Bị từ chối (có lý do)

Thời gian xử lý

  • Khẩn cấp: 1-2 ngày làm việc
  • 🟠 Ưu tiên cao: 3-5 ngày làm việc
  • 🟡 Trung bình: 1-2 tuần
  • 🟢 Thấp: 2-4 tuần

Tips để yêu cầu được chấp nhận

✅ Nên làm

  • Nhập tên package chính xác
  • Giải thích rõ ràng lý do
  • Cung cấp ví dụ cụ thể
  • Đặt mức ưu tiên phù hợp
  • Kiểm tra package chưa tồn tại

❌ Không nên

  • Gửi yêu cầu package đã có
  • Viết lý do quá ngắn gọn
  • Spam nhiều yêu cầu giống nhau
  • Đặt "Khẩn cấp" khi không cần
  • Nhập sai tên package

🎨 Quản lý File SVG & Menu Actions

Giao diện File Card

Mỗi SVG file được hiển thị dưới dạng "thẻ" (card) bao gồm:

  • 📷 Ảnh preview: Hiển thị SVG đã tạo
  • 👤 Thông tin tác giả: Tên người tạo và thời gian
  • ❤️ Nút Like: Thể hiện sự yêu thích
  • Menu actions: Các hành động có thể thực hiện
  • 💻 Code section: TikZ code (có thể ẩn/hiện)

Cách sử dụng Menu Actions

🖥️ Trên máy tính (Desktop)

  • Di chuột qua file card → Menu tự động xuất hiện
  • Click vào button để thực hiện hành động

📱 Trên điện thoại (Mobile)

  • Tap 1 lần vào nút menu (⋯) → Hiện menu
  • Tap 2 lần vào action button → Thực hiện hành động

Các hành động có thể thực hiện

Hành động Mô tả Cần đăng nhập?
📥 Tải ảnh Xem chi tiết và tải file SVG về máy
📘 Facebook Copy link để chia sẻ lên Facebook
🔗 Copy Link Copy đường dẫn trực tiếp đến file SVG
💻 Xem Code Hiển thị/ẩn mã TikZ đã sử dụng
🗑️ Xóa file Xóa file SVG khỏi hệ thống ✅ (chủ sở hữu)

Hệ thống Like (Yêu thích)

Cách sử dụng

  1. Đăng nhập tài khoản (bắt buộc)
  2. Click vào nút ❤️ trên file card
  3. Trái tim chuyển màu đỏ → Đã like
  4. Click lại để unlike → Trái tim về màu xám

Xem danh sách người đã like

Click vào số lượt like (bên cạnh nút ❤️) để xem danh sách tất cả người đã like file đó. Modal sẽ hiện ra với avatar, username và thời gian like. Hỗ trợ phân trang (20 người/lần).

🔄 Chuyển đổi định dạng

Định dạng được hỗ trợ

  • SVG → PNG: Chuyển đổi raster với tùy chỉnh chiều rộng/cao/DPI
  • SVG → JPEG: Chuyển đổi chất lượng cao với tùy chọn nén
  • Xử lý hàng loạt: Chuyển đổi nhiều file cùng lúc

Cách chuyển đổi định dạng

1

Tạo SVG

  • Biên dịch TikZ code thành công
  • Lưu SVG vào tài khoản (nếu muốn)
2

Chuyển đổi

  • Click "📥 Tải ảnh" trên file card
  • Chọn định dạng: PNG hoặc JPEG
  • Tùy chỉnh kích thước (width, height, DPI)
  • Click "Convert" để bắt đầu
  • Tải file về máy khi hoàn tất

Giới hạn kích thước & Kiểm tra

  • Tối đa pixels: 60MP tổng cộng (60,000,000 pixels)
  • Tối đa DPI: 2000 DPI
  • Kiểm tra: Hệ thống kiểm tra trước khi chuyển đổi
  • Thông báo lỗi: Phản hồi rõ ràng khi vượt giới hạn

💬 Hệ thống Comments

Comments System cho phép người dùng trao đổi, thảo luận về TikZ code trực tiếp trên trang xem SVG. Hệ thống hỗ trợ LaTeX math, TikZ code sharing, và nested replies.

Tính năng chính

  • ✅ Bình luận & trả lời với cấu trúc thread (parent → replies)
  • ✅ LaTeX math support inline $x^2$ và display $$\int f(x) dx$$
  • ✅ TikZ code blocks với syntax \code{...} và copy button
  • ✅ Real-time preview MathJax rendering khi gõ
  • ✅ Like/Unlike comments để đánh giá chất lượng
  • ✅ Edit & Delete comments của chính mình
  • ✅ Pagination tự động load thêm comments

LaTeX Math Support

Inline math (trong dòng)

Syntax: $công thức$

Ví dụ: Công thức $E = mc^2$ rất nổi tiếng.

Display math (hiển thị riêng)

Syntax: $$công thức$$

Ví dụ: $$\int_0^\infty e^{-x} dx = 1$$

TikZ Code Blocks

Cú pháp chia sẻ TikZ code
Vẽ circle đơn giản:

\code{
\tikz \draw (0,0) circle (1cm);
}
💡 Đặc điểm:
  • ✅ Hỗ trợ nested braces không giới hạn độ sâu
  • ✅ Copy button một click copy toàn bộ code
  • ✅ Visual feedback 📋 → ✅ khi copy thành công
  • ✅ Syntax preservation giữ nguyên format

Like & Unlike Comments

  1. Đọc comment hữu ích hoặc hay
  2. Click nút 👍 ở footer comment
  3. Button chuyển màu xanh (liked state)
  4. Click lại để unlike → Button về trạng thái mặc định

Edit & Delete Comments

Edit comment

  • Click nút "✏️ Sửa" ở comment của bạn
  • Textarea hiện ra với nội dung cũ
  • Chỉnh sửa nội dung (vẫn support LaTeX & TikZ)
  • Click "Lưu" hoặc "Hủy"
  • Label "(đã chỉnh sửa)" hiển thị sau timestamp

Delete comment

  • Click nút "🗑️ Xóa" ở comment của bạn
  • Confirm dialog xuất hiện
  • Confirm xóa → Comment biến mất
  • Lưu ý: Xóa vĩnh viễn, không thể khôi phục

👤 Profile & Tương tác xã hội

Quản lý Profile

  • Tải ảnh đại diện: Hỗ trợ nhiều định dạng (PNG, JPG, GIF)
  • Chỉnh sửa tiểu sử: Soạn thảo rich text với hỗ trợ markdown
  • Trang cài đặt: /profile/{user_id}/settings
  • Profile công khai: /profile/{user_id} có thể xem bởi người khác

Follow/Unfollow System

Yêu cầu để Follow

  • Tài khoản đã xác thực: Cần xác thực email trước
  • 🚫 Không thể tự follow: Không thể follow chính mình
  • 👥 Theo dõi lẫn nhau: Có thể follow và được follow lại

Xem bài đăng từ người đã Follow

  1. Đăng nhập và xác thực tài khoản (bắt buộc)
  2. Follow các user mà bạn quan tâm
  3. Xem feed các SVG mới từ những người bạn follow
  4. Sắp xếp theo thời gian (mới nhất hiển thị trước)
  5. Tự động tải thêm khi cuộn xuống dưới

Tương tác xã hội

  • ❤️ Like/Unlike: Thể hiện sở thích với SVG của người khác
  • 👀 Xem profile: Click vào tên tác giả để xem profile
  • 👥 Follow từ profile: Follow người dùng từ trang profile
  • 📋 Theo dõi hoạt động: Xem timeline các SVG mới

🛡️ Xác thực danh tính & Bảo mật

Tại sao cần xác thực?

  • 🔒 Bảo mật cao hơn: Xác nhận email thật
  • 👥 Unlock features: Follow/Unfollow yêu cầu verified account
  • Uy tín: Badge "Đã xác thực" tăng trust
  • 🚀 Priority access: Features mới ưu tiên cho verified users

Quy trình xác thực 5 bước

1

Kiểm tra trạng thái

Vào Profile Settings → Xem verification status

2

Bắt đầu xác thực

Nhấn "Xác thực tài khoản" → Đọc Terms & Conditions → "Tôi đồng ý"

3

Nhận email

Hệ thống gửi 6-digit code đến email. Check Inbox và Spam folder. Mã có hiệu lực 24 giờ.

4

Nhập mã

Enter chính xác 6 digits từ email. Max 5 attempts. Nhấn "Xác thực".

5

Hoàn tất

Status chuyển thành "✅ Đã xác thực". Badge icon xuất hiện. Unlock Follow/Unfollow.

Lợi ích khi xác thực

🔓

Tính năng mở khóa

  • Follow/Unfollow người dùng
  • Xem bài đăng từ người đã follow
  • Thông báo email
  • Hỗ trợ ưu tiên
🛡️

Bảo mật nâng cao

  • Khôi phục tài khoản qua email
  • Thông báo bảo mật
  • Xác thực hai yếu tố (sắp ra mắt)

🛠️ Xử lý lỗi & Troubleshooting

Lỗi biên dịch LaTeX

❌ Thiếu Packages

Error: ! LaTeX Error: File 'pgfornament.sty' not found.

Solutions:

  • Use manual package specification: %!<\usepackage{pgfornament}>
  • Check package name spelling
  • Verify package is in allowlist

❌ Lỗi cú pháp

Error: ! Missing $ inserted.

Solutions:

  • Check TikZ code syntax
  • Ensure proper math mode delimiters
  • Validate bracket matching

❌ Vấn đề bộ nhớ/Timeout

Error: Compilation timeout after 30 seconds

Solutions:

  • Simplify complex diagrams
  • Reduce number of plot points
  • Optimize loops và calculations

Vấn đề Upload/Lưu file

Giới hạn dung lượng file

  • SVG files: Max 10MB
  • Converted images: Max 60MP (60M pixels)
  • DPI limit: Max 2000 DPI

Vấn đề xác thực

  • Google OAuth: Check OAuth settings, scope permissions
  • Email not received: Check spam folder, wait 2-3 minutes
  • Code expired: Request new verification code
  • Max attempts: Wait 24 hours for reset

Tương thích trình duyệt

  • Modern browsers: Chrome 80+, Firefox 75+, Safari 13+
  • JavaScript required: Enable JavaScript for full functionality
  • Cookies required: Enable cookies for authentication
  • Local storage: Required for user preferences

💡 Tips & Best Practices

TikZ Code Examples Library

Basic Shapes
% Circle with label
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\node at (0,0) {Center};
\end{tikzpicture}

% Rectangle with rounded corners
\begin{tikzpicture}
\draw[rounded corners=5pt] (0,0) rectangle (3,2);
\end{tikzpicture}
Mathematical Diagrams
% Function plot
\begin{tikzpicture}
\begin{axis}[domain=-2:2]
\addplot {x^2};
\end{axis}
\end{tikzpicture}

% Geometric construction
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (3,0);
\coordinate (C) at (1,2);
\draw (A) -- (B) -- (C) -- cycle;
\pic [draw, angle radius=8mm, "$\alpha$"] {angle = B--A--C};
\end{tikzpicture}
Circuit Diagrams
%!<\usepackage{circuitikz}>
\begin{tikzpicture}
\draw (0,0) to[R=1<\ohm>] (2,0)
      to[L=1<\henry>] (4,0)
      to[C=1<\farad>] (6,0);
\end{tikzpicture}

Sử dụng trên nhiều thiết bị

🖥️ Desktop

  • Hover hiệu ứng: Di chuột để xem menu
  • Transitions mượt: Chuyển động tự nhiên
  • Visual feedback: Phản hồi trực quan
  • Loading states: Placeholder khi đang tải

📱 Mobile

  • 2-tap logic: Tap để hiện, tap lần 2 thực hiện
  • Touch-friendly: Nút to đủ cho ngón tay
  • Responsive: Tự động điều chỉnh màn hình
  • Smooth scroll: Cuộn mượt mà

❓ Câu hỏi thường gặp (FAQ)

Q: Tôi có thể sử dụng miễn phí không?

A: Có, TikZ2SVG hoàn toàn miễn phí cho tất cả tính năng cơ bản. Bạn chỉ cần đăng nhập bằng Google để sử dụng đầy đủ tính năng.

Q: File SVG có bị xóa tự động không?

A: Không, file SVG của bạn được lưu trữ vĩnh viễn sau khi tạo. Chỉ có chủ sở hữu mới có thể xóa file của mình.

Q: Tôi có thể tạo bao nhiêu file SVG mỗi ngày?

A: Hiện tại giới hạn 10 file SVG mới mỗi ngày cho mỗi tài khoản để đảm bảo chất lượng dịch vụ.

Q: Tại sao tôi không thể follow người khác?

A: Để follow người khác, bạn cần xác thực tài khoản qua email. Vào Profile Settings → Xác thực tài khoản để mở khóa tính năng này.

Q: File TikZ của tôi không biên dịch được, phải làm sao?

A: Kiểm tra:

  • Cú pháp TikZ có đúng không
  • Có thiếu packages không (sử dụng %!<\usepackage{...}> nếu cần)
  • Xem log lỗi chi tiết để khắc phục

Q: Làm sao để hiển thị chữ Trung Quốc, Nhật Bản, Hàn Quốc trong TikZ?

A: Hệ thống hỗ trợ ĐẦY ĐỦ Unicode với LuaLaTeX + fontspec. Bạn chỉ cần thêm dòng \setmainfont{STSong} vào đầu code TikZ:

\setmainfont{STSong}
\begin{tikzpicture}
  \node {中文: 富贵};  % Tiếng Trung hiển thị HOÀN HẢO
\end{tikzpicture}

Lưu ý: KHÔNG dùng %!<CJKutf8> vì không tương thích với LuaLaTeX.

Q: Tại sao chữ Trung/Nhật/Hàn hiện thành hộp vuông □□?

A: Bạn chưa chọn font hỗ trợ CJK. Thêm \setmainfont{STSong} (hoặc font CJK khác) vào đầu code TikZ. Font mặc định (Latin Modern) không có ký tự CJK.

Q: Làm sao để yêu cầu thêm package mới vào hệ thống?

A: Truy cập trang /packages → Cuộn xuống phần "Yêu cầu Package mới" → Click "Gửi yêu cầu Package" → Điền form với thông tin package cần thiết. Hệ thống giới hạn 3 yêu cầu/giờ.

Q: Mất bao lâu để yêu cầu package được xử lý?

A: Tùy vào mức độ ưu tiên:

  • Khẩn cấp: 1-2 ngày làm việc
  • Cao: 3-5 ngày làm việc
  • Trung bình: 1-2 tuần
  • Thấp: 2-4 tuần

Bạn sẽ nhận email thông báo khi yêu cầu được xử lý.

Q: Tôi quên mật khẩu thì sao?

A: TikZ2SVG sử dụng Google OAuth, bạn chỉ cần đăng nhập bằng tài khoản Google của mình. Không cần nhớ mật khẩu riêng.

📞 Liên hệ và hỗ trợ

Nếu bạn có câu hỏi hoặc cần hỗ trợ:

  • Website: TikZ2SVG.com
  • Email hỗ trợ: support@tikz2svg.com
  • Báo cáo vi phạm: report@tikz2svg.com

Cảm ơn bạn đã sử dụng TikZ2SVG! 🚀
Chúc bạn có trải nghiệm tuyệt vời!