use*_*089 6 math fonts dot graphviz
[环境:graphviz 2.38/Windows 7]
使用dot,我想生成如下的路径图来表示结构方程模型(嗯,这里,只是一个简单的单因素测量模型).我想在某些节点和边缘使用希腊字母,如果我可以在点文件中使用类似LaTeX的表示法\ksi,\lambda_1或者更喜欢\delta_1

该图应该代表三个方程
\begin{eqnarray*}
x_{1i} & = & \lambda_1 \xi_{i} + \delta_{1i} \\
x_{2i} & = & \lambda_2 \xi_{i} + \delta_{2i} \\
x_{3i} & = & \lambda_3 \xi_{i} + \delta_{3i}
\end{eqnarray*}
Run Code Online (Sandbox Code Playgroud)
我最接近的是以下.dot文件kludge,我选择了font ="Symbol"并用他们的罗马等价物替换了希腊字母.
但是,这不适用于dot -TpdfAFAICS或Postscript以外的任何其他设备dot -Tps,给我一个.eps我必须转换为PDF或PNG的文件.
问题:这种情况有什么好处吗?
digraph threevar {
rankdir=LR;
size="8,4";
node [fontname="Helvetica" fontsize=14 shape=box];
edge [fontname="Symbol" fontsize=10];
center=1;
{rank=min k }
{rank=same X1 X2 X3 }
{rank=max z1 z2 z3 }
z1 [shape=circle fontname="Symbol" label="d1"];
z2 [shape=circle fontname="Symbol" label="d2"];
z3 [shape=circle fontname="Symbol" label="d3"];
k [fontname="Symbol" label="x" shape="ellipse"];
k -> X1 [label="l1"];
k -> X2 [label="l2"];
k -> X3 [label="l3"];
z1 -> X1;
z2 -> X2;
z3 -> X3;
}
Run Code Online (Sandbox Code Playgroud)
好的,直接在 .dot 文件中使用 UTF8 字符,我现在可以避免符号字体拼凑(但我尝试下标,例如下标一,x2081 只是有一个包含“2081”的小框)
这是修改后的文件,现在适用于-Tpdf和-Tpng。(UTF8 字符在这篇文章中没有正确显示。)
digraph threevar {
rankdir=LR;
size="8,4";
node [fontsize=14 shape=box];
edge [fontsize=10];
center=1;
{rank=min k }
{rank=same X1 X2 X3 }
{rank=max z1 z2 z3 }
z1 [shape=circle label="d1"];
z2 [shape=circle label="d2"];
z3 [shape=circle label="d3"];
k [label="?" shape="ellipse"];
k -> X1 [label="?1"];
k -> X2 [label="?2"];
k -> X3 [label="?3"];
z1 -> X1;
z2 -> X2;
z3 -> X3;
}
Run Code Online (Sandbox Code Playgroud)
结果是:
