![tikz 和 tikz-cd 中的三箭头](https://linux22.com/image/400402/tikz%20%E5%92%8C%20tikz-cd%20%E4%B8%AD%E7%9A%84%E4%B8%89%E7%AE%AD%E5%A4%B4.png)
我有一个宏可以在 tikz 中绘制相当复杂的图表,它利用 pgfkeys 来尽可能灵活地处理箭头、标签及其样式。我允许库中的所有命令光盘我需要的是一个参数/选项,Rrightarrow
例如艾迈斯半导体包,我可以将其作为 pgfkey 传递,它可以绘制三重(甚至四重)箭头,就像我可以传递参数leftarrow
, Rightarrow
, equal
, squiggly
, ...
以下主题tikz 中的三条线和tikz 中的定制箭杆包含一些朝着这个方向发展的漂亮代码,但我无法将它们挤进 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由 Jonathan Schulz 提供,为这个问题提供了一个简单的解决方案。您可以指定 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}
生成: