6

I made a diagram with pstrick for my bachelor thesis. For this I defined a new variable.

\documentclass[%
    a4paper,            % Papierformat
    oneside,            % einseitiger Druck
    %twoside,           % zweiseitiger Druck
    12pt,               % Schriftgröße
    onecolumn,          % einspaltiger Text
    %twocolumn,         % zweispaltiger Text
    openright,          % Kapitel dürfen nur auf einer rechten Seite beginnen
    openany,            % Kapitel dürfen rechts oder links beginnen
    parskip=half,       % eine halbe Zeile Abstand zw. Absätzen
    headsepline,        % Kopfzeilenlinie
    footsepline,        % Fußzeilenlinie
    bibliography=totoc, % Bibliographie im Inhaltsverzeichnis
    %idxtotoc           % Index im Inhaltsverzeichnis
    ]{scrbook}
\linespread{1.25}
\recalctypearea %Neuberechnung des Satzspiegels

\usepackage{ifxetex}

\ifxetex
    \usepackage{fontspec}
    \usepackage{polyglossia}
    \setmainlanguage{german}
\else
    \usepackage[T1]{fontenc}    
    \usepackage[utf8]{inputenc} 
    \usepackage{lmodern}
    \usepackage[ngerman]{babel}
\fi


\usepackage[
    left=25mm,
    right=25mm,
    top=30mm,
    bottom=40mm,
    %includeheadfoot,
    ]{geometry}

% deutsche Silbentrennung etc.

% Grafiken: PDF, GIF, PNG
\usepackage{graphicx}

\usepackage[pdf]{pstricks}
\usepackage{pstricks,pst-node}

