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

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 09 Aug '16, 22:06

neuhier's gravatar image

neuhier
1914813
Akzeptiert-Rate: 0%

bearbeitet 10 Aug '16, 21:46

saputello's gravatar image

saputello
11.1k174365


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

\renewcommand\tabularxcolumn[1]{m{#1}}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

\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.

\multirow{20}{*}{Element A}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

Code, hier editierbar zum Übersetzen:
\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}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text


In ConTeXt mit Natural Tables.

Code, hier editierbar zum Übersetzen:
% !TEX context
\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
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 10 Aug '16, 09:13

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 04 Apr '22, 19:08

stefan's gravatar image

stefan ♦♦
18.4k163148

@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 '16, 09:21) neuhier

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

(10 Aug '16, 09: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 '16, 11: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
Code, hier editierbar zum Übersetzen:
\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}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 10 Aug '16, 09:52

sudo's gravatar image

sudo
2.0k61521
Akzeptiert-Rate: 39%

bearbeitet 12 Aug '16, 13: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 '16, 21:51) saputello
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×32

gestellte Frage: 09 Aug '16, 22:06

Frage wurde gesehen: 10,825 Mal

zuletzt geändert: 17 Aug '16, 11:48

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×