Considere o MWE abaixo que gera a seguinte seta
É possível dobrar tal nó para que pareça
(desculpe pela qualidade, não sou um artista de photoshop). Se possível, gostaria que a fonte fosse legível e apenas criasse uma seta que dobrasse para a direita.
Você sabe se existe alguma maneira?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}
\tikzstyle{arrownode}
= [ shape=single arrow
, single arrow head extend=.75em
, single arrow head indent=.25em
, minimum width=3em
, draw
, font=\sc
]
\begin{document}
\begin{tikzpicture}
\node[arrownode] at (0,0) {foobar};
\end{tikzpicture}
\end{document}
Responder1
Com o TikZ v3.00, você pode usar transformações não lineares para fazer coisas fantásticas. O problema aqui é o texto, já que o TikZ também coloca o texto do nó em uma caixa e espera pelo melhor. E assim tudo na caixa é afetado pela mesma transformação que TikZ vê no identificador da caixa (por exemplo, adicionar \hspace{3cm}
ao conteúdo do nó).
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}
\usepgflibrary{curvilinear}
\usepgfmodule{nonlineartransformations}
\tikzset{arrownode/.style={
shape=single arrow,
single arrow head extend=.75em,
single arrow head indent=.25em,
minimum width=3em,
draw,
}
}
\begin{document}
\begin{tikzpicture}
{
\pgfsetcurvilinearbeziercurve
{\pgfpoint{0mm}{30mm}}
{\pgfpoint{15mm}{30mm}}
{\pgfpoint{30mm}{15mm}}
{\pgfpoint{30mm}{0mm}}
\pgftransformnonlinear{%
\pgfpointcurvilinearbezierorthogonal%
{\csname pgf@x\endcsname}%
{\csname pgf@y\endcsname}%
}%
\node[arrownode,transform shape nonlinear=true] at (3,0) {why no rotation?};
}
\end{tikzpicture}
\end{document}
No entanto, você pode mudar para decorações de texto e eu realmente não observei cuidadosamente como Mark Wibrow codificou as transformações, mas talvez você possa fazer o texto aceitar a matriz de transformação atual (ainda não sei). Então, se você substituir o nó acima por
\node[arrownode,transform shape nonlinear=true] (a) at (3,0) {\phantom{Why not rotating?}};
\path[decoration={text along path,
text={Why not rotating?},
text align=center,
raise=-0.5ex
},postaction={decorate}](a.west) -- (a.east);
você vai ter
Observe que o ponto em que você coloca o nó é importante, pois a transformação não é linear; portanto, neste exemplo, se você colocar o nó mais longe, mais pronunciado será o efeito. E você pode ver o espaço em branco superior vindo da tela transformada. Brinque com as coordenadas da curva Bézier e você obterá resultados ridículos :)