ciko
03-08-2011, 12:13
Hallo,
Zur Zeit schreibe ich meine Abschlußarbeit und habe folgendes Problem. In meiner Arbeit muss ich ein Merkmlasdiagramm ausliefern. Soweit habe ich ein Beispiel in Latex gefunden und sogar compiliert. Aber das Problem ist , dass ich ein großeres Diagramm darstellen und dieses in einem oder in mehereren Seiten aufzeichnen muss. Ich habe mit Knoten usw kein Problem, sondern mit dem einstellen Layouts.
PS: Die Seite habe ich gedreht und Punto erniedrigt. Wenn ich noch kleiner mache dann erkennt man nichts.
Ich freue mich sehr auf die Antwort
Grüße
Ciko
Code sieht etwa so aus( es ist ein großeres Diagramm).
\documentclass[12pt,a4paper]{article}
\usepackage{pst-tree,pstricks-add}
\SpecialCoor
\newcommand\Itemf[2][]{\Tr[ref=b,#1]{%
\psframebox[linestyle=solid,fillcolor=cyan!50,fillstyle=solid]{\vphantom{gh}#2}}}
\renewcommand{\psedge}{\ncdiag[arm=0]}
\newcommand\psedgeA{\ncdiag[arm=0,arrowscale=2,arrows=-o,nodesepB=3pt]}
\newcommand\psedgeB{\ncdiag[arm=0,arrowscale=2,arrows=-*,nodesepB=3pt]}
\pagestyle{empty}
\makeatletter
\def\Arc{\@ifnextchar*{\Arc@istar}{\Arc@i}}%
\def\Arc@i#1#2#3{%
\psarc[linecolor=black](#1){1cm}%
{!\psGetNodeCenter{#1} \psGetNodeCenter{#2}
#1.y #2.y sub abs #1.x #2.x sub abs atan 180 add 8 sub}%
{!\psGetNodeCenter{#3}
#1.y #3.y sub abs #1.x #3.x sub abs atan neg 360 add 8 add}}
\def\Arc@istar*#1#2#3{%
\pswedge*[linecolor=black](#1){1cm}%
{!\psGetNodeCenter{#1} \psGetNodeCenter{#2}
#1.y #2.y sub abs #1.x #2.x sub abs atan 180 add 8 sub}%
{!\psGetNodeCenter{#3}
#1.y #3.y sub abs #1.x #3.x sub abs atan neg 360 add 8 add}}
\makeatother
\begin{document}
\psset{angleA=-90,angleB=90,levelsep=72pt}
\pstree{\Itemf{E-Shop}}{%
\Itemf[edge=\psedgeB]{Catalogue}%
\pstree{\Itemf[edge=\psedgeB,name=payment]{Payment}}{
\Itemf[name=bank]{Bank transfer}%
\Itemf[name=credit]{Credit Card}%
}%
\pstree{\Itemf[edge=\psedgeB,name=security]{Security}}{
\Itemf[name=high]{High}%
\Itemf[name=standard]{Standard}%
}%
\Itemf[edge=\psedgeA]{Search}%
}
\Arc*{payment}{bank}{credit}\Arc{security}{high}{s tandard}
\end{document}
Zur Zeit schreibe ich meine Abschlußarbeit und habe folgendes Problem. In meiner Arbeit muss ich ein Merkmlasdiagramm ausliefern. Soweit habe ich ein Beispiel in Latex gefunden und sogar compiliert. Aber das Problem ist , dass ich ein großeres Diagramm darstellen und dieses in einem oder in mehereren Seiten aufzeichnen muss. Ich habe mit Knoten usw kein Problem, sondern mit dem einstellen Layouts.
PS: Die Seite habe ich gedreht und Punto erniedrigt. Wenn ich noch kleiner mache dann erkennt man nichts.
Ich freue mich sehr auf die Antwort
Grüße
Ciko
Code sieht etwa so aus( es ist ein großeres Diagramm).
\documentclass[12pt,a4paper]{article}
\usepackage{pst-tree,pstricks-add}
\SpecialCoor
\newcommand\Itemf[2][]{\Tr[ref=b,#1]{%
\psframebox[linestyle=solid,fillcolor=cyan!50,fillstyle=solid]{\vphantom{gh}#2}}}
\renewcommand{\psedge}{\ncdiag[arm=0]}
\newcommand\psedgeA{\ncdiag[arm=0,arrowscale=2,arrows=-o,nodesepB=3pt]}
\newcommand\psedgeB{\ncdiag[arm=0,arrowscale=2,arrows=-*,nodesepB=3pt]}
\pagestyle{empty}
\makeatletter
\def\Arc{\@ifnextchar*{\Arc@istar}{\Arc@i}}%
\def\Arc@i#1#2#3{%
\psarc[linecolor=black](#1){1cm}%
{!\psGetNodeCenter{#1} \psGetNodeCenter{#2}
#1.y #2.y sub abs #1.x #2.x sub abs atan 180 add 8 sub}%
{!\psGetNodeCenter{#3}
#1.y #3.y sub abs #1.x #3.x sub abs atan neg 360 add 8 add}}
\def\Arc@istar*#1#2#3{%
\pswedge*[linecolor=black](#1){1cm}%
{!\psGetNodeCenter{#1} \psGetNodeCenter{#2}
#1.y #2.y sub abs #1.x #2.x sub abs atan 180 add 8 sub}%
{!\psGetNodeCenter{#3}
#1.y #3.y sub abs #1.x #3.x sub abs atan neg 360 add 8 add}}
\makeatother
\begin{document}
\psset{angleA=-90,angleB=90,levelsep=72pt}
\pstree{\Itemf{E-Shop}}{%
\Itemf[edge=\psedgeB]{Catalogue}%
\pstree{\Itemf[edge=\psedgeB,name=payment]{Payment}}{
\Itemf[name=bank]{Bank transfer}%
\Itemf[name=credit]{Credit Card}%
}%
\pstree{\Itemf[edge=\psedgeB,name=security]{Security}}{
\Itemf[name=high]{High}%
\Itemf[name=standard]{Standard}%
}%
\Itemf[edge=\psedgeA]{Search}%
}
\Arc*{payment}{bank}{credit}\Arc{security}{high}{s tandard}
\end{document}