Nút, mũi tên và sơ đồ trong TikZ
Đặt mỗi hộp bằng \node[draw] (name) {text};, định vị các hộp tiếp theo bằng thư viện positioning (right=of name), và nối chúng bằng \draw[->] (a) -- (b);.
Nút
Một nút là một đoạn văn bản tại một điểm, có thể kèm khung. draw cho nó một đường viền, fill một nền, và circle hoặc ellipse một hình tròn (rectangle là mặc định). Một tên trong ngoặc tròn cho phép bạn tham chiếu đến nút về sau.
Nút với hình dạng, màu nền và kích thước
\begin{tikzpicture}
\node[draw] (a) at (0,0) {plain box};
\node[draw, rounded corners, fill=blue!10] (b) at (3,0) {rounded};
\node[draw, circle, fill=yellow!40] (c) at (5.5,0) {44};
\node[draw, ellipse] (d) at (8,0) {ellipse};
\node[draw, minimum width=2.5cm, minimum height=1cm] at (1,-1.6) {fixed size};
\node[draw, text width=2.6cm, align=center] at (5,-1.6) {text that wraps onto two lines};
\end{tikzpicture}Mũi tên giữa các nút
\draw[->] (a) -- (b); vẽ một mũi tên từ nút a đến nút b. Đường bắt đầu và kết thúc ở viền của các nút, không phải ở tâm. -| và |- vẽ các đường nối vuông góc.
Một lưu đồ nhỏ với thư viện positioning
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
node distance=1.2cm and 1.6cm,
box/.style={draw, rounded corners, fill=blue!8, minimum width=2.2cm, minimum height=0.8cm},
>={Stealth},
]
\node[box] (in) {Read data};
\node[box, right=of in] (clean) {Clean};
\node[box, right=of clean] (fit) {Fit model};
\node[draw, circle, below=of clean] (ok) {OK?};
\draw[->] (in) -- (clean);
\draw[->] (clean) -- (fit);
\draw[->] (fit) |- (ok);
\draw[->] (ok) -| node[pos=0.75, left] {no} (in);
\end{tikzpicture}
\end{document}right=of in đặt nút ở bên phải in, cách một khoảng node distance. Các hướng khác là left, above, below và các hướng chéo như above right. right=2cm of in đặt khoảng cách cho riêng một nút.
Nhãn trên mũi tên và nút
Một node viết ở giữa một đường sẽ ghi nhãn cho đường đó. above, below, left, right đặt phía, và midway, near start, near end hoặc pos=0.3 đặt vị trí dọc theo đường. label=below:text thêm một nhãn cho nút.
Sơ đồ trạng thái với các cạnh cong có nhãn
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[state/.style={draw, circle, minimum size=1cm}, >={Stealth}, node distance=2.4cm]
\node[state, label=below:start] (s0) {$q_0$};
\node[state, right=of s0] (s1) {$q_1$};
\node[state, right=of s1, fill=green!15] (s2) {$q_2$};
\draw[->] (s0) to[bend left] node[above] {$a$} (s1);
\draw[->] (s1) to[bend left] node[below] {$b$} (s0);
\draw[->] (s1) -- node[above] {$a$} (s2);
\end{tikzpicture}
\end{document}Điểm neo
Mỗi nút có các điểm neo trên viền: north, south, east, west và các góc như north east. (box.north) là điểm ở chính giữa cạnh trên của box.
Mũi tên từ các điểm neo của một nút
\begin{tikzpicture}
\node[draw, minimum width=3cm, minimum height=1cm] (box) {Server};
\draw[->] (box.north) -- ++(0,0.7) node[above] {north};
\draw[->] (box.east) -- ++(1,0) node[right] {east};
\draw[->] (box.south west) -- ++(-0.6,-0.6) node[below left] {south west};
\node[anchor=west] at (box.south east) {\small (anchor=west)};
\end{tikzpicture}anchor=west trên một nút đặt nút sao cho điểm neo phía tây của nó nằm tại điểm đã cho.
Đầu mũi tên
| Tùy chọn | Đầu mũi tên | Trong Scissor LaTeX |
|---|---|---|
->, <-, <-> | đầu mũi tên mặc định của TikZ | Hoạt động |
-stealth, -latex | các đầu stealth và LaTeX cổ điển | Hoạt động |
-{Stealth}, -{Latex} (arrows.meta) | các đầu mũi tên mới hơn | Hoạt động |
|-| | một vạch ở mỗi đầu | Hoạt động |
>={Stealth} trên hình | đầu mũi tên mà -> sử dụng | Hoạt động |
tùy chọn đầu mũi tên như -{Stealth[length=3mm]} | kích thước và hình dạng của đầu mũi tên | Một phần: đầu mũi tên được vẽ với kích thước mặc định |
Kích thước đầu mũi tên gần giống TikZ chứ không giống hệt.
Những gì chưa được hỗ trợ
Các tính năng này biên dịch được trong một bản cài đặt TeX nhưng không chạy ở đây. Phần lớn được báo trong thẻ Sự cố.
| Tính năng | Điều xảy ra trong Scissor LaTeX | Nên viết gì thay thế |
|---|---|---|
\matrix (và matrix of nodes) | Cả hình trở thành một khung nét đứt kèm thông báo | Đặt các nút bằng at (x,y) hoặc positioning |
\pic | Cả hình trở thành một khung nét đứt kèm thông báo | Lặp lại hình vẽ trong một scope với shift |
trang trí đường (decorate, decoration=...) | Bị bỏ qua kèm thông báo; đường được vẽ trơn | Một đường trơn hoặc nét đứt |
hình dạng nút từ shapes.geometric (diamond, trapezium ...) | Được vẽ thành hình chữ nhật, kèm thông báo | rectangle, circle hoặc ellipse |
đường double | Bị bỏ qua kèm thông báo | Hai nút hoặc hai đường |
to[loop above] (một vòng lặp trên một nút) | Không vẽ vòng lặp và không có thông báo; nhãn của nó nằm trên nút | Một arc hoặc một đường cong .. controls .. từ viền nút |
pin= | Văn bản của pin được hiển thị, không có đường nối | label= |
pos= trên một đường -| hoặc |- | Nhãn chỉ được đặt dọc theo đoạn thứ hai, nên pos=0.25 rơi gần góc | Ghi nhãn đoạn thứ hai với pos=0.75, hoặc tách đường làm hai |
tikz-cd, circuitikz, forest | Hình bị bỏ ra, kèm thông báo | TikZ đơn giản, hoặc một hình ảnh |
\matrix trở thành một khung giữ chỗ
\begin{tikzpicture}
\matrix[draw] {
\node {a}; & \node {b}; \\
\node {c}; & \node {d}; \\
};
\end{tikzpicture}Thẻ Sự cố: \matrix in a picture is not supported yet
Nút hình thoi được vẽ thành hình chữ nhật
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\node[draw, diamond] at (0,0) {Yes?};
\node[draw, ellipse] at (2.5,0) {ellipse works};
\end{tikzpicture}
\end{document}Thẻ Sự cố: TikZ node option 'diamond' is not supported yet
Tài liệu hướng dẫn TikZ (trong gói PGF) trình bày về nút, thư viện positioning và đầu mũi tên: ctan.org/pkg/pgf. Về hình dạng và đường, xem hình vẽ với TikZ.
Xem thêm TikZ cơ bản, TikZ và Hình và ảnh.
Hỏi và đáp
Làm thế nào để vẽ lưu đồ trong LaTeX?
Dùng các nút TikZ có draw cho các hộp, thư viện positioning (right=of a, below=of b) để đặt chúng, và \draw[->] (a) -- (b); cho các mũi tên.
Làm thế nào để đặt chữ lên mũi tên trong TikZ?
Viết một nút ở giữa đường: \draw[->] (a) -- node[above] {text} (b);.
tikz-cd có hoạt động trong Scissor LaTeX không?
Chưa. Một sơ đồ tikzcd bị bỏ ra kèm thông báo. Thay vào đó, hãy vẽ các sơ đồ đơn giản bằng nút và mũi tên.
Mọi ví dụ trên trang này đều được Scissor LaTeX dàn trang khi xây dựng trang web. Cập nhật lần cuối 2026-11-07.