\newcommand\framenode[2]{\Rnode{#1}{\psframebox{\parbox{3cm}{\centering\bfseries#2}}}}

\begin{document}

\begin{figure}[H]
    \begin{psmatrix}[rowsep=1.2, colsep=2, mnode =r]%
        %%% nodes
        \pnode{Beg} & \framenode{A}{Aufnahme und \\ Verarbeitung \\ Kap. \ref{Audiodateien}} & \framenode{B}{Auslesen der \\ Audio \\ Parameter \\ Kap. \ref{snr}} & \framenode{C}{Transformation in Frequenz/- \\ Skalierungs-\\bereich \\ Kap. \ref{Transformation}}\\
        \pnode{End} & \framenode{G}{Vergleich \\ Schwellwert und \\ Energie \\ Kap. \ref{Stand_SAD}} & \framenode{E}{Bestimmung der\\Energie \\ Kap. \ref{Teager Energy Operator}} & \framenode{D}{Signalglättung \\ Kap. \ref{Autokorelation}} \\
        & & \framenode{F}{Bestimmung des \\ Schwellwertes \\ Kap. \ref{Stand_SAD}}
        %%% nodes connections
        \ncline{Beg}{A}\naput[npos=0.6]{Sprache}\nbput[npos=0.6] {Kap. \ref{Sprache_Rausch_Gehör}}
        \ncline{A}{B}^{Audio}
        \ncline{B}{C}^{}
        \ncbar[linearc=0.15, arm =5mm]{C}{D}\naput[labelsep=0.5em, npos=1.5]{}
        \ncline{D}{E}_{}
        \ncline{E}{F}_{}
        \ncline{E}{G}_{}
        \ncline{G}{End}\nbput[npos=0.8]{Sprachdetektion}
    \end{psmatrix}
    \caption{Allgemeine Verarbeitungskette für eine SAD}
    \label{fig:verarbeitungskette}
\end{figure}

\end{document}

The result looks like this enter image description here

My professor would like to have a diagram in which each box has an identical size. I tried to add the parameter for the height after parbox but it did not change anything. Is there something I am missing?

5

\parbox has three optional arguments, the first defines the vertical position of the \parbox on the baseline, the second is the height of the box, the third is the vertical position of the text inside the box. So to specify the height, you must also specify the vertical position, i.e.

\parbox[c][4cm]{3cm}{\centering\bfseries#2}

output of code

\documentclass[%
    a4paper,            % Papierformat
    oneside,            % einseitiger Druck
    %twoside,           % zweiseitiger Druck
    12pt,               % Schriftgröße
    onecolumn,          % einspaltiger Text
    %twocolumn,         % zweispaltiger Text
    openright,          % Kapitel dürfen nur auf einer rechten Seite beginnen
    openany,            % Kapitel dürfen rechts oder links beginnen
    parskip=half,       % eine halbe Zeile Abstand zw. Absätzen
    headsepline,        % Kopfzeilenlinie
    footsepline,        % Fußzeilenlinie
    bibliography=totoc, % Bibliographie im Inhaltsverzeichnis
    %idxtotoc           % Index im Inhaltsverzeichnis
    ]{scrbook}
\linespread{1.25}
\recalctypearea %Neuberechnung des Satzspiegels

\usepackage{ifxetex}

\ifxetex
    \usepackage{fontspec}
    \usepackage{polyglossia}
    \setmainlanguage{german}
\else
    \usepackage[T1]{fontenc}    
    \usepackage[utf8]{inputenc} 
    \usepackage{lmodern}
    \usepackage[ngerman]{babel}
\fi


\usepackage[
    left=25mm,
    right=25mm,
    top=30mm,
    bottom=40mm,
    %includeheadfoot,
    ]{geometry}

% deutsche Silbentrennung etc.

% Grafiken: PDF, GIF, PNG
\usepackage{graphicx}

\usepackage[pdf]{pstricks}
\usepackage{pst-node}

\newcommand\framenode[2]{\Rnode{#1}{\psframebox{\parbox[c][4cm]{3cm}{\centering\bfseries#2}}}}

\begin{document}

\begin{figure}
    \begin{psmatrix}[rowsep=1.2, colsep=2, mnode =r]%
        %%% nodes
        \pnode{Beg} & \framenode{A}{Aufnahme und \\ Verarbeitung \\ Kap. \ref{Audiodateien}} & \framenode{B}{Auslesen der \\ Audio \\ Parameter \\ Kap. \ref{snr}} & \framenode{C}{Transformation in Frequenz/- \\ Skalierungs-\\bereich \\ Kap. \ref{Transformation}}\\
        \pnode{End} & \framenode{G}{Vergleich \\ Schwellwert und \\ Energie \\ Kap. \ref{Stand_SAD}} & \framenode{E}{Bestimmung der\\Energie \\ Kap. \ref{Teager Energy Operator}} & \framenode{D}{Signalglättung \\ Kap. \ref{Autokorelation}} \\
        & & \framenode{F}{Bestimmung des \\ Schwellwertes \\ Kap. \ref{Stand_SAD}}
        %%% nodes connections
        \ncline{Beg}{A}\naput[npos=0.6]{Sprache}\nbput[npos=0.6] {Kap. \ref{Sprache_Rausch_Gehör}}
        \ncline{A}{B}^{Audio}
        \ncline{B}{C}^{}
        \ncbar[linearc=0.15, arm =5mm]{C}{D}\naput[labelsep=0.5em, npos=1.5]{}
        \ncline{D}{E}_{}
        \ncline{E}{F}_{}
        \ncline{E}{G}_{}
        \ncline{G}{End}\nbput[npos=0.8]{Sprachdetektion}
    \end{psmatrix}
    \caption{Allgemeine Verarbeitungskette für eine SAD}
    \label{fig:verarbeitungskette}
\end{figure}

\end{document}
  • I really don't know why this did not work for me the first time I tried to do it. Now every parbox has the sam height.... Thank you! – s kop Dec 6 '17 at 10:35
  • Should I delete the question because the error is more by myself and not latex? – s kop Dec 6 '17 at 10:37
  • @skop No, I don't think that's necessary. – Torbjørn T. Dec 6 '17 at 10:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.