Al producir un PDF a partir del siguiente ejemplo usando pdflatex
, obtengo resultados diferentes entre Adobe Reader y TeXworks. Creo que esto es un error en la forma en que Reader maneja la opacidad/transparencia.
Mi objetivo es tener solo un pequeño espacio entre el nodo negro y cada borde (como lo representa TeXworks), y la forma en que lo hago es estableciendo un relleno negro y color=transparent
/ opacity=0
un borde para cada nodo.
¿Alguien puede sugerir una buena solución para obtener resultados consistentes? Tengo muchos árboles que estoy tratando de representar y que sufren este problema y me gustaría que el espacio entre el borde y el nodo sea transparente en lugar de blanco.
Tal vez pueda dibujar nodos completamente transparentes y luego dibujar un nodo negro más pequeño encima de cada uno de ellos. ¿Se puede automatizar esto como parte del state
estilo? ¿O puedo establecer un espacio entre el inicio y el final de cada borde? (¿Cómo haría esto?)
\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 la representación en TeXworks con Reader:
Respuesta1
Usar draw=none
en lugar de color=transparent
parece mostrarlo correctamente en Acrobat. La imagen de la izquierda es la que tiene color=transparent
y la de la derecha es la draw=none
que se ve en Acrobat:
Notas:
- Usé
tikzset
en lugar detikzstyle
según¿Debería usarse \tikzset o \tikzstyle para definir los estilos de 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}