Ao produzir um PDF a partir do exemplo a seguir usando pdflatex
, obtenho resultados diferentes entre Adobe Reader e TeXworks. Acho que isso é um bug na maneira como o Reader lida com a opacidade/transparência.
Meu objetivo é ter apenas um pequeno espaço entre o nó preto e cada borda (como o TeXworks está renderizando), e a maneira como estou fazendo isso é definindo um preenchimento preto e uma borda color=transparent
/ opacity=0
para cada nó.
Alguém pode sugerir uma boa solução alternativa para obter resultados consistentes? Tenho muitas árvores que estou tentando renderizar e que sofrem com esse problema e gostaria que o espaço entre a borda e o nó fosse transparente em vez de branco.
Talvez eu possa desenhar nós totalmente transparentes e depois desenhar um nó preto menor em cima de cada um deles. Isso pode ser automatizado como parte do state
estilo? Ou posso definir um intervalo entre o início e o fim de cada aresta? (Como eu faria isso?)
\documentclass{article}
\usepackage{tikz}
\tikzstyle{lts}=[
state/.style={circle,draw,minimum size=4pt,inner sep=0pt,line width=2pt,draw opacity=0,color=transparent,fill=black},
edge from parent/.style={-stealth,draw},
obs/.style={edge from parent/.style={-stealth,draw,very thick}},
]
\begin{document}
\begin{tikzpicture}[lts]
\node[state] {}
child[obs] {node[state] {}
edge from parent node {}}
child[obs] {node[state] {}
edge from parent node {}};
\end{tikzpicture}
\end{document}
Comparando a renderização no TeXworks com o Reader:
Responder1
Usar draw=none
em vez de color=transparent
parece exibi-lo corretamente no Acrobat. A imagem à esquerda é aquela com color=transparent
, e a da direita é aquela draw=none
visualizada no Acrobat:
Notas:
- Eu usei
tikzset
em vez detikzstyle
conformeDeve \tikzset ou \tikzstyle ser usado para definir estilos TikZ?
Código:
\documentclass{article}
\usepackage{tikz}
\tikzstyle{lts}=[
state/.style={circle,draw,minimum size=4pt,inner sep=0pt,line width=2pt,draw opacity=0,color=transparent,fill=black},
edge from parent/.style={-stealth,draw},
obs/.style={edge from parent/.style={-stealth,draw,very thick}},
]
\tikzset{MyState/.style={circle,draw,minimum size=4pt,inner sep=0pt,line width=2pt,draw opacity=0,draw=none,fill=black}}
\tikzset{MyObs/.style={edge from parent/.style={-stealth,draw,very thick}}}
\begin{document}
\begin{tikzpicture}[lts]
\node[state] {}
child[obs] {node[state] {}
edge from parent node {}}
child[obs] {node[state] {}
edge from parent node {}};
\end{tikzpicture}%
\begin{tikzpicture}
\node[MyState] {}
child[MyObs] {node[MyState] {}
edge from parent node {}}
child[MyObs] {node[MyState] {}
edge from parent node {}};
\end{tikzpicture}
\end{document}