2015-05-04 21 views
5

[Środowisko: Graphviz 2,38/Windows 7]czcionką Symbol/oznaczenie matematyki w graphviz

Korzystanie dot, chcę produkować schematy ścieżek jak poniżej do reprezentowania modelu równań strukturalnych (no, tutaj, tylko prosta jednoczynnikowy model pomiaru). Chciałbym użyć greckich liter dla niektórych węzłów i krawędzi, a faktycznie wolą, czy mogę użyć notacji LaTeX-jak w pliku kropka jak \ksi, \lambda_1 lub \delta_1

threevar

Ten schemat jest podobno reprezentują trzy równania

\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*} 

najbliżej Doszedłem do tego jest następujący plik .dot kludge, gdzie wybrał font = „symbol” i zastąpiono greckich liter ich rzymskich odpowiedników.

Jednak to nie działa dot -Tpdf lub AFAICS innych urządzeń innych niż Postscript dot -Tps, dając mi plik .eps muszę konwertować do formatu PDF lub PNG.

Pytanie: czy w tej sytuacji jest coś lepszego?

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; 
} 
+0

głupie pytanie: dlaczego nie wystarczy napisać δ₁, δ₂ itp tekstu jako dosłownym, z twoim plikiem zapisanym z kodowaniem utf8? Zarówno grecki, jak i indeksy dolne od 0 do 9 są dostępne w Unicode dla nieskończenie indeksowanych etykiet, więc zamiast używać (Xe) (La) notacji TeX, spróbuj użyć prostego w górę δ₁, δ₂, δ₃, λ₁, λ₂ i λ₃, a następnie zobacz czy kropka je akceptuje? –

+0

Miałem nadzieję, że istnieje prosty, bezpośredni sposób, który gdzieś przeoczyłem; również, znaki unicode są bólem, aby wejść. – user101089

+0

"Samo użycie tekstu, który chcesz zobaczyć" jest tak proste, jak to tylko możliwe, ale część "ból do wejścia" jest prawdziwa, jeśli nie używasz niczego, aby ułatwić Ci życie. W systemie Windows używam darmowego http://www.babelstone.co.uk/Software/BabelMap.html, aby od razu znaleźć dowolną postać, której potrzebuję, ale której nie mogę wpisać. Przez lata nie odczuwałem bólu wejściowego. –

Odpowiedz

3

OK, używając znaków UTF8 bezpośrednio w pliku .dot, mogę teraz uniknąć symbol czcionki kludge (ale co starałem dla indeksów, np, indeks-onu, x2081 prostu mają małe pole zawierające " 2081 ')

Oto zmieniony plik, który teraz działa zarówno z -Tpdf i -Tpng. (Znaki UTF8 nie pojawiają się właściwie w tym poście.)

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; 
    } 

Wynikiem jest:

enter image description here