Anzeige:
Ergebnis 1 bis 8 von 8

Thema: verschiedene vertikale Ausrichtungen in Tabelle kombinieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.09.2010
    Beiträge
    9

    verschiedene vertikale Ausrichtungen in Tabelle kombinieren

    Hallo liebe LateX-Community,

    mich plagt folgendes Problem:

    Ich möchte eine Tabelle erstellen, in der bestimmte Spalten vertikal zentriert sind, aber eben nicht alle. In der ganz linken Spalte soll der Text oben ausgerichtet sein.

    Ich habe das einmal mit einer "tabu"-Umgebung versucht, da wird der p{}-Befehl ignoriert. In der tabularx-Umgebung hingegen wird das m{} konsequent nicht beachtet

    Hier das Beispiel:

    Code:
    \documentclass[a4paper,14pt,BCOR10mm,oneside]{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[babel,german=quotes]{csquotes}
    \usepackage[T1]{fontenc}
    \usepackage{tabularx}
    \usepackage[absolute,overlay]{textpos}
    \usepackage{wallpaper}
    \usepackage{tabu}
    \areaset{17cm}{26cm}
    \setlength{\topmargin}{-1.5cm}
    \setlength{\marginparwidth}{0.5cm}
    
    \renewcommand{\familydefault}{\sfdefault}
    \usepackage{helvet}
    
    
    
    \begin{document}
    
    \tabulinesep=0.5ex
    \begin{table}[H]
        \begin{tabu} spread \linewidth {|p{0.1cm}X[m]|m{2.5cm}|m{2.5cm}|m{2.5cm}|}
            \hline
             & \textbf{Fragen} & \centering{Antwort A} & \centering{Antwort B - braucht auch etwas mehr Platz} &
            \centering{Antwort C} \tabularnewline
            \hline
            c.& langer Text langer Text langer Text langer Text langer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
            d. & kurzer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
            e. & kurzer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
            f. & langer Text langer Text langer Text langer Text langer Text langer Text langer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
        \end{tabu}
    \end{table}
    
    \begin{table}[H]
        \begin{tabularx}{\textwidth}{|p{0.1cm}X|m{2.5cm}|m{2.5cm}|m{2.5cm}|}
            \hline
            & \textbf{Fragen} & \centering{Antwort A} & \centering{Antwort B - braucht auch etwas mehr Platz} &
            \centering{Antwort C} \tabularnewline
            \hline
            c. & langer Text langer Text langer Text langer Text langer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
            d. & kurzer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
            e. & kurzer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
            f. & langer Text langer Text langer Text langer Text langer Text langer Text langer Text & \centering{1} & \centering{2} & \centering{3} \tabularnewline
            \hline
        \end{tabularx}
    \end{table}
    
    \end{document}
    Eine Such im Internet hat mir bisher nicht weitergeholfen. Scheinbar kollidieren unterschiedliche vertikale Ausrichtungen in einer Tabelle miteinander und einer der zwei wird priorisiert für die gesamte Tabelle herangezogen.

    Wer weiß Hilfe?

    Danke und lg
    Richie

  2. #2
    Registrierter Benutzer
    Registriert seit
    10.09.2010
    Beiträge
    9
    Hier noch die PDF, die bei mir bei oben gepostetem Minimalbeispiel erzeugt wird.

  3. #3
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534
    Hallo Richie,

    schau Dir mal die Erklärung hier an: Wie kann ich innerhalb einer Tabellenzelle vertikal zentrieren?

    Dass m wird schon beachtet. Nur stört das in X implizit enthaltene p. \renewcommand{\tabularxcolumn}[1]{m{#1}} könnte helfen.

    Stefan

  4. #4
    Registrierter Benutzer
    Registriert seit
    10.09.2010
    Beiträge
    9
    Hy Stefan,

    danke für die schnelle Antwort.

    der Befehl \renewcommand{\tabularxcolumn}[1]{m{#1}} führt dazu, dass die tabularx-Tabelle gleich aussieht, wie die tabu-Tabelle.

    So wie ich das "nach kurzem Überfliegen" verstanden habe, wir der Inhalt immer an der "Grundlinie" ausgerichtet, die wohl durch den Inhalt in der X-Spalte definiert wird, richtig? Die Frage ist, warum m{} und p{} zum selben Ergebnis führen!?!?

  5. #5
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534
    Das oft wiederholte \centering (was kein Argument nimmt) kannst Du vereinfachen. Siehe hier: Wie kann ich in Tabellen linksbündig statt im Blocksatz ausrichten?

    Dort einfach \centering statt \raggedright nehmen, also etwa

    Code:
    \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
    Für die 1. Spalte nimm auch m (oder M). Und mach halt den Inhalt größer, damit er an der Oberkante landet, wie c.\newline als einfachstes (oder eine Box).

    Stefan

  6. #6
    Registrierter Benutzer
    Registriert seit
    10.09.2010
    Beiträge
    9
    Die manuelle Lösung hilft mir leider nicht, da ich das ganze Spektakel für ungefähr 30 Tabellen á 10-20 Zeilen machen muss. Daher bin ich auf der Suche nach einer globaleren Lösung.

    Lässt sich das mit einer parbox oder ähnlichem lösen?

    Danke übrigens für den Tipp mit dem \centering

  7. #7
    Registrierter Benutzer
    Registriert seit
    10.09.2010
    Beiträge
    9
    Geändert von richi-rich (30-07-2013 um 14:01 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,

    alternativer Vorschlag:

    Code:
    \documentclass[parskip=full-]{scrartcl} 
    \usepackage[ngerman]{babel} 
    \usepackage[utf8]{inputenc} 
    
    \usepackage[T1]{fontenc} 
    \usepackage{tabularx} 
    \newcolumntype{C}[1]{>{\centering}m{#1}}
    \newcolumntype{N}[1]{>{\begin{tenum}[resume*=#1]\item}X<{\end{tenum}}}
    \newcolumntype{S}[2]{>{\begin{tenum}[series=#1,start=#2]\item}X<{\end{tenum}}}
    
    
    \usepackage{enumitem}
    \newlist{tenum}{enumerate}{1}
    \setlist[tenum]{nosep,before=\begin{minipage}[t]{\linewidth},after=\end{minipage},
       ,leftmargin=*,label=\alph*.~,labelsep*=0pt}
    
    \renewcommand{\tabularxcolumn}[1]{m{#1}}
    
    
    \begin{document} 
    
    \begin{tabularx}{\textwidth}{|N{aufg}|C{2.5cm}|C{2.5cm}|C{2.5cm}|} 
       \hline 
       \multicolumn{1}{|X|}{\textbf{Fragen}} & Antwort A & Antwort B - braucht auch etwas mehr Platz & 
       \centering{Antwort C} \tabularnewline 
       \hline 
        \multicolumn{1}{|S{aufg}{5}|}{langer Text langer Text langer Text langer Text langer Text} & 1 & 2 & 3 \tabularnewline 
       \hline 
        kurzer Text & 1 & 2 & 3 \tabularnewline 
       \hline 
        kurzer Text & 1 & 2 & 3 \tabularnewline 
       \hline 
        langer Text langer Text langer Text langer Text langer Text langer Text langer Text & 1 & 2 & 3 \tabularnewline 
       \hline 
    \end{tabularx} 
    
    \begin{tabularx}{\textwidth}{|N{aufg}|C{2.5cm}|C{2.5cm}|C{2.5cm}|} 
       \hline 
       \multicolumn{1}{|X|}{\textbf{Fragen}} & Antwort A & Antwort B - braucht auch etwas mehr Platz & 
       \centering{Antwort C} \tabularnewline 
       \hline 
        \multicolumn{1}{|S{aufg}{9}|}{langer Text langer Text langer Text langer Text langer Text} & 1 & 2 & 3 \tabularnewline 
       \hline 
        kurzer Text & 1 & 2 & 3 \tabularnewline 
       \hline 
        kurzer Text & 1 & 2 & 3 \tabularnewline 
       \hline 
        langer Text langer Text langer Text langer Text langer Text langer Text langer Text & 1 & 2 & 3 \tabularnewline 
       \hline 
    \end{tabularx} 
    
    \end{document}
    Gruß
    Elke

    PS: Wenn in obigem Code in der Definition der Spalte C das m zu einem p geändert wird, kann man die unterschiedliche Ausrichtungswirkung am Tabellenkopf sehen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •