Ich würde gern im folgenden Beispiel das Element A (\multirow) sowie die Kategorien von Akteur bis Bereich vertikal zentrieren.

Open in Online-Editor
\documentclass[]{scrreprt}      
\usepackage[T1]{fontenc}                                    
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel} 
\selectlanguage{ngerman}
 \usepackage{multirow} 
\usepackage{booktabs} 
\usepackage{array} 
 \newcolumntype{R}{>{\raggedright\arraybackslash}X} 
\usepackage{tabularx} 
\begin{document}

\begin{table}[htbp]
\centering
\begin{tabularx}{\textwidth}{RRX}

\textbf{Element} & \textbf{Kategorien} & \textbf{Ausprägungen}\\
\toprule
\multirow{4}{*}{Element A} & Akteur & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam\\
                           & Thema & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam\\ \addlinespace
                           & Auswirkung & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam\\ \addlinespace
                           & Bereich & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam\\ \addlinespace

\end{tabularx}
\end{table}
\end{document}

gefragt 09 Aug, 16:06

neuhier's gravatar image

neuhier
1915
Akzeptiert: 100%

bearbeitet 10 Aug, 15:46

saputello's gravatar image

saputello
18.4k22352


Um den Inhalt einer Zelle vertikal zu zentrieren verwendet man die m{<Breite>}-Spalte aus dem Paket array. Die tabularx-Umgebung kann die Breite selbst bestimmen, benutzt aber als Grundlage für die X-Spalte standardmäßig p{<Breite>}. Um das zu ändern verwendet man

Open in Online-Editor
\renewcommand\tabularxcolumn[1]{m{#1}}

\mutlirow nimmt an, dass jede Zeile der Tabelle auch nur eine Zeile hoch ist, weshalb es mit \mutlirow{4}{*}{...} viel zu weit oben erscheint. Da muss man von Hand nachhelfen. Das folgende sieht relativ zentriert aus.

Open in Online-Editor
\multirow{20}{*}{Element A}

Ich habe nach der zweiten Zeile noch \addlinespace eingefügt. Es schien mir als würde das fehlen.

Open in Online-Editor
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}
\newcolumntype{R}{>{\raggedright\arraybackslash}X}
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{document}
\begin{tabularx}{\textwidth}{RRX}
  \textbf{Element}            & \textbf{Kategorien} & \textbf{Ausprägungen}                                                                                                              \\
  \toprule
  \multirow{20}{*}{Element A} & Akteur              & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam \\ \addlinespace
                              & Thema               & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam \\ \addlinespace
                              & Auswirkung          & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam \\ \addlinespace
                              & Bereich             & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam \\ \addlinespace
\end{tabularx}
\end{document}

alt text


In ConTeXt mit Natural Tables.

Open in Online-Editor
\newdimen\tabcolsep \tabcolsep=6pt % LaTeX default
\startsetups table:multirow
  \setupTABLE [frame=off,align={lohi}]
  %\setupTABLE [column] [each] [distance=1cm] % NOT as expected
  \setupTABLE [column] [each]  [loffset=\tabcolsep,roffset=\tabcolsep]
  \setupTABLE [column] [first] [loffset=0pt]
  \setupTABLE [column] [last]  [roffset=0pt]
  \setupTABLE [row] [first] [bottomframe=on,style=bold]
\stopsetups
\starttext
\startTABLE[setups={table:multirow}]
  \NC Element         \NC Kategorien \NC Ausprägungen \NC\NR
  \NC[ny=4] Element A \NC Akteur     \NC Lorem ipsum dolor sit amet, consetetur
                                         sadipscing elitr, sed diam nonumy eirmod
                                         tempor invidunt ut labore et dolore
                                         magna aliquyam \NC\NR
                      \NC Thema      \NC Lorem ipsum dolor sit amet, consetetur
                                         sadipscing elitr, sed diam nonumy eirmod
                                         tempor invidunt ut labore et dolore
                                         magna aliquyam \NC\NR
                      \NC Auswirkung \NC Lorem ipsum dolor sit amet, consetetur
                                         sadipscing elitr, sed diam nonumy eirmod
                                         tempor invidunt ut labore et dolore
                                         magna aliquyam \NC\NR
                      \NC Bereich    \NC Lorem ipsum dolor sit amet, consetetur
                                         sadipscing elitr, sed diam nonumy eirmod
                                         tempor invidunt ut labore et dolore
                                         magna aliquyam \NC\NR
\stopTABLE
\stoptext

alt text

Permanenter link

beantwortet 10 Aug, 03:13

Henri's gravatar image

Henri
10.0k31730

bearbeitet 10 Aug, 03:37

@Henri, vielen Dank! Hast Du auch eine Lösung, den Inhalt ("Element A") der ersten Spalte vertikal zu zentrieren? Dabei handelt es sich ja um eine multirow.

(10 Aug, 03:21) neuhier

Mag daran liegen dass ich LaTeX kenne und gewohnt bin, und ConTeXt eigentlich gar nicht, aber ... irgendwie wirkt ConTeXt komplizierter.

(10 Aug, 03:49) Johannes

Ich hingegen finde ConTeXt von der Syntax her viel lesbarer und mir gefällt die Trennung zwischen Inhalt und Layout. Ist es zu empfehlen ConTeXt produktiv zu nutzen?

(17 Aug, 05:48) dzaic

Damit die Kategorien vertikal zentriert sind genügt es m-Spalten zu verwenden. Der Befehl \renewcommand{\tabularxcolumn}[1]{m{#1}} macht das für die X- und R-Spalten.

Das Element zu zentrieren ist schwieriger, da \multirow das selbst nicht wirklich kann. Eine Möglichkeit wäre, statt \multirow zu benutzen tabularx zu schachteln. Dabei muss der Inhalt einer Zelle in eine Gruppe eingefasst sein. Damit die Spaltenbreiten gleich bleiben habe ich die Spaltenoptionen >{\hsize=0.333\hsize} und >{\hsize=1.667\hsize} verwendet. Der inneren tabularx gebe ich als Tabellenbreite einfach die aktuelle Spaltenbreite \hsize mit.

Zum Schachteln der Tabellen muss man um die inneren tabularx eine Gruppe setzen.

Sollen Linien innerhalb der inneren tabularx verwendet werden, muss beachtet werden, dass diese nur die Breite der zweiten Spalte hat. Je nach dem, wie die Linie aussehen soll, müssten die @{} ggf. aus der inneren in die äußere tabularx verschoben werden.

Open in Online-Editor
\documentclass[]{scrreprt}      
\usepackage[T1]{fontenc}                                    
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel} 
\selectlanguage{ngerman}
 \usepackage{multirow} 
\usepackage{booktabs} 
\usepackage{array} 
\usepackage{tabularx} 
\renewcommand{\tabularxcolumn}[1]{m{#1}}
\newcolumntype{R}{>{\raggedright\arraybackslash}X} 
\begin{document}

\begin{table}[htbp]
\centering
\begin{tabularx}{\textwidth}{>{\hsize=0.667\hsize}R>{\hsize=1.333\hsize}X}
\textbf{Element} & {\begin{tabularx}{\hsize}{@{}RX@{}} \textbf{Kategorien} & \textbf{Ausprägungen}
\end{tabularx}} \\ \toprule
Elemnt A & {\begin{tabularx}{\hsize}{@{}RX@{}}
Akteur & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam \\ \midrule
Thema & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam\\ \addlinespace
Auswirkung & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam\\ \addlinespace
Bereich & Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
\end{tabularx}}
\end{tabularx}
\end{table}
\end{document}

alt text

Permanenter link

beantwortet 10 Aug, 03:52

sudo's gravatar image

sudo
1.9k1817

bearbeitet 12 Aug, 07:52

2

Wenn man nur X-Spalten (bzw. davon abgeleitete Spalten) hat, bei denen man auch noch die Breite selbst wählt, kann man eigentlich auch gleich direkt m-Spalten verwenden (und braucht dann keine tabularx mehr. Das ist nur minimal aufwändiger. Interessant wird die tabularx-Schachtelung, wenn die beiden linken Spalten sich der Breite des Inhalts anpassen sollen.

BTW: Vielleicht könntest Du noch betonen, dass die Gruppenklammern bei der tabularx-Schachtelung wichtig ist.

(10 Aug, 15:51) saputello
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×23

Frage gestellt: 09 Aug, 16:06

Frage wurde angeschaut: 368 Mal

Zuletzt aktualisiert: 17 Aug, 05:48