A forma do nó TikZ depende do texto interno

A forma do nó TikZ depende do texto interno

Emuma das minhas respostas anteriores, minha primeira proposta

\documentclass[tikz]{standalone}
\usetikzlibrary{quotes,angles}
\begin{document}
\begin{tikzpicture}
\draw (0,-4)--(0,4) node[above] {$Im$} (-4,0)--(4,0) node[right] {$Re$};
\draw[dashed] (0,0) circle (3) circle (2);
\coordinate (a) at (80:3);
\coordinate (b) at (3,0);
\coordinate (m) at (25:2);
\coordinate (n) at (-95:2);
\coordinate (p) at (145:2);
\coordinate (o) at (0,0);
\fill[black] (a) circle (2pt) (b) circle (2pt) (m) circle (2pt) (n) circle (2pt) (p) circle (2pt) (2,0) circle (2pt);
\draw (a) node[above right] {$z=|z|e^{i\theta}$};
\draw (b) node[below] {$|z|$};
\draw (2,0) node[below] {$|z|^{1/3}$};
\draw (m) node[right] {$|z|^{1/3}e^{i\theta/3}$};
\draw (n) node[below] {$|z|^{1/3}e^{i(\theta+4\pi)/3}$};
\draw (p) node[above] {$|z|^{1/3}e^{i(\theta+2\pi)/3}$};
\draw (.1,1.5)--(0,1.5) node[left] {$i$};
\draw (1.5,.1)--(1.5,0) node[below] {$1$};
\draw (0,0)--(a) (0,0)--(m) (0,0)--(n) (0,0)--(p);
\draw[dashed] (m)--(n)--(p)--cycle;
\pic[draw,dashed,thick,"$\theta$",angle radius=0.8cm,angle eccentricity=1.3] {angle=b--o--a};
\end{tikzpicture}
\end{document}

dá essa saída

Vendo que é um pouco difícil ler alguns nós (como o |z| 1/3eeu(θ+ 2π)/3 um), eu redefino inner sepe defino a fillcor dos nós. Eventualmente eu consigo

\documentclass[tikz]{standalone}
\usetikzlibrary{quotes,angles,positioning}
\begin{document}
\begin{tikzpicture}
\begin{scope}[every node/.style={fill=white,inner sep=2pt}]
\draw (0,-4)--(0,4) node[above] {$\Im$} (-4,0)--(4,0) node[right] {$\Re$};
\draw[dashed] (0,0) circle (3) circle (2);
\coordinate (a) at (80:3);
\coordinate (b) at (3,0);
\coordinate (m) at (80/3:2);
\coordinate (n) at ({80/3-120}:2);
\coordinate (p) at ({80/3+120}:2);
\coordinate (o) at (0,0);
\draw (a) node[above right] {$z=|z|e^{i\theta}$};
\draw (b) node[below right] {$|z|$};
\draw (2,0) node[below left=0cm and -2em] {$|z|^{1/3}$};
\draw (m) node[right] {$|z|^{1/3}e^{i\theta/3}$};
\draw (n) node[below] {$|z|^{1/3}e^{i(\theta+4\pi)/3}$};
\draw (p) node[above] {$|z|^{1/3}e^{i(\theta+2\pi)/3}$};
\draw (.1,1.5)--(0,1.5) node[left] {$i$};
\draw (1.5,.1)--(1.5,0) node[below] {$1$};
\draw (0,0)--(a) (0,0)--(m) (0,0)--(n) (0,0)--(p);
\draw[dashed] (m)--(n)--(p)--cycle;
\end{scope}
\pic[draw,dashed,thick,"$\theta$",angle radius=0.8cm,angle eccentricity=1.3] {angle=b--o--a};
\fill[black] (a) circle (2pt) (b) circle (2pt) (m) circle (2pt) (n) circle (2pt) (p) circle (2pt) (2,0) circle (2pt);
\end{tikzpicture}
\end{document}

A separação dos nós e dos caminhos agora é muito boa, IMHO, exceto alguns casos em que a separação é exagerada:

Uma solução para isso é alterar a forma padrão do nó retângulo

para algo assim

Desculpe, não sou bom em desenhar, especialmente em desenhar com mouse de computador.

Em outras palavras, acho que tenho que criar um novo TikFormato do nó Z que depende do máximo e do mínimo "sim-coordenadas" de todos os personagens.

É muito complicado para mim e não encontrei uma dica sobre isso.

Pode me ajudar? Qualquer ajuda é muito apreciada.

Responder1

Talvez o contourpacote seja uma solução para você (Veja tambémesta resposta)?

\documentclass[tikz, border=2mm]{standalone}

\usepackage[outline]{contour}
\contourlength{2pt}  % increase the white space

\usetikzlibrary{patterns}

\begin{document}

\begin{tikzpicture}
\draw [step=.25] (-2,-.5) grid (2,.5);

\node[] at (0,0) {\contour{white}{$|z|^{1/3}e^{i(\theta+2\pi)/3}$}};

\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui


Observação:O acima não funciona com XeLaTeX ou LuaLaTeX. Neste caso você precisa remover a outlineopção e adicionar por exemplo \contournumber{60}(ou um número maior, dependendo da suavidade desejada das bordas do espaço em branco, veja odocumentação do pacote).

informação relacionada