Тройные стрелки в tikz и tikz-cd

Тройные стрелки в tikz и tikz-cd

У меня есть макрос для рисования довольно сложных диаграмм в tikz, который использует pgfkeys, чтобы быть максимально гибким в отношении стрелок, меток и их стилей. Я разрешаю все команды библиотекиCD. Мне нужен параметр/опция, Rrightarrowнапримерамспакет, который я могу передать как pgfkey, который может рисовать тройные (или даже четверные) стрелки, точно так же, как я могу передать параметры leftarrow, Rightarrow, equal, squiggly, ...

Следующие темыТройные линии в тикзиДревко стрелы костюма в тикзесодержат красивый код, идущий в этом направлении, но я не могу втиснуть его в вариант в стиле стрелки tikz-cd. Я думаю, что понимаю код (второго ответа) второй ссылки, где для того, чтобы предоставить 3-стрелку или 4-стрелку, две разные стрелки перекрываются. Поскольку стрелки моего макроса фиксированы, я не могу использовать это решение. Я думаю, что код первой ссылки можно использовать для предоставления удовлетворительного решения, но: я пока не очень хорошо знаю tikz (я всегда использовал tikzcd), в комментариях там, похоже, подразумевают, что добавить наконечник стрелки к тройной линии сложно. Я попытался немного поиграть с кодом, изменив то, что, по моему мнению, должно быть случайным, но мне не удалось создать ничего конкретного.

решение1

Вы можете сделать так, как предлагается в ссылках, которые вы показываете. Немного тонкий момент заключается в том, что стрелка не учитывается автоматически, поэтому вам нужно quadrupleнемного сократить двойную линию в стрелке. (Вы, конечно, можете подстроить double distanceи т. д.) Волнистые стрелки можно получить с помощью украшений, таких как coil, пожалуйста, дайте мне знать, если вы хотите, чтобы я добавил пример.

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\tikzset{Rightarrow/.style={double equal sign distance,>={Implies},->},
triple/.style={-,preaction={draw,Rightarrow}},
quadruple/.style={preaction={draw,Rightarrow,shorten >=0pt},shorten >=1pt,-,double,double
distance=0.2pt}}
\begin{tikzcd}
    a \arrow[r,triple] &    b  \arrow[r,quadruple] 
    & c\\
\end{tikzcd}
\end{document}

введите описание изображения здесь

решение2

Теперь есть красивая упаковка,tikz-nfoldДжонатана Шульца, предлагающего простое решение этой проблемы. Вы можете указать стиль стрелки TikZ scaling nfold=3(или просто, nfold=3если вы хотите фиксированную ширину стрелки), чтобы нарисовать тройную стрелку, и аналогично для более высоких стрелок.

По моему опыту, это позволяет создавать более эстетичные стрелки, чем другие решения, и совместимо с различными другими стилями TikZ, которые распространены в коммутативных диаграммах.

Пример:

\documentclass{article}

\usepackage{tikz-cd}
\usetikzlibrary{nfold}

\begin{document}

\begin{tikzcd}
    A \arrow[r, Rightarrow, scaling nfold=3] & B \\
    C \arrow[r, Rightarrow, nfold=3] & D
\end{tikzcd}

\end{document}

Производит:

две тройные стрелы

Связанный контент