Seite 1 von 1

Tabularx multicolumn Darstellung überschneidet sich

Verfasst: Di 5. Mai 2015, 16:35
von UserTob
Hallo liebe LaTeX gemeinde,

ich habe ein Problem mit Tabularx, wenn ich mehr als 7 Einträge in der midrule einfüge bekomme ich eine unschöne, nicht leserliche formatierung. So langsam bin ich am verzweifeln... Villeicht kann mir ja einer Anhand meines Codes und der Vorher/Nachher Screenshots weiterhelfen. :wink:
\begin{table}[hbt]
\centering
\begin{minipage}[t]{1\textwidth} % Breite, z.B. 1\textwidth		
\caption{Verfügbarkeit der Hardware Funktionen} % Überschrift
\begin{tabularx}{\columnwidth}{lclll}
\toprule
\mc{1}{\textbf{Funktion}}  & \mc{1}{\textbf{Soll/Kann}} &\mcc{3}{\textbf{Vefügbarkeit}}   \\
\mc{1}{}  & \mc{1}{} & \mc{1}{\textit{emPC-A500}} & \mc{1}{\textit{emPC-A/iMX6}} & \mc{1}{\textit{emPC-Cx+}}\\
\midrule
\mc{1}{\textbf{Watchdog}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{Nur über COM-Express Modul} \\
\mc{1}{\textbf{CAN-Terminierung}}  & \mc{1}{tbd} & \mcc{3}{Ja (wenn auf dem System CAN vorhanden)} \\
\mc{1}{\textbf{Lese/Schreibe \gls{NVRAM}}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{Ja} \\
\mc{1}{\textbf{Auslesen der Versorgungsspannung}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{n.v.} \\
\mc{1}{\textbf{Auslesen der Temperatur}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{n.v.} & \mc{1}{Ja} \\
\mc{1}{\textbf{LED Ansteuerung}}  & \mc{1}{tbd} & \mc{1}{2 LEDS} & \mc{1}{2 LEDS} & \mc{1}{4 LEDS} \\
\mc{1}{\textbf{Display-Backlight Steuerung}}  & \mc{1}{tbd} & \mcc{3}{Ja (wenn der emPC ein emView ist)} \\
%\mc{1}{\textbf{Lüfter Steuerung}}  & \mc{1}{tbd} & \mcc{1}{n.v.} & \mcc{1}{n.v.} & \mcc{1}{Ja} \\ %TODO wenn einkommentiert ist die tabelle schrott
%\mc{1}{\textbf{Lesen von Systeminformationen}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{Ja} \\ %TODO wenn einkommentiert ist die tabelle schrott
\bottomrule
\end{tabularx}
\source{Eigene Darstellung} % Quelle
\label{tab_hardware_func}
\end{minipage}
\end{table}
 

Im Anang ist der Vorher/ Nachher Screenshots.
Bild
Bild

Grüße
Tobias

Verfasst: Di 5. Mai 2015, 16:39
von Johannes_B
Erstell uns bitte ein Minimalbeispiel.

Verfasst: Di 5. Mai 2015, 16:59
von UserTob
Die documentclass ist vom Layout für meine Ausarbeitung vorgegeben, wenn ich diese unberührt lasse, wird die Tabelle vernünftig dargstellt..... Ich hoffe das hier ist Minimal genung, anders lässt sich der Fehler leider nicht reproduzieren...
\documentclass[
paper=A4,         % alle weiteren Papierformat einstellbar
fontsize=12pt,    % Schriftgröße (12pt, 11pt (Standard))
BCOR12mm,         % Bindekorrektur, bspw. 1 cm
DIV14,            % breiter Satzspiegel
parskip=half*,    % Absatzformatierung s. scrguide 3.1
headsepline,      % Trennline zum Seitenkopf  
%footsepline,     % Trennline zum Seitenfuß
%normalheadings,  % Überschriften etwas kleiner (smallheadings)
listof=totoc,     % Tabellen & Abbildungsverzeichnis ins Inhaltsverzeichnis      
%bibtotoc,        % Literaturverzeichnis im Inhalt 
%draft            % Überlangen Zeilen in Ausgabe gekennzeichnet
footinclude=false,% Fußzeile in die Satzspiegelberechnung einbeziehen 
headinclude=true, % Kopfzeile in die Satzspiegelberechnung einbeziehen 
final             % draft beschleunigt die Kompilierung
]
{scrartcl}

\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}

\newcommand{\mc}[2]{\multicolumn{#1}{>{\setlength{\hsize}{#1\hsize}}X}{#2}}
\newcommand{\mcc}[2]{\multicolumn{#1}{c}{#2}}
\renewcommand{\arraystretch}{1.5} %Zeilenabstand

\begin{table}[hbt]
\centering
\begin{minipage}[t]{1\textwidth} % Breite, z.B. 1\textwidth		
\begin{tabularx}{\columnwidth}{lclll}
\toprule
\mc{1}{\textbf{Funktion}}  & \mc{1}{\textbf{Soll/Kann}} &\mcc{3}{\textbf{Vefügbarkeit}}   \\
\mc{1}{}  & \mc{1}{} & \mc{1}{\textit{emPC-A500}} & \mc{1}{\textit{emPC-A/iMX6}} & \mc{1}{\textit{emPC-Cx+}}\\
\midrule
\mc{1}{\textbf{Watchdog}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{Nur über COM-Express Modul} \\
\mc{1}{\textbf{CAN-Terminierung}}  & \mc{1}{tbd} & \mcc{3}{Ja (wenn auf dem System CAN vorhanden)} \\
\mc{1}{\textbf{Lese/Schreibe NVRAM}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{Ja} \\
\mc{1}{\textbf{Auslesen der Versorgungsspannung}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{n.v.} \\
\mc{1}{\textbf{Auslesen der Temperatur}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{n.v.} & \mc{1}{Ja} \\
\mc{1}{\textbf{LED Ansteuerung}}  & \mc{1}{tbd} & \mc{1}{2 LEDS} & \mc{1}{2 LEDS} & \mc{1}{4 LEDS} \\
\mc{1}{\textbf{Display-Backlight Steuerung}}  & \mc{1}{tbd} & \mcc{3}{Ja (wenn der emPC ein emView ist)} \\
%\mc{1}{\textbf{Lüfter Steuerung}}  & \mc{1}{tbd} & \mcc{1}{n.v.} & \mcc{1}{n.v.} & \mcc{1}{Ja} \\ %TODO wenn einkommentiert ist die tabelle schrott
%\mc{1}{\textbf{Lesen von Systeminformationen}}  & \mc{1}{tbd} & \mc{1}{Ja} & \mc{1}{Ja} & \mc{1}{Ja} \\ %TODO wenn einkommentiert ist die tabelle schrott
\bottomrule
\end{tabularx}
\end{minipage}
\end{table}

\end{document}



Verfasst: Di 5. Mai 2015, 18:02
von Johannes_B
Das tbd ist in allen Zeilen, ich würde das also in die Caption nehmen. Die ganzen multicolumns sind auch eher schwer zu überblicken. Schau mal hier:
\documentclass[
fontsize=12pt,
BCOR=12mm,
DIV=14,
captions=tableheading
]{scrartcl}
\usepackage{booktabs}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{array}
\newcommand{\mc}[2]{\multicolumn{#1}{>{\setlength{\hsize}{#1\hsize}}X}{#2}}
\newcommand{\mcc}[2]{\multicolumn{#1}{c}{#2}}
\def\gls{}
\newcolumntype{T}{>{\raggedright\arraybackslash}m{.2\textwidth}}
\begin{document}


\begin{table}[hbt]
\renewcommand{\arraystretch}{1.5} %Zeilenabstand
\centering
\caption{Verfügbarkeit der Hardware Funktionen} % Überschrift
\begin{tabular}{TTTT}
\toprule
\textbf{Funktion}                          &                                            & \textbf{Vefügbarkeit} & \\
\cmidrule{2-4}
                                           & \textit{emPC-A500}                        & \textit{emPC-A/iMX6}  & \textit{emPC-Cx+}\\
\midrule
\textbf{Watchdog}                          & Ja                                        & Ja                    & Nur über COM-Express Modul \\
\textbf{CAN-Terminierung}                  & \multicolumn{3}{c}{Ja (wenn auf dem System CAN vorhanden)} \\
\textbf{Lese/Schreibe \gls{NVRAM}}         & Ja                                        & Ja                    & Ja \\
\textbf{Auslesen der Versorgungsspannung}  & Ja                                        & Ja                    & n.v. \\
\textbf{Auslesen der Temperatur}           & Ja                                        & n.v.                  & Ja \\
\textbf{LED Ansteuerung}                   & 2 LEDS                                    & 2 LEDS                & 4 LEDS \\
\textbf{Display-Backlight Steuerung}       & \multicolumn{3}{c}{Ja (wenn der emPC ein emView ist)} \\
\textbf{Lüfter Steuerung}                  & n.v.                                      & {n.v.}                & {Ja} \\ %TODO wenn einkommentiert ist die tabelle schrott
\textbf{Lesen von Systeminformationen}     & Ja                                        & Ja                    & Ja \\ %TODO wenn einkommentiert ist die tabelle schrott
\bottomrule
\end{tabular}
\label{tab_hardware_func}
\end{table}
\end{document}:

Verfasst: Di 5. Mai 2015, 18:36
von esdd
Und noch eine Alternative mit tabularx
\documentclass[
 paper=A4,         % alle weiteren Papierformat einstellbar 
 fontsize=12pt,    % Schriftgröße (12pt, 11pt (Standard)) 
 BCOR12mm,         % Bindekorrektur, bspw. 1 cm 
 DIV14,            % breiter Satzspiegel 
 parskip=half*,    % Absatzformatierung s. scrguide 3.1 
 headsepline,      % Trennline zum Seitenkopf   
 listof=totoc,     % Tabellen & Abbildungsverzeichnis ins Inhaltsverzeichnis       
 footinclude=false,% Fußzeile in die Satzspiegelberechnung einbeziehen  
 headinclude=true, % Kopfzeile in die Satzspiegelberechnung einbeziehen  
 final             % draft beschleunigt die Kompilierung 
] 
{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{tabularx}% lädt auch array
\usepackage{booktabs}
\usepackage{ragged2e}


%\newcommand{\mc}[2]{\multicolumn{#1}{>{\setlength{\hsize}{#1\hsize}}X}{#2}}
\newcommand{\mcc}[2]{\multicolumn{#1}{c}{#2}} 
\renewcommand{\arraystretch}{1.5} %Zeilenabstand 

\begin{document} 
\begin{table}[hbt]
  \centering
  \begin{tabularx}{\linewidth}{>{\bfseries\RaggedRight\hspace{0pt}}p{.2\linewidth}
                               c*{3}{>{\RaggedRight\hspace{0pt}}X}} 
    \toprule 
    Funktion & \textbf{Soll/Kann} &\mcc{3}{\textbf{Verfügbarkeit}}   \\ 
    & & \textit{emPC-A500} & \textit{emPC-A/iMX6} & \textit{emPC-Cx+}\\ 
    \midrule 
    Watchdog & tbd& Ja & Ja & Nur über COM-Express Modul\\ 
    CAN-\newline Terminierung & tbd & \mcc{3}{Ja (wenn auf dem System CAN vorhanden)} \\ 
    Lese/Schreibe NVRAM & tbd & Ja & Ja & Ja \\ 
    Auslesen der Versorgungsspannung  & tbd & Ja & Ja & n.\,v. \\ 
    Auslesen der Temperatur  & tbd & Ja &  n.\,v. & Ja \\ 
    LED An\-steuerung  & tbd & 2 LEDS & 2 LEDS & 4 LEDS \\ 
    Display-Backlight Steuerung  & tbd & \mcc{3}{Ja (wenn der emPC ein emView ist)} \\ 
    Lüfter\newline Steuerung  & tbd & n.\,v. & n.\,v. & Ja \\
    Lesen von System\-informationen  & tbd & Ja & Ja & Ja \\
    \bottomrule 
  \end{tabularx} 
\end{table} 
\end{document} 
Gruß
Elke

Bild

Verfasst: Di 5. Mai 2015, 19:13
von UserTob
Erstmal vielen dank für die Resonanz! Ich werde beide Vorschläge gleich morgen ausprobieren.

@Johannes_B: Das tbd --> To be defined --> wollte ich nachträglich noch ändern ;)