dot2tex 集中边缘,错误修复或解决方法

dot2tex 集中边缘,错误修复或解决方法

它是一个已知错误dot2tex 在组合时会产生奇怪的concentrate=true输出蒂克兹代码输出。它创建了多个波浪形边缘,而不是一个漂亮的曲线边缘。但是,在生成 PGF 代码时,我们得到了还算不错的输出,但仍然不太正确。

有人找到这个错误的修复方法了吗?或者可能有一个解决方法来获得我想要的最终结果?我希望两个传入的边缘能够很好地融合在一起,并且在箭头一侧有一个标签。

PGF 输出示例 Tikz 输出示例

\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes}
\usepackage{dot2texi}

\begin{document}
\tikzstyle{var} = [draw,shape=rectangle,minimum size=2em,
                        inner sep=2pt,fill=white!20]


\begin{figure}
\centering
\begin{dot2tex}[dot,pgf,options=-tmath]
digraph G {
    [concentrate=true, rankdir=LR]
    node [style="var"]
    x [label="x"]
    y [label="y"]
    i_1 [texlbl="i1 = 0"]
    i_2 [texlbl="i2 = 1"]
    o_1 [texlbl="o2 = 0"]
    o_2 [texlbl="o2 = 1"]
    x -> i_1;
    x -> i_2;
    i_1 -> o_1 [texlbl="fib", label="fib", rankdir="LR"];
    i_2 -> o_2 [texlbl="fib", label="fib", rankdir="LR"];
    o_1 -> y [rankdir="LR"]
    o_2 -> y [rankdir="LR"]
    }
\end{dot2tex}
\caption{PGF output}
\end{figure}

\begin{figure}
\centering
\begin{dot2tex}[dot,tikz,options=-tmath]
digraph G {
    [concentrate=true, rankdir=LR]
    node [style="var"]
    x [label="x"]
    y [label="y"]
    i_1 [texlbl="i1 = 0"]
    i_2 [texlbl="i2 = 1"]
    o_1 [texlbl="o2 = 0"]
    o_2 [texlbl="o2 = 1"]
    x -> i_1;
    x -> i_2;
    i_1 -> o_1 [texlbl="fib", label="fib", rankdir="LR"];
    i_2 -> o_2 [texlbl="fib", label="fib", rankdir="LR"];
    o_1 -> y [rankdir="LR"]
    o_2 -> y [rankdir="LR"]
    }
\end{dot2tex}
\caption{TIKZ output}
\end{figure}

\end{document}

答案1

从技术上来说,该解决方案属于解决方法我想是的。我只用 画了它tikz

代码:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes,positioning}

\begin{document}
\begin{tikzpicture}[
  -latex,
  ell/.style={draw,ellipse,minimum height=3em,minimum width=5em}
]
  \node[ell] at (0,0)     (x)      {$x$};
  \node[ell,right=of x]   (i1)  {i$1=0$};
  \node[ell,below=of i1]  (i2)  {i$2=1$};
  \node[ell,right=of i1]  (o2t) {o$2=0$};
  \node[ell,below=of o2t] (o2b) {o$2=1$};
  \node[ell,right=of o2t] (y)      {$y$};
  \draw (x)   -- (i1)  coordinate[pos=0.25] (branch);
  \draw (o2t) -- (y)   coordinate[pos=0.75]  (merge);
  \draw (i1)  -- (o2t) node[midway,above]      {fib};
  \draw (i2)  -- (o2b) node[midway,above]      {fib};
  \draw    (branch) to[out=0]     (i2);
  \draw[-] (o2b)    to[in=180] (merge);
\end{tikzpicture}
\end{document}

输出: 在此处输入图片描述

如果需要的话,可以轻松改变out和角度in以及分支和合并部分。pos

相关内容