Seite 1 von 1

Tabelle ragt zu weit raus, wie Tabellenbreite ändern

Verfasst: Sa 16. Nov 2013, 21:18
von Deadlock
\documentclass[a4paper,german,openright,12pt]{scrreprt}
\usepackage{multirow}

\begin{document}
\begin{table}[hc]
\begin{small}
\begin{tabular}{|c|c|c|c||c|c|c|l|}
\hline \multicolumn{2}{c}{Aufg.\textbf{3.4}: Sägezahn} \vline & Rauschen & Frequenz & \multicolumn{2}{c}{Aufg.\textbf{3.5}: Sägezahn}  \vline & Rauschen  & \multicolumn{1}{c}{Frequenz} \vline \\ 
\cline{1-3} \cline{5-7} Amplitude  & Frequenz  & Effektivwert  & (gemessen) & Amplitude  & Frequenz  & Effektivwert  & \multicolumn{1}{c}{(gemessen)} \vline \\ 
\hline \multirow{6}{0,5cm}{5V} &  \multirow{2}{1cm}{20 Hz}  & \multirow{6}{0,5cm}{2V} & \multirow{2}{1,5cm}{12,4 Hz} & \multirow{6}{0,5cm}{5V} & \multirow{2}{1cm}{20 Hz} & \multirow{6}{1cm}{2V} & a) 12,5 Hz\\
\cline{8-8} &  &  &  &  &  &  & b) \\ 
\cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8} & \multirow{2}{1cm}{2 Hz} &  & \multirow{2}{1,5cm}{1,93 Hz} &  & \multirow{2}{1cm}{2 Hz} &  & a) 1,94 Hz \\
\cline{8-8} &  &  &  &  &  &  & b) \\
\cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8}  & \multirow{2}{1,5cm}{200 mHz} &  & \multirow{2}{1,5cm}{201 mHz} &  & \multirow{2}{1,5cm}{200 mHz} &  & a) 201 mHz \\ 
\cline{8-8} &  &  &  &  &  &  & b) \\
\hline 
\end{tabular}
\end{small}
\end{table}
\end{document}
Ich hoffe das Beispiel ist jetzt nicht zu minimal. Ich hab 2 Probleme bei dieser Tabelle.

Erstens: In der ersten Zeile wird der linken Rahmen nicht angezeigt. Da ist also eine Lücke.

Zweitens: Sie ragt zu weit zum rechten Seitenrand. Sie sollte aber eher die Breite des Textrumpfes haben. Wie kann ich das bewerkstelligen?

Verfasst: Sa 16. Nov 2013, 23:07
von esdd
In deiner ersten \multicolumn fehlt | vor dem c
\multicolumn{2}{|c}{Aufg.\textbf{3.4}: Sägezahn}
Die Tabelle ist einfach zu breit. Mit \resizebox aus dem graphicx Paket kannst du sie aber auf Textbreite skalieren.

Für die vertikale Zentrierung innerhalb der Tabelle kannst du als letzte Spalte eine m-Spalte verwenden oder eine neue Spalte, die auf dieser beruht.
\documentclass[ngerman,12pt]{scrreprt} 
\usepackage[utf8]{inputenc} 
\usepackage{babel}

\usepackage{graphicx}
\usepackage{calc}
\usepackage{ragged2e}
\usepackage{array}

% neue Spaltendefinition W, Syntax: W{<breitester Eintrag in der Spalte>}
\newcolumntype{W}[1]{>{\RaggedRight\hspace{0pt}}m{\widthof{#1}}}

\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \centering
    \resizebox{\textwidth}{!}{
      \begin{tabular}{|c|c|c|c||c|c|c|W{a) 201 mHz}|} 
        \hline 
        \multicolumn{2}{|c}{Aufg.\textbf{3.4}: Sägezahn} 
          \vline & Rauschen & Frequenz & \multicolumn{2}{c}{Aufg.\textbf{3.5}: Sägezahn}  
          \vline & Rauschen  & \multicolumn{1}{c}{Frequenz} \vline \\ 
        \cline{1-3} \cline{5-7} 
        Amplitude & Frequenz  & Effektivwert & (gemessen) & Amplitude & Frequenz 
          & Effektivwert & \multicolumn{1}{c}{(gemessen)} \vline \\ 
        \hline
        & 20 Hz  &  & 12,4 Hz &  & 20 Hz &  & a) 12,5 Hz\newline b)\\ 
        \cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8}
        5 V  & 2 Hz  & 2 V & 1,93 Hz & 5 V  & 2 Hz & 2 V & a) 1,94 Hz\newline b) \\ 
        \cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8}
        & 200 mHz &  & 201 mHz &  & 200 mHz &  & a) 201 mHz \newline b) \\ 
        \hline 
      \end{tabular}
    } 
  \end{minipage}
  \captionof{table}{Beschriftung}
\end{center}
\end{document}
\small ist übrigens ein Schalter und keine Umgebung. Und wenn die Tabelle an genau der Stelle ausgegeben werden soll, an der sie im Code steht, dann verwende keine Gleitumgebung, sondern setze sie mit samt der Beschriftung in eine minipage.

Gruß
Elke

Verfasst: Sa 16. Nov 2013, 23:36
von Deadlock
Danke das mit | bei multicolumn hat schon mal geholfen.

Edith: Hat sich erledigt jetzt sieht es gut aus. Danke für die schnelle und gute Hilfe.