PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vertikale Ausrichtung multirow



gotti91
28-02-2013, 00:51
Hallo,

ich würde gerne in folgendem Minimalbeispiel erreichen, dass der Text "Test1" in der multirow-Spalte vertikal zentriert wird (im Bezug auf die Gesamthöhe der 3 verwendeten Zeilen).



\documentclass[12pt,a4paper,DIV=15]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{blindtext}
\usepackage{multirow}

\begin{document}

\begin{tabularx}{\textwidth}{c|X}
\multirow{3}{*}{Test1} & Test\\
& \blindtext \\
& Test
\end{tabularx}

\end{document}


Dies scheitert aber offensichtlich daran, dass der Text in Zeile2/Spalte 2 über mehrere Zeilen geht. Gibt es eine Möglichkeit, "Test1" dennoch vertikal und OHNE manuelle Verschiebung nach unten auszurichten (genau in der Mitte der 3 Zeilen)?

hakaze
28-02-2013, 09:24
Ja, der multirow (http://texdoc.net/texmf-dist/doc/latex/multirow/multirow.pdf)-Algorithmus ist relativ stupide und orientiert sich nur an der Zahl der Tabellenzeilen. Da wirst du um eine manuelle Korrektur nicht herum kommen. Auch empfiehlt es sich in solchen Situationen (mehrere Textzeile pro Tabellenzelle), das Pferd von hinten aufzuzäumen, sprich: die multirow von unten nach oben zu definieren (negative Zeilenzahl).
\documentclass[12pt,a4paper,DIV=15]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{blindtext}
\usepackage{multirow}

\begin{document}

\begin{tabularx}{\textwidth}{c|X}
& Test\\
& \blindtext \\
\multirow{-3}{*}[6em]{Test1} & Test
\end{tabularx}

\end{document}

EDIT: Alternative mit verschachtelten tabulars (die standardgemäß vertikal zentriert werden):

\documentclass[12pt,a4paper,DIV=15]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{blindtext}
%\usepackage{multirow}

\begin{document}

\begin{tabularx}{\textwidth}{c|X}
\begin{tabular}{@{}c@{}} % c-Spalte ohne zusätzlich Abstände links und rechts
Test1
\end{tabular}
&
\begin{tabular}{@{}p{\hsize}@{}} % p-Spalte mit der zur Verfügung stehenden X-Breite
Test\\
\blindtext \\
Test
\end{tabular}
\end{tabularx}

\end{document}

gotti91
01-03-2013, 12:22
Vielen Dank!