
Eu tenho uma macro para desenhar diagramas bastante complicados no tikz que faz uso de pgfkeys para ser o mais flexível possível nas setas, rótulos e seus estilos. Eu permito todos os comandos da bibliotecacd. O que eu precisaria é de um parâmetro/opção, como Rrightarrow
o dosoupacote, que posso passar como pgfkey que pode desenhar setas triplas (ou até quádruplas), exatamente como posso passar os parâmetros leftarrow
, Rightarrow
, equal
, squiggly
, ...
Os seguintes tópicosLinhas triplas em tikzeEixo de flecha fantasiado em tikzcontém algum código bonito indo nessa direção, mas não consigo comprimi-los em uma opção de estilo de seta tikz-cd. Acho que entendi o código do (segunda resposta do) segundo link, onde, para fornecer uma seta 3 ou uma seta 4, duas setas diferentes são sobrepostas. Como as setas da minha macro estão fixas, não posso usar esta solução. Acho que o código do primeiro link poderia ser usado para fornecer uma solução satisfatória, mas: ainda não conheço muito tikz (sempre usei o tikzcd), nos comentários parecem sugerir que adicionar uma ponta de seta para uma linha tripla é difícil. Tentei brincar um pouco com o código, modificando o que acho que deveria ser arriscado, mas não consegui produzir nada de concreto.
Responder1
Você pode fazer conforme sugerido nos links mostrados. Um ponto um pouco sutil é que a seta não é respeitada automaticamente, então você precisa encurtar quadruple
um pouco o caminho da linha dupla na seta. (É claro que você pode fazer ajustes finos, double distance
etc.) Setas onduladas podem ser obtidas com decorações como coil
, por favor, deixe-me saber se quiser que eu adicione um exemplo.
\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}
Responder2
Agora existe um lindo pacote,tikz-nfoldpor Jonathan Schulz, fornecendo uma solução simples para este problema. Você pode especificar o estilo de seta TikZ scaling nfold=3
(ou simplesmente nfold=3
se deseja uma largura de seta fixa) para desenhar uma seta tripla e da mesma forma para setas mais altas.
Na minha experiência, isso produz setas esteticamente mais agradáveis do que outras soluções e é compatível com vários outros estilos TikZ comuns em diagramas comutativos.
Exemplo:
\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}
Produz: