โหนด ลูกศร และแผนภาพใน TikZ
วางกล่องแต่ละกล่องด้วย \node[draw] (name) {text}; จัดตำแหน่งกล่องถัดไปด้วยไลบรารี positioning (right=of name) แล้วเชื่อมกล่องด้วย \draw[->] (a) -- (b);
โหนด
โหนดคือข้อความชิ้นหนึ่งที่จุดหนึ่ง ซึ่งจะมีกรอบหรือไม่ก็ได้ draw ให้เส้นขอบ fill ให้พื้นหลัง และ circle หรือ ellipse ให้รูปทรงกลมมน (ค่าเริ่มต้นคือ rectangle) ชื่อในวงเล็บช่วยให้คุณอ้างถึงโหนดภายหลังได้
โหนดที่มีรูปทรง สีพื้น และขนาดต่าง ๆ
\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}ลูกศรระหว่างโหนด
\draw[->] (a) -- (b); วาดลูกศรจากโหนด a ไปยังโหนด b เส้นจะเริ่มและสิ้นสุดที่ขอบของโหนด ไม่ใช่ที่จุดศูนย์กลาง -| และ |- วาดเส้นเชื่อมแบบหักมุมฉาก
ผังงานขนาดเล็กด้วยไลบรารี 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 วางโหนดไว้ทางขวาของ in โดยเว้นระยะตาม node distance ทิศทางอื่น ได้แก่ left, above, below และแนวทแยงอย่าง above right ส่วน right=2cm of in กำหนดระยะสำหรับโหนดเดียว
ป้ายกำกับบนลูกศรและโหนด
node ที่เขียนไว้กลางเส้นทางจะเป็นป้ายกำกับของเส้นทางนั้น above, below, left, right กำหนดด้าน และ midway, near start, near end หรือ pos=0.3 กำหนดตำแหน่งตามเส้นทาง ส่วน label=below:text เพิ่มป้ายกำกับให้โหนด
แผนภาพสถานะที่มีเส้นเชื่อมโค้งพร้อมป้ายกำกับ
\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}จุดยึด
ทุกโหนดมีจุดยึดบนขอบ ได้แก่ north, south, east, west และมุมอย่าง north east (box.north) คือจุดที่กึ่งกลางด้านบนของ box
ลูกศรจากจุดยึดของโหนด
\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 ที่โหนดจะวางโหนดให้จุดยึดด้านตะวันตก (ซ้าย) อยู่ที่จุดที่กำหนด
หัวลูกศร
| ตัวเลือก | หัวลูกศร | ใน Scissor LaTeX |
|---|---|---|
->, <-, <-> | หัวลูกศรเริ่มต้นของ TikZ | ใช้ได้ |
-stealth, -latex | หัวลูกศร stealth และ LaTeX แบบดั้งเดิม | ใช้ได้ |
-{Stealth}, -{Latex} (arrows.meta) | หัวลูกศรแบบใหม่ | ใช้ได้ |
|-| | ขีดตั้งที่ปลายแต่ละด้าน | ใช้ได้ |
>={Stealth} ที่ภาพ | หัวลูกศรที่ -> ใช้ | ใช้ได้ |
ตัวเลือกของหัวลูกศร เช่น -{Stealth[length=3mm]} | ขนาดและรูปทรงของหัวลูกศร | ใช้ได้บางส่วน: หัวลูกศรวาดในขนาดเริ่มต้น |
ขนาดหัวลูกศรใกล้เคียงกับ TikZ แต่ไม่เหมือนกันทุกประการ
สิ่งที่ยังไม่รองรับ
ความสามารถเหล่านี้คอมไพล์ได้ในการติดตั้ง TeX แต่ไม่ได้ที่นี่ ส่วนใหญ่จะแจ้งไว้ในแท็บ Problems
| ความสามารถ | สิ่งที่เกิดขึ้นใน Scissor LaTeX | สิ่งที่ควรเขียนแทน |
|---|---|---|
\matrix (และ matrix of nodes) | ภาพทั้งภาพกลายเป็นกรอบเส้นประพร้อมข้อความแจ้ง | วางโหนดด้วย at (x,y) หรือ positioning |
\pic | ภาพทั้งภาพกลายเป็นกรอบเส้นประพร้อมข้อความแจ้ง | วาดซ้ำใน scope ที่มี shift |
การตกแต่ง (decorate, decoration=...) | ถูกละเว้นพร้อมข้อความแจ้ง เส้นทางถูกวาดแบบธรรมดา | เส้นทางธรรมดาหรือเส้นประ |
รูปทรงโหนดจาก shapes.geometric (diamond, trapezium ...) | วาดเป็นสี่เหลี่ยม พร้อมข้อความแจ้ง | rectangle, circle หรือ ellipse |
เส้น double | ถูกละเว้นพร้อมข้อความแจ้ง | โหนดหรือเส้นทางสองเส้น |
to[loop above] (วงวนบนโหนดเดียว) | ไม่มีการวาดวงวนและไม่มีข้อความแจ้ง ป้ายกำกับจะอยู่บนโหนด | arc หรือเส้นโค้ง .. controls .. จากขอบของโหนด |
pin= | แสดงข้อความของ pin แต่ไม่มีเส้น pin | label= |
pos= บนเส้นทาง -| หรือ |- | ป้ายกำกับวางตามช่วงที่สองเท่านั้น pos=0.25 จึงไปอยู่ใกล้มุม | กำกับช่วงที่สองด้วย pos=0.75 หรือแยกเส้นทางเป็นสองเส้น |
tikz-cd, circuitikz, forest | ภาพถูกละไว้ พร้อมข้อความแจ้ง | TikZ แบบง่าย หรือรูปภาพ |
\matrix กลายเป็นกรอบแทนที่
\begin{tikzpicture}
\matrix[draw] {
\node {a}; & \node {b}; \\
\node {c}; & \node {d}; \\
};
\end{tikzpicture}แท็บปัญหา: \matrix in a picture is not supported yet
โหนดรูปข้าวหลามตัดถูกวาดเป็นสี่เหลี่ยม
\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}แท็บปัญหา: TikZ node option 'diamond' is not supported yet
คู่มือ TikZ (ในแพ็กเกจ PGF) อธิบายโหนด ไลบรารี positioning และหัวลูกศร: ctan.org/pkg/pgf สำหรับรูปทรงและเส้นทาง ดูภาพวาดด้วย TikZ
ดูเพิ่มเติม พื้นฐาน TikZ, TikZ และ รูปและรูปภาพ
คำถามและคำตอบ
จะวาดผังงานใน LaTeX ได้อย่างไร
ใช้โหนด TikZ ที่มี draw สำหรับกล่อง ใช้ไลบรารี positioning (right=of a, below=of b) เพื่อจัดตำแหน่ง และใช้ \draw[->] (a) -- (b); สำหรับลูกศร
จะใส่ข้อความบนลูกศรใน TikZ ได้อย่างไร
เขียนโหนดไว้กลางเส้นทาง: \draw[->] (a) -- node[above] {text} (b);
tikz-cd ใช้ได้ใน Scissor LaTeX ไหม
ยังไม่ได้ แผนภาพ tikzcd จะถูกละไว้พร้อมข้อความแจ้ง ให้วาดแผนภาพแบบง่ายด้วยโหนดและลูกศรแทน
ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07