Nassi-Shneiderman mit struktex.sty: Text um 90° drehen?

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Sunny2010
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Fr 25. Jun 2010, 14:07

Nassi-Shneiderman mit struktex.sty: Text um 90° drehen?

Beitrag von Sunny2010 »

Hallo zusammen,

nachdem ich erfolgreich ein Package gefunden habe, dass es ermöglicht Nassi-Shneiderman-Diagramme zu erstellen, hab ich jetzt ein kleines Problem.
Anbei ein Minibeispiel mit meinem Diagramm:
\documentclass[
  	fontsize=11pt,
	ngerman]{scrbook}
\usepackage[pict2e]{struktex} %Nassi-Shneiderman-Diagramme
\usepackage{eso-pic,graphicx,picinpar}
\usepackage{float}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{fancybox}

\begin{document}

\sProofOn
\begin{figure}[htb]
\centering
\begin{struktogramm}(120,180)
\descriptionwidth=80pt
  \assign {Funktion Config\_Data(sRefNo, rngConfigMatrix, sCriteria): Zuordnung zwischen Referenznr und Eigenschaften}
\assign
{
	\begin{declaration}[Parameter:]
		 \description{\pVar{sRefNo}} {\pKey{String}-Parameter}
		 \description{\pVar{rngConfigMatrix}} {\pKey{Range}-Parameter}
 		 \description{\pVar{sCriteria}} {\pKey{String}-Parameter}
		 \description{\pVar{iColumns, iRows, i}} {\pKey{Integer}-Parameter}
	\end{declaration}
}
\assign
{	Initialisierung:\\
	iColumns = Anzahl der Spalten von rngConfigMatrix;\\
 	iRows = Anzahl der Reihen von rngConfigMatrix
}
\while[6]{for i=1 to iRows}
	\ifthenelse[15]{2}{1}{if rngConfigMatrix.Text = sRefNo}{\sTrue}{\sFalse}
	\assign[10]{EXIT FOR-Schleife}
	\change
	\assign[10]{nächste Reihe von rngConfigMatrix}
	\ifend
	\assign[10]{i=i+1}
\whileend
\ifthenelse[15]{1}{2}{Keine Übereinstimmung gefunden}{\sTrue}{\sFalse}
	\ifthenelse[25]{3}{1}{if Criteria = PF}{\sTrue}{\sFalse}
		\assign[10]{Return:\\Keine Materialnummer vorhanden}
		\change
		\assign[14]{\strut}
	\ifend
		\change
		\case{4}{9}{Criteria}{PF}
			\assign[19]{return PF}
			\switch{Cl}
			\assign[19]{return Cl}
			\switch{L}
			\assign[19]{return L}
			\switch{BL}
			\assign[19]{return BL}
			\switch{BS}
			\assign[19]{return BS}
			\switch{CHS}
			\assign[19]{return CHS}
			\switch{BGA}
			\assign[19]{return BGA}
			\switch{Cu}
			\assign[19]{return Cu}
			\switch{Else}
			\assign[19]{return ND}
		\caseend
\ifend
\end{struktogramm}
\caption{Funktion Config\_Data}
\end{figure}
\sProofOff
\end{document}
Nun wird das ganze bei der Case-Unterscheidung sehr eng. Ich hab schon ein paar Sachen ausprobiert: \usepackage{rotating} mit \begin{rotate}{90} Text \end{rotate} und auch \rotatebox{90}{Text}, aber leider tut sich da nix.

Kann mir jemand von Euch helfen?
Danke schonmal,
viele Grüße
Sunny

Sunny2010
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Fr 25. Jun 2010, 14:07

Beitrag von Sunny2010 »

Hallo zusammen,
leider habe ich noch keine Lösung für mein Problem gefunden, ist mein Thema so außergewöhnlich, dass niemand Rat weiß?

Wäre wirklich dankbar. Denn so, wie die Nassi-Shneiderman-Diagramme jetzt aussehen, ist das ja nicht gut in einer Diplomarbeit zu verwenden...

