【发布时间】:2025-11-28 01:55:02
【问题描述】:
[环境: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*}
我最接近的是以下 .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;
}
【问题讨论】:
-
愚蠢的问题:为什么不直接将 δ₁、δ₂ 等写为文字文本,并使用 utf8 编码保存文件?希腊语和下标 0 到 9 在 Unicode 中都可用于无限下标标签,因此不要使用 (Xe)(La)TeX 表示法,而是尝试直接使用 δ₁、δ₂、δ₃、λ₁、λ₂ 和 λ₃,然后查看如果 dot 接受这些?
-
我希望有一种我在某处错过的简单直接的方法;此外,Unicode 字符很难输入。
-
“直接使用你想看的文字”是最简单的,但是如果你不使用任何东西来创造你的生活,“输入的痛苦”部分是真的更轻松。在 Windows 上,我使用免费的babelstone.co.uk/Software/BabelMap.html 几乎可以立即找到我需要但无法输入的任何字符。多亏了它,我多年来一直没有输入疼痛。
-
感谢您的指点 --- 我尝试了其他一些字符映射应用程序,但 BabelMap 更有用。