PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rotating (vertikaler Text) in tabular Umgebung - wie Zeilenumbruch möglich



Jagito
11-08-2010, 10:59
Hallo,

folgendes Minimalbeispiel


\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage{ngerman}
\usepackage{rotating}

\begin{document}

\begin{tabular}{l p{2cm} l l }
\hline
{Test}
&{auch langer langer langer Text}
& \rotatebox{90}{\resizebox{!}{0.1cm}{langer langer Text} }
&\rotatebox{90}{kurz} \\
\hline

A & asdf & J & \\
B & asdf & - \\

\hline
\end{tabular}

\end{document}


Problem, welches ich nicht lösen kann:
1) Der lange Text in der zweiten Spalte sollte mit "Test" aus Spalte 1 nicht oben auf selber Höhe sein, sondern unten, also nach Ende des langen Textes.
2) Bei Spalte 3 möchte ich den vertikalen Text ("langer langer Text") so lang haben, wie den Text ("kurz") in Spalte vier, also ca. 1 cm. Gibt es einen Zeilenumbruch in der rotate Umgebung? Mein Versuch mit resize ändert nur die Schriftgröße. Einfügen von p{1cm}, also \begin{tabular}{l p{2cm} p{1cm} l } beschränkt nur horizontal, nicht vertikal.

Gruß,
Jan

bobmalaria
11-08-2010, 12:47
hi,

ich verstehe diene problembeschreibung nicht wirklich, vermute aber mal das ich eine lösung für dein problem habe.

einen neuen spaltentyp definieren und damit die allgemeine spaltendefinition überschreiben


\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8x]{inputenc}
%\usepackage{ngerman} %ngerman paket nicht gut
\usepackage[ngerman]{babel}
\usepackage{rotating,array}

\begin{document}

\newcolumntype{R}[1]{%
>{\begin{turn}{90}\begin{minipage}{#1}%
\scriptsize\raggedright\hspace{0pt}}l%
<{\end{minipage}\end{turn}}%
}

\begin{tabular}{l p{2cm} l l }
\hline
Test & \multicolumn{1}{R{6em}}{auch langer langer langer Text} & \multicolumn{1}{R{6em}}{langer langer Text} & \\
\hline

A & asdf & J & \\
B & asdf & - \\

\hline
\end{tabular}

\end{document}

aus tabsatz (http://mirror.ox.ac.uk/sites/ctan.org/info/german/tabsatz/tabsatz.pdf)

gruss

Jagito
11-08-2010, 14:32
Hi,

schaut schon sehr gut aus. Der "Zeilenumbruch" erfolgt super :)

Wie könnte ich nun Problem 1 lösen? Anbei nochmal ein Minibsp. und ein pdf, aus dem mein Problem hervorgehen sollte.


\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8x]{inputenc}
%\usepackage{ngerman} %ngerman paket nicht gut
\usepackage[ngerman]{babel}
\usepackage{rotating,array}

\begin{document}

\newcolumntype{R}[1]{%
>{\begin{turn}{90}\begin{minipage}{#1}%
\raggedright\hspace{0pt}}l%
<{\end{minipage}\end{turn}}%
}

\begin{tabular}{l p{2cm} l l }
\hline
Test & {Dieser Text ist zu tief - sollte höher sein} & \multicolumn{1}{R{6em}}{Text schwebt in der Luft und ist nicht linksbündig an der unteren Linie} & \\
\hline

A & asdf & J & \\
B & asdf & - \\

\hline
\end{tabular}

\end{document}

:)

Xenara
11-08-2010, 15:02
Du kannst b-Spalten nehmen, die sind unten bündig. Hier das angepasste Beispiel von bobmalaria und einer weiteren Variante mit rotatebox:


\documentclass[a4paper,11pt]{scrartcl}
\usepackage[ansinew]{inputenc}
\usepackage{ngerman}
\usepackage{graphicx}
\usepackage{array}
\usepackage{booktabs}
\usepackage{rotating}

\begin{document}
\fboxsep0pt

\begin{tabular}{b{2cm} b{2cm} b{2cm} b{2cm} }
\toprule
Test
%&auch langer langer langer Text
& Dieser Text ist zu tief - sollte höher sein
& \rotatebox{90}{\parbox{6em}{Text schwebt in der Luft und ist nicht linksbündig an der unteren Linie}} &\\
\midrule
A & asdf & J & \\
B & asdf & - \\
\bottomrule
\end{tabular}

\vspace*{3cm}

\newcolumntype{R}[1]{%
>{\begin{turn}{90}\begin{minipage}{#1}%
\raggedright\hspace{0pt}}l%
<{\end{minipage}\end{turn}}%
}

\begin{tabular}{b{2cm} b{2cm} b{2cm} b{2cm} }
\hline
Test & {Dieser Text ist zu tief - sollte höher sein} & \multicolumn{1}{R{6em}}{Text schwebt in der Luft und ist nicht linksbündig an der unteren Linie} & \\
\hline

A & asdf & J & \\
B & asdf & - \\

\hline
\end{tabular}


\end{document}

Jagito
11-08-2010, 15:43
Danke :) Das schaut jetzt gleich viel besser aus