PaRu
29-01-2008, 18:27
ich habe mit pstricks folgendes flowchart erstellt:
\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-node}
\usepackage[scaled=.90]{helvet}
\usepackage{amsfonts, amssymb}
\usepackage[cmex10]{amsmath}
\pagestyle{empty}
\makeatletter
\def\MyBox{\pst@object{MyBox}}
\def\MyBox@i#1#2#3{{%
\use@par % Local parameters
\if@star\solid@star\fi % Stared version
\pssetlength{\pst@dimc}{-\psframesep}
\psaddtolength{\pst@dimc}{-\psframesep}
\psaddtolength{\pst@dimc}{-\pslinewidth}
\psaddtolength{\pst@dimc}{-\pslinewidth}
\pssetlength{\pst@dima}{#1}
\psaddtolength{\pst@dima}{\pst@dimc}
\pssetlength{\pst@dimb}{#2}
\psaddtolength{\pst@dimb}{\pst@dimc}
\setbox\z@\vbox to\pst@dimb{\hsize\pst@dima\sloppy\vfil#3\vfil}%
\psframebox{\box\z@}}}
%\setlength{\parindent}{0cm}
\begin{document}
\rput[br](0, 1){\rnode{A}{\MyBox[framesep=0.15]{2.25}{1.0}{\noindent Data Signal\\ @ $\lambda_{\mathrm{Data}}$}}}
\rput[br](0, -1){\rnode{B}{\MyBox[framesep=0.15]{2.25}{1.0}{\noindent CW Signal\\ @ $\lambda_{\mathrm{CW}}$}}}
\rput[br](4.5, 0){\rnode{C}{\pstribox[trimode=R,framesep=0.115]{UL-SOA}}}
\rput[br](7, 0){\rnode{D}{\MyBox[framesep=0.15]{1.65}{1.0}{\noindent OBPF\\ @ $\lambda_{\mathrm{Data}}$}}}
\rput[br](9.5, -0.25){\rnode{E}{\MyBox[framesep=0.15]{1.75}{1.5}{\noindent Optical\\ Sampling\\ Scope}}}
\ncangle[angleA=0, angleB=180, armB=0.8cm, arrowsize=0.2, arrowinset=0]{->}{A}{C}
\ncangle[angleA=0, angleB=180, armB=0.8cm, arrowsize=0.2, arrowinset=0]{->}{B}{C}
\ncangle[angleA=0, angleB=180, arrowsize=0.2, arrowinset=0]{->}{C}{D}
\ncangle[angleA=0, angleB=180, arrowsize=0.2, arrowinset=0]{->}{D}{E}
\end{document}
ich finde, dass das dreieck zu lang ist und würde es gerne kürzen und dafür in der höhe vergrößern (etwas stauchen). wenn ich mit dem framesep parameter etwas spielt, bekommt ich leider nicht das gewünschte ergebnis. ich habe es acuh mit \vphantom und \displaystyle versucht, die aber keine wirkung zeigten.
\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-node}
\usepackage[scaled=.90]{helvet}
\usepackage{amsfonts, amssymb}
\usepackage[cmex10]{amsmath}
\pagestyle{empty}
\makeatletter
\def\MyBox{\pst@object{MyBox}}
\def\MyBox@i#1#2#3{{%
\use@par % Local parameters
\if@star\solid@star\fi % Stared version
\pssetlength{\pst@dimc}{-\psframesep}
\psaddtolength{\pst@dimc}{-\psframesep}
\psaddtolength{\pst@dimc}{-\pslinewidth}
\psaddtolength{\pst@dimc}{-\pslinewidth}
\pssetlength{\pst@dima}{#1}
\psaddtolength{\pst@dima}{\pst@dimc}
\pssetlength{\pst@dimb}{#2}
\psaddtolength{\pst@dimb}{\pst@dimc}
\setbox\z@\vbox to\pst@dimb{\hsize\pst@dima\sloppy\vfil#3\vfil}%
\psframebox{\box\z@}}}
%\setlength{\parindent}{0cm}
\begin{document}
\rput[br](0, 1){\rnode{A}{\MyBox[framesep=0.15]{2.25}{1.0}{\noindent Data Signal\\ @ $\lambda_{\mathrm{Data}}$}}}
\rput[br](0, -1){\rnode{B}{\MyBox[framesep=0.15]{2.25}{1.0}{\noindent CW Signal\\ @ $\lambda_{\mathrm{CW}}$}}}
\rput[br](4.5, 0){\rnode{C}{\pstribox[trimode=R,framesep=0.115]{UL-SOA}}}
\rput[br](7, 0){\rnode{D}{\MyBox[framesep=0.15]{1.65}{1.0}{\noindent OBPF\\ @ $\lambda_{\mathrm{Data}}$}}}
\rput[br](9.5, -0.25){\rnode{E}{\MyBox[framesep=0.15]{1.75}{1.5}{\noindent Optical\\ Sampling\\ Scope}}}
\ncangle[angleA=0, angleB=180, armB=0.8cm, arrowsize=0.2, arrowinset=0]{->}{A}{C}
\ncangle[angleA=0, angleB=180, armB=0.8cm, arrowsize=0.2, arrowinset=0]{->}{B}{C}
\ncangle[angleA=0, angleB=180, arrowsize=0.2, arrowinset=0]{->}{C}{D}
\ncangle[angleA=0, angleB=180, arrowsize=0.2, arrowinset=0]{->}{D}{E}
\end{document}
ich finde, dass das dreieck zu lang ist und würde es gerne kürzen und dafür in der höhe vergrößern (etwas stauchen). wenn ich mit dem framesep parameter etwas spielt, bekommt ich leider nicht das gewünschte ergebnis. ich habe es acuh mit \vphantom und \displaystyle versucht, die aber keine wirkung zeigten.