Textausrichtung in multirow: vertikal zentrieren in Zeile?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Textausrichtung in multirow: vertikal zentrieren in Zeile?

von Daniel_Hai » Mi 23. Jan 2019, 13:39

Danke für die Vorschläge! Die 2 im optionalen multirow-Argument löst das Problem.

Grüße
Daniel

von Gast » Mi 23. Jan 2019, 13:31

multirow funktioniert leider bei Tabellen mit Extraabständen oder Linien aus booktabs oder teilweise auch bei p-Spalten (und davon abgeleiteten Spalten) nicht wirklich gut. Man muss dann die Höhe manuell anpassen, indem man das Argument für die Zeilenzahl anpasst, also beispielsweise:
\documentclass{scrartcl}

\usepackage{ragged2e}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}

\newcolumntype{C}{>{\Centering}X}

\begin{document}

\begin{tabularx}{0.85\textwidth}{XCCCCC}
         \toprule
         \multicolumn{1}{l}{\multirow{2.2}[0]{*}{\textbf{Testtext 1}}} & \multicolumn{5}{c}{\textbf{Testtext 2}} \\
         \cmidrule[0.5pt](lr{.75em}){2-6} 
         & \multicolumn{1}{c}{\textbf{A}} & \multicolumn{1}{c}{\textbf{B}} & \multicolumn{1}{c}{\textbf{C}} & \multicolumn{1}{c}{\textbf{D}} & \multicolumn{1}{c}{\textbf{E}} \\
         \midrule
         1 & a & b & c & d & e \\
         \bottomrule
\end{tabularx}

\vspace{2cm}

\begin{tabularx}{0.95\textwidth}{Xccccc}
   \toprule
   \multirow{1.5}[4]{*}{\textbf{Testtext 1}} & \multicolumn{5}{c}{\textbf{Testtext 2}} \\
   \cmidrule[0.5pt](lr{.5em}){2-6}          & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} \\
   \midrule
   1 & a & b & c & d & e \\
   \bottomrule
\end{tabularx}

\end{document}
verwendet.

Oft kann man übrigens die \cmidrule-Anweisungen auch einfach weglassen, wenn ohnehin klar ist, worauf sich der Spalten überspannende Text bezieht

von markusv » Mi 23. Jan 2019, 13:30

Hallo.

Die Abweichung kommt aufgrund der Linien aus booktabs (die mehr vertikalen Platz benötigen) zustande sowie den unterschiedlichen Parametern, die du im optionalen Argument bei \multirow{}[<bigstruts>]{}{} angegeben hast.

Siehe dazu auch: https://tex.stackexchange.com/a/156222 bzw. die [d]multirow[/d]-Doku (s. Link).

Die Wahl 2 scheint die Texte genau zu positionieren:
\documentclass{scrartcl}

\usepackage{ragged2e}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}

\newcolumntype{C}{>{\Centering}X}

\begin{document}

\begin{tabularx}{0.85\textwidth}{XCCCCC}
         \toprule
         \multicolumn{1}{l}{\multirow{2}[2]{*}{\textbf{Testtext 1}}} & \multicolumn{5}{c}{\textbf{Testtext 2}} \\
         \cmidrule[0.5pt](lr{.75em}){2-6} 
         & \multicolumn{1}{c}{\textbf{A}} & \multicolumn{1}{c}{\textbf{B}} & \multicolumn{1}{c}{\textbf{C}} & \multicolumn{1}{c}{\textbf{D}} & \multicolumn{1}{c}{\textbf{E}} \\
         \midrule
         1 & a & b & c & d & e \\
         \bottomrule
\end{tabularx}

\vspace{2cm}

\begin{tabularx}{0.95\textwidth}{Xccccc}
   \toprule
   \multirow{2}[2]{*}{\textbf{Testtext 1}} & \multicolumn{5}{c}{\textbf{Testtext 2}} \\
   \cmidrule[0.5pt](lr{.5em}){2-6}          & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} \\
   \midrule
   1 & a & b & c & d & e \\
   \bottomrule
\end{tabularx}
\end{document}

Textausrichtung in multirow: vertikal zentrieren in Zeile?

von Daniel_Hai » Mi 23. Jan 2019, 12:44

Hallo liebes Forum,

ich habe in meinem Dokument zwei Tabellen. Das Problem ist, dass der 'Testtext 1' nicht vertikal zentriert in der Zeile ist (lustigerweise in Tabelle 1 zu hoch und in Tabelle 2 zu niedrig). Die Spaltenbreiten habe ich bei der Vereinfachung der Tabelle so belassen, also bitte nicht darüber wundern. Die Tabelle wurde ursprünglich mit dem Excel2Latex-Plugin erstellt, aber das sollte ja eigentlich kein Problem sein? Oder habe ich da was übersehen? Nun ja, falls jemand eine Idee hat, wieso die Formatierung in beiden Fällen anders ist, und wie man im Idealfall den 'Testtext 1' vertikal zentrieren könnte würde ich mich sehr freuen.
\documentclass{scrartcl}

\usepackage{ragged2e}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}

\newcolumntype{C}{>{\Centering}X}

\begin{document}

\begin{tabularx}{0.85\textwidth}{XCCCCC}
			\toprule
			\multicolumn{1}{l}{\multirow{2}[0]{*}{\textbf{Testtext 1}}} & \multicolumn{5}{c}{\textbf{Testtext 2}} \\
			\cmidrule[0.5pt](lr{.75em}){2-6} 
			& \multicolumn{1}{c}{\textbf{A}} & \multicolumn{1}{c}{\textbf{B}} & \multicolumn{1}{c}{\textbf{C}} & \multicolumn{1}{c}{\textbf{D}} & \multicolumn{1}{c}{\textbf{E}} \\
			\midrule
			1 & a & b & c & d & e \\
			\bottomrule
\end{tabularx}

\vspace{2cm}

\begin{tabularx}{0.95\textwidth}{Xccccc}
	\toprule
	\multirow{2}[4]{*}{\textbf{Testtext 1}} & \multicolumn{5}{c}{\textbf{Testtext 2}} \\
	\cmidrule[0.5pt](lr{.5em}){2-6}          & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} \\
	\midrule
	1 & a & b & c & d & e \\
	\bottomrule
\end{tabularx}

\end{document}
Danke!
Daniel

Nach oben