При создании PDF из следующего примера с использованием pdflatex
я получаю разные результаты между Adobe Reader и TeXworks. Я думаю, что это ошибка в том, как Reader обрабатывает непрозрачность/прозрачность.
Моя цель — оставить небольшое пространство между черным узлом и каждым краем (подобно тому, как это визуализирует TeXworks), и я делаю это, устанавливая черную заливку и color=transparent
/ opacity=0
край для каждого узла.
Может ли кто-нибудь предложить хороший обходной путь для получения согласованных результатов? У меня есть много деревьев, которые я пытаюсь отрендерить, и которые страдают от этой проблемы, и я хотел бы, чтобы пространство между краем и узлом было прозрачным, а не белым.
Может быть, я могу нарисовать полностью прозрачные узлы, а затем нарисовать меньший черный узел поверх каждого из них. Можно ли это автоматизировать как часть стиля state
? Или я могу установить зазор между началом и концом каждого края? (Как бы я это сделал?)
\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}
Сравнение рендеринга в TeXworks и Reader:
решение1
Использование draw=none
вместо , color=transparent
кажется, правильно отображает его в Acrobat. Изображение слева — это то, что с color=transparent
, а то, что справа — с , draw=none
как показано в Acrobat:
Примечания:
- Я использовал
tikzset
вместоtikzstyle
согласноСледует ли использовать \tikzset или \tikzstyle для определения стилей TikZ?
Код:
\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}