Жюльен Кретель создал элегантныйгитдагипакет для простого создания образовательных Git-графов, который я в настоящее время использую для создания образовательных и справочных материалов для своей команды.
При обсуждении ветвления в каком-либо контексте я люблю добавлять «изгиб» к графику, чтобы визуально усилить идею о том, что ветвь представляет собой линию развития и что другая работа может продолжаться параллельно.
Есть ли простой способ указать gitdags/TikZ сместить узел по вертикали, как здесь?
решение1
Я не знаю, можно ли это считать «чище» (и я также не знаю, что это за упаковка gitdags
), но в любом случае:
\documentclass[tikz,border=5]{standalone}
\usepackage{gitdags}
\tikzgraphsset{%
nudge/.style={/tikz/shift={#1}},
nudge down/.style={nudge=(270:#1)},
nudge down/.default=1
}
\begin{document}
\begin{tikzpicture}
\gitDAG[grow right sep = 2em]{
{[nodes=placeholder commits] "..."} -- A -- B -- C --
{[nudge down]
D -- E;
}
};
\end{tikzpicture}
\end{document}
решение2
Мое текущее решение, используемое для создания графика в вопросе, заключается в создании невидимого узла вдоль главной ветви, который перемещает узел D
на следующую строку:
\gitDAG[grow right sep = 2em]{
{[nodes=placeholder commits] "..." } -- A -- B -- C -- {
"" [placeholder];
D [>opacity=0.75] -- E;
}
};
Бит "" [placeholder];
создает невидимый узел после C
главной ветви; D
представляет собой параллельную линию развития и, следовательно, вертикально совмещен с невидимым узлом.
Этот трюк выполняет работу, но кажется очень хакерским, особенно потому, что нам нужно сбросить непрозрачность края, когда мы закончим ( [>opacity=0.75]
). Без этого сброса узлы D
и E
будут визуализированы, но их края — нет.