Math 在graphviz中使用符号字体/数学表示法

Math 在graphviz中使用符号字体/数学表示法,math,fonts,graphviz,dot,Math,Fonts,Graphviz,Dot,[环境:graphviz 2.38/Windows 7] 使用dot,我想生成如下路径图来表示一个结构方程模型(这里只是一个简单的单因素测量模型)。我想用希腊字母表示一些节点和边,实际上我更喜欢在点文件中使用类似乳胶的符号,如\ksi,\lambda_1或\delta_1 这张图应该代表这三个方程式 \begin{eqnarray*} x_{1i} & = & \lambda_1 \xi_{i} + \delta_{1i} \\ x_{2i} & = & \la

[环境:graphviz 2.38/Windows 7]

使用
dot
,我想生成如下路径图来表示一个结构方程模型(这里只是一个简单的单因素测量模型)。我想用希腊字母表示一些节点和边,实际上我更喜欢在点文件中使用类似乳胶的符号,如
\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*}
我最接近这一点的是下面的.dot文件kludge,在这里我 选择font=“Symbol”并将希腊字母替换为罗马字母

但是,这不适用于
dot-Tpdf
或AFAICS任何其他设备 而不是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;
}

好的,直接在.dot文件中使用UTF8字符,我现在可以避免符号字体混乱(但是我尝试使用下标,例如下标1, x2081有一个小盒子,里面装着‘2081’)

这是修订后的文件,现在可以与
-Tpdf
-Tpng
一起使用。(UTF8字符在本文中显示不正确。)

结果是:


愚蠢的问题:为什么不直接写呢₁, δ₂, 等。作为文本,用utf8编码保存文件?对于无限下标标签,希腊语和下标0到9在Unicode中都可用,因此不要使用(Xe)(La)TeX表示法,试着只使用直上δ₁, δ₂, δ₃, λ₁, λ₂, 和λ₃, 然后看看dot是否接受这些?我希望有一种简单、直接的方式,我在某个地方错过了;此外,unicode字符输入起来也很麻烦。“直接使用您想要看到的文本”是非常简单的,但是如果您不使用任何东西来简化您的生活,“输入的麻烦”部分是正确的。在Windows上,我使用免费软件几乎可以立即找到我需要但无法键入的任何字符。多亏了它,我已经好几年没有输入痛苦了。多亏了这个指针——我尝试了一些其他的字符映射应用程序,但BabelMap更有用。
    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;
    }