Вузли і стрілки

Іменовані вузли, взаємне розміщення, наконечники стріл.

Вузли та стрілки

Майже кожна діаграма TikZ зводиться до двох інгредієнтів. Вузол — це розміщена частина вмісту, як правило, позначений квадрат або коло. Ребро - це лінія або стрілка, що з’єднує два вузли. Коли ви зможете розмістити вузли та об’єднати їх, блок-схеми, конвеєри та блок-схеми стануть однаковою вправою з різними розмірами. У наведеному нижче прикладі розміщуються два поля з іменами та малюється стрілка з позначками між ними:

\usetikzlibrary{positioning,arrows.meta}
\begin{tikzpicture}
\node[draw] (src) {Source};
\node[draw, right=2cm of src] (dst) {Sink};
\draw[-{Latex}] (src) -- node[above] {edge} (dst);
\end{tikzpicture}

Назви та розміщення вузлів

У \node[draw] (src) {Source}; параметри дужок стилізують вузол, а draw означає малювання його межі, без якої ви отримаєте плаваючий текст. (src) — це ім’я вузла, а {Source} — це його вміст. Ім’я є важливою частиною: воно дозволяє іншим командам звертатися до цього вузла, не знаючи його координат.

Другий вузол показує, чому це важливо. right=2cm of src походить із бібліотеки positioning і розміщує dst на два сантиметри праворуч від src, виміряно між їхніми межами. Бібліотека також надає left=of, above=of, below=of та діагональні комбінації, наприклад above right=of. Побудуйте діаграму таким чином (кожен вузол відносно існуючого), і макет залишиться незмінним, коли текст змінить розмір. Абсолютні координати, як-от \node at (4,2), все ще мають застосування, але діаграма, побудована на них, потребує ручної перенумерації кожного разу, коли один блок зростає.

Малювання стрілки

\draw (src) -- (dst); малює пряму лінію між двома названими вузлами, і TikZ автоматично починає та закінчує лінію на кордонах вузлів, а не в їхніх центрах. Параметр [-{Latex}] визначає кінчики стрілок: нічого перед дефісом не означає відсутність кінчика хвоста, а Latex після вибору суцільного вістря стрілки з бібліотеки arrows.meta у місці призначення. Написання {Latex}-{Latex} дасть двосторонню стрілку.

Середній шлях node[above] {edge} — це мітка, прикріплена до самої лінії. Вузол, написаний у контурі, розміщується в цій точці контуру, за замовчуванням наполовину, а above зміщує його над лінією, щоб текст не знаходився на штриху. Це стандартний спосіб коментування переходів і потоків даних.

Звички, які окупаються

Назвіть кожен вузол, навіть на крихітних схемах. Неможливо підключити вузли без імен, а малі діаграми рідко залишаються маленькими. З тієї ж причини віддавайте перевагу відносному розміщенню від позиціонування над абсолютними координатами. Кожен оператор TikZ закінчується крапкою з комою. Пропуск одного є найпоширенішою помилкою TikZ, і повідомлення часто вказують далеко від справжньої проблеми. Щоб упорядкувати багато блоків у акуратні рядки та стовпці, продовжуйте з вирівняними блоками блок-схеми.

Назад до Малювати в TeX