Es wäre gut, wenn man einfach innerhalb eines bestimmten Bereichs den Text um 90° drehen könnte, um die Lesbarkeit des Diagramms zu verbessern.

Danke vielmals für Hilfe oder auch Ideen, wie ich Hilfe bekommen könnte!

Schöne Grüße
Sunny

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Ich kenne mich mit solchen Darstellungen absolut überhaupt nicht aus, daher habe ich dich vielleicht falsch verstanden.

In diesem Code habe ich an verschiedenen Stellen eine rotatebox eingebaut, und es funktioniert:
\documentclass[ 
     fontsize=11pt, 
   ngerman]{scrbook} 
\usepackage[pict2e]{struktex} %Nassi-Shneiderman-Diagramme 
\usepackage{eso-pic,graphicx,picinpar} 
\usepackage{float} 
\usepackage{babel} 
\usepackage[T1]{fontenc} 
\usepackage[latin1]{inputenc} 
\usepackage{amsmath} 
\usepackage{fancybox} 

\begin{document} 

\sProofOn 
\begin{figure}[htb] 
\centering 
\begin{struktogramm}(120,180) 
\descriptionwidth=80pt 
  \assign {Funktion Config\_Data(sRefNo, rngConfigMatrix, sCriteria): Zuordnung zwischen Referenznr und Eigenschaften} 
\assign 
{ 
   \begin{declaration}[Parameter:] 
       \description{\pVar{sRefNo}} {\pKey{String}-Parameter} 
       \description{\pVar{rngConfigMatrix}} {\pKey{Range}-Parameter} 
        \description{\pVar{sCriteria}} {\pKey{String}-Parameter} 
       \description{\pVar{iColumns, iRows, i}} {\pKey{Integer}-Parameter} 
   \end{declaration} 
} 
\assign 
{   Initialisierung:\\ 
   iColumns = Anzahl der Spalten von rngConfigMatrix;\\ 
    iRows = Anzahl der Reihen von rngConfigMatrix 
} 
\while[6]{for i=1 to iRows} 
   \ifthenelse[15]{2}{1}{if rngConfigMatrix.Text = sRefNo}{\sTrue}{\sFalse} 
   \assign[10]{\rotatebox{90}{EXIT FOR-Schleife} }
   \change 
   \assign[10]{nächste Reihe von rngConfigMatrix} 
   \ifend 
   \assign[10]{i=i+1} 
\whileend 
\ifthenelse[15]{1}{2}{Keine Übereinstimmung gefunden}{\sTrue}{\sFalse} 
   \ifthenelse[25]{3}{1}{if Criteria = PF}{\rotatebox{90}{\sTrue}}{\rotatebox{90}{\sFalse}}
      \assign[10]{Return:\\Keine Materialnummer vorhanden} 
      \change 
      \assign[14]{\strut} 
   \ifend 
      \change 
      \case{4}{9}{\rotatebox{90}{Criteria}}{PF} 
         \assign[19]{return PF} 
         \switch{Cl} 
         \assign[19]{return Cl} 
         \switch{L} 
         \assign[19]{return L} 
         \switch{BL} 
         \assign[19]{return BL} 
         \switch{BS} 
         \assign[19]{return BS} 
         \switch{CHS} 
         \assign[19]{return CHS} 
         \switch{BGA} 
         \assign[19]{return BGA} 
         \switch{Cu} 
         \assign[19]{return Cu} 
         \switch{Else} 
         \assign[19]{return ND} 
      \caseend 
\ifend 
\end{struktogramm} 
\caption{Funktion Config\_Data} 
\end{figure} 
\sProofOff 
\end{document}

Sunny2010
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Fr 25. Jun 2010, 14:07

Beitrag von Sunny2010 »

Hallo Xenara,
interessanter Weise hat's mit deinem Programm geklappt. Es hat auch in meinem großen Dokument geklappt.
Die DVI-Vorschau kriegt's anscheinend nur nicht hin.

Danke für die Hilfe!
Viele Grüße
Sunny

Antworten