PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Operatorbäume



uwerothfeld
27-04-2009, 22:59
Hallo zusammen,

gibt es ein einfaches Paket, welches mir erlaubt, solche Operatorbäume in Latex zu definieren? Ich hoffe auf was anderes, als pstricks. Das ist mir ehrlich gesagt zu kompliziert.

Sowas will ich: Operatortree (http://www.nowpublishers.com/10.1561/DBS19/1900000001/DBS001-2_2.jpg)

Jemand nen Tip???

Uwe

mechanicus
27-04-2009, 23:38
Hallo zusammen,

gibt es ein einfaches Paket, welches mir erlaubt, solche Operatorbäume in Latex zu definieren? Ich hoffe auf was anderes, als pstricks. Das ist mir ehrlich gesagt zu kompliziert.

Sowas will ich: Operatortree (http://www.nowpublishers.com/10.1561/DBS19/1900000001/DBS001-2_2.jpg)

Jemand nen Tip???

Uwe
Hallo,

wenn dir pstricks zu kompliziert ist, bleibt dir noch tikz (was ich persönlich schwerer finde). Ist aber auch nicht anders. Also bleibt dir nur ein externes Programm.

Gruß
Marco

localghost
27-04-2009, 23:46
Die Anleitung (Kapitel 17 - Making Trees Grow, S. 183ff) von pgf/tikZ (http://ctan.org/pkg/pgf) zeigt dir auf zehn Seiten Schritt für Schritt, wie Du das zu deiner Zufriedenheit anstellst. Schon das erste Beispiel ist recht einfach gehalten und sehr gut verwendbar.


MfG
Thorsten¹

mechanicus
27-04-2009, 23:59
Hallo,

vielleicht sollte ich auch noch Beispiel nachreichen:
http://www.tug.org/PSTricks/main.cgi?file=pst-tree/pst-tree
Die Dokumention zu pst-tree ist ebenfalls sehr zugänglich.

Gruß
Marco

voss
28-04-2009, 09:32
gibt es ein einfaches Paket, welches mir erlaubt, solche Operatorbäume in Latex zu definieren? Ich hoffe auf was anderes, als pstricks. Das ist mir ehrlich gesagt zu kompliziert.



\documentclass{article}
\usepackage{pst-tree}
\renewcommand\TR{\Tr{\pspolygon(0.5,-0.2)(0.5,0.2)(-0.5,-0.2)(-0.5,0.2)}}

\begin{document}

\Large
\psset{nodesep=3pt,treesep=2cm}
\pstree{\TR}{%
\pstree{\TR}{%
\pstree{\TR}{%
\Tr{S}
\Tr{R}
}
\Tr{T}
}
\Tr{U}
}
\end{document}


Herbert

uwerothfeld
06-05-2009, 10:29
Hallo zusammen,

also ich habe mir pstricks mal angeschaut und festgestellt, ist ja doch einfacher als gedacht. vorallem dank der hilfe von voss. nun habe ich allerdings das problem, dass mir mein baum rechts aus der seite "rauswächst". was macht man da? hier mal mein code:


\documentclass{article}

\usepackage[T1]{fontenc} % T1 Schrift Encoding
\usepackage{textcomp} % Zusatzliche Symbole (Text Companion font extension)
\usepackage{lmodern} % Latin Modern Schriftart

\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-tree}
\usepackage[fixamsmath,disallowspaces]{mathtools}
\usepackage{fixmath}
\usepackage[all,warning]{onlyamsmath}
\usepackage{wasysym}

\newcommand\TRJOIN{\Tr{$\Join$}}
\newcommand\TRJOINQEP[1]{\Tr{$\Join_{\text{#1}}$}}

\newcommand\TRCART{\Tr{$\times$}}
\newcommand\TRCUP{\Tr{$\cup$}}
\newcommand\TRFOR[1]{\Tr{$\Delta_{\text{#1}}$}}
\newcommand\TRSEL[1]{\Tr{$\sigma_{\text{#1}}$}}
\newcommand\TRPRO[1]{\Tr{$\Pi_{\text{#1}}$}}


\begin{document}
\psset{nodesep=3pt,treesep=2cm, levelsep=5ex}
\pstree{
\TRPRO{Temp, Hum, ID}}{%
\pstree{\TRCUP}{
\pstree{\TRJOINQEP{ID~>~5,~TS~>~20}}{%
\pstree{\TRSEL{Light~<~100~AND~ID~>~5~AND~TS~>~20}}{
\Tr{Temp}
}
\pstree{\TRSEL{Temp~>~5~AND~ID~>~5~AND~TS~>~20}}{
\Tr{Light}
}
}
\pstree{\TRSEL{Hum~>=~10~AND~ID~>~5~AND~TS~>~20}}{%
\Tr{Hum}
}
}
}


Ich habe es jetzt mit rput korrigiert, finde es aber doof, da ich dann immer schauen muß, verschieben, schauen ... Wäre toll, wenn es automatisch angepasst würde.

Jemand nen Tip? Schon mal vielen Dank. Uwe

mechanicus
06-05-2009, 13:12
Hallo,

eine Möglichkeit wäre \psscalebox

\documentclass{article}

\usepackage[T1]{fontenc} % T1 Schrift Encoding
\usepackage{textcomp} % Zusatzliche Symbole (Text Companion font extension)
\usepackage{lmodern} % Latin Modern Schriftart

\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-tree}
\usepackage[fixamsmath,disallowspaces]{mathtools}
\usepackage{fixmath}
\usepackage[all,warning]{onlyamsmath}
\usepackage{wasysym}

\newcommand\TRJOIN{\Tr{$\Join$}}
\newcommand\TRJOINQEP[1]{\Tr{$\Join_{\text{#1}}$}}

\newcommand\TRCART{\Tr{$\times$}}
\newcommand\TRCUP{\Tr{$\cup$}}
\newcommand\TRFOR[1]{\Tr{$\Delta_{\text{#1}}$}}
\newcommand\TRSEL[1]{\Tr{$\sigma_{\text{#1}}$}}
\newcommand\TRPRO[1]{\Tr{$\Pi_{\text{#1}}$}}
\usepackage[showframe]{geometry}

\begin{document}
\begin{center}
\psscalebox{0.85}{
\psset{nodesep=3pt,treesep=2cm, levelsep=5ex}
\pstree{
\TRPRO{Temp, Hum, ID}}{%
\pstree{\TRCUP}{
\pstree{\TRJOINQEP{ID~>~5,~TS~>~20}}{%
\pstree{\TRSEL{Light~<~100~AND~ID~>~5~AND~TS~>~20}}{
\Tr{Temp}
}
\pstree{\TRSEL{Temp~>~5~AND~ID~>~5~AND~TS~>~20}}{
\Tr{Light}
}
}
\pstree{\TRSEL{Hum~>=~10~AND~ID~>~5~AND~TS~>~20}}{%
\Tr{Hum}
}
}
}}

\end{center}

\end{document}


Gruß
Marco

voss
06-05-2009, 14:26
Ich habe es jetzt mit rput korrigiert, finde es aber doof, da ich dann immer schauen muß, verschieben, schauen ... Wäre toll, wenn es automatisch angepasst würde.


Das sind natürlich ungünstige Kontenlabel. Besser wäre es, die Ausdrücke in eine
Tabelle oder array mit zwei Zeilen zu schreiben. Alternativ kann man die Baumbreite
verringern und mit \resizebox alles auf Zeilenbreite bringen:


\documentclass{article}

\usepackage[T1]{fontenc} % T1 Schrift Encoding
\usepackage{textcomp} % Zusatzliche Symbole (Text Companion font extension)
\usepackage{lmodern} % Latin Modern Schriftart

\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-tree}
\usepackage{graphicx}
\usepackage[fixamsmath,disallowspaces]{mathtools}
\usepackage{fixmath}
\usepackage[all,warning]{onlyamsmath}
\usepackage{wasysym}

\newcommand\TRJOIN{\Tr{$\Join$}}
\newcommand\TRJOINQEP[1]{\Tr{$\Join_{\text{\small#1}}$}}

\newcommand\TRCART{\Tr{$\times$}}
\newcommand\TRCUP{\Tr{$\cup$}}
\newcommand\TRFOR[1]{\Tr{$\Delta_{\text{\small#1}}$}}
\newcommand\TRSEL[1]{\Tr{$\sigma_{\text{\small#1}}$}}
\newcommand\TRPRO[1]{\Tr{$\Pi_{\text{\small#1}}$}}

\parindent=0pt

\begin{document}
\psset{nodesep=3pt,treesep=2cm, levelsep=10ex}
\resizebox{\linewidth}{!}{%
\pstree{%
\TRPRO{Temp, Hum, ID}}{%
\pstree[thistreesep=15pt]{\TRCUP}{
\pstree[thistreesep=10pt]{\TRJOINQEP{ID~>~5,~TS~>~20}}{%
\pstree{\TRSEL{Light~<~100~AND~ID~>~5~AND~TS~>~20}}{
\Tr{Temp}
}
\pstree{\TRSEL{Temp~>~5~AND~ID~>~5~AND~TS~>~20}}{
\Tr{Light}
}
}
\pstree{\TRSEL{Hum~>=~10~AND~ID~>~5~AND~TS~>~20}}{%
\Tr{Hum}
}
}
}}

\end{document}


Herbert

uwerothfeld
14-05-2009, 17:58
Hallo Jungs,

auch wenn es schon ein wenig her ist, vielen Dank für Eure Hilfe und Tipps. Geht hervorragend! Das mit dem Array habe ich auch gemacht, sieht nun alles sehr schick aus. Vielen vielen Dank.

Uwe