PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle - Schräg - rotate/turn - runaway Argument?



HaggeL
07-11-2007, 14:22
Hallo Leute,

Ich habe eine Tabelle, in der Inhalt der Zellen der ersten Zeile und der ersten Spalte zu lang ist.

Abhilfe will ich mir schaffen, indem ich den Text in der ersten Zeile um 45° (gegen Uhrzeigersinn) und den Text in der ersten Spalte um -45° drehe.

Leider hat das nicht so wirklich bei mir hin.

Ein Minimalbeispiel funktioniert ganz gut bei mir:

\documentclass[a4paper,11pt,bibtotoc,liststotoc,pagesize,BCOR12mm]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{rotating}

\begin{document}

\begin{table}
\begin{tabular}{|l|l|}
& \begin{turn}{45} Abc1 \end{turn} \\\hline
\begin{turn}{-45} Abc2 \end{turn} & x \\\hline
\begin{turn}{-45} Abc3 \end{turn} & y \\\hline
\begin{turn}{-45} Abc4 \end{turn} & z \\\hline
\end{tabular}
\end{table}

\end{document}


Doch wenn ich versuche das ganze etwas übersichtlicher zu gestalten:

\documentclass[a4paper,11pt,bibtotoc,liststotoc,pagesize,BCOR12mm]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{array}

\newcommand{\tu}[1]{\begin{turn}{45} #1 \end{turn}}
\newcommand{\rb}[1]{\rotatebox{45}{#1}}
\newcommand{\rbb}[1]{\rotatebox{-45}{#1}}

\begin{document}

\begin{table}[hp]
\begin{tabular}{lccc}
a & \rb{Abc1) & \rb{Abc2} & \rb{Abc2} \\\hline
\end{tabular}
\begin{tabular}{|r|c|c|c|}
\rbb{text1} & x &&y \\\hline
\rbb{text2} & x &x& \\\hline
\rbb{text3} & x &&s \\\hline
\end{tabular}
\end{table}

\end{document}


bekomme ich die Fehlermeldung:

Runaway Argument?
{Abc1) & \rb{Abc2} & \rb{Abc2} \\\hline \end{tabular} \begin{tabu\ETC
!File ended while scanning use of \rb.
<inserted text>
\par

Der Befehl \rb funktioniert außerhalb der Table Umgebung.
Wo liegt der Fehler?

----

Außerdem habe ich folgendes Beispiel gefunden:
http://tug.org/PSTricks/main.cgi?file=Examples/tabularLines
Allerdings funktioniert das erste Beispiel bei mir nicht. (Siehe Anhang).

Ich habe versucht das ganze Stück für Stück nachzubauen:

\documentclass[a4paper,11pt,bibtotoc,liststotoc,pagesize,BCOR12mm]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage[table]{pstricks}
\usepackage{pst-3d,pst-node}


\begin{document}


\begin{table}
\pstilt{60}{%
\begin{tabular}{|c|c|c|}\hline
\psrotateleft{\rnode{col1}{\hspace{2cm}}} &
\psrotateleft{\rnode{col2}{\hspace{2cm}}} &
\psrotateleft{\rnode{col3}{\hspace{2cm}}}
\end{tabular}}\\

\rput[t]{60}(col1){abc1}%
\rput[t]{60}(col2){Abc1}%
\rput[t]{60}(col3){ABC1}%

\begin{tabular}{|l|l|}
& \begin{turn}{45} Abc1 \end{turn} \\\hline
\rotatebox{-45}{Abc2} & x \\\hline
\begin{turn}{-45} Abc3 \end{turn} & y \\\hline
\begin{turn}{-45} Abc4 \end{turn} & z \\\hline
\end{tabular}
\end{table}

\end{document}

Allerdings wird bei mir die erste Tabelle nicht um 60° sondern 90° gedreht.
Außerdem hängt er, sobald ich die Zeilen mit \rput... einfüge mit folgender Fehlermeldung pro \rput:
- Missing Number, treated as Zero
- illegal unit of measure (pt inserted)

In den ganzen Dokus usw. habe ich auch immer nur Beispiele gefunden, bei denen rput mit Koordinaten verwendet wird. Warum nimmt er denn die node nicht an?

Ich hoffe ihr könnt mir da weiterhelfen.


Gruß HaggeL

edico
07-11-2007, 15:53
[1] die Fehlermeldung benennt doch den Fehler!?
Du brauchst eine geschweifte, statt einer runden Klammer.

[2] ich versteh das nicht. Was hat table in dem Code zu tun? Dann fehlt SpecialCoor, dann einmal 2-, andermal 3-spaltig ...

möglicherweise so:

\documentclass[12pt]{article}
\usepackage{rotating}
\usepackage{pstricks}
\usepackage{pst-3d,pst-node}
\SpecialCoor
\begin{document}
\begin{tabular}{l}
\pstilt{60}{%
\begin{tabular}{|p{1.7em}|p{0.8em}|}\hline
\psrotateleft{\rnode{col1}{\hspace{2cm}}} &
\psrotateleft{\rnode{col2}{\hspace{2cm}}}
\end{tabular}}\\
\rput[t]{60}(col1){abc1}%
\rput[t]{60}(col2){Abc1}%
\begin{tabular}{|l|l|}
\hline
\rotatebox{-45}{Abc} & X\\
\hline
\end{tabular}
\end{tabular}

\end{document}

[3] Wirf den gesamten rotation-Krams raus und mache eine schlichte, überschaubare Tabelle; dazu gibt es in der letzten Vergangenheit etliche Beispiele hbier auf dem Forum.

edico