PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenzeile diagonal durchstreichen



cookie170
10-07-2007, 11:20
Hallo,

hat jemand eine Idee, wie ich eine ganze Tabellenzeile in einer Tabelle diagonal durchstreichen könnte?

Waagrecht geht "einfach", weil \\ bzw. \tabularnewline ein optionales Argument hat und
\tabularnewline[-1cm]\\hdashline\hdashline\noalign{\vspace{1cm}}\midrul e

mit den Paketen array, longtable, booktabs, arydshln (Achtung: Reihenfolge) zu einer doppelten, waagrechten Linie durch die Tabellenzeile führt. Aber nirgendwo finde ich eine Möglichkeit, eine diagonale Linize zu ziehen. Ich denke inzwischen darüber nach, tikz zu gebrauchen. Aber eine Zeichnung mitten in einer Tabelle, noch dazu innerhalb longtable, mh.

Ideen?

Danke,
Gruß,
Alexander

Salnic
10-07-2007, 16:01
Hi Alex,

bin mir nicht sicher, ob Dir slashbox helfen kann.

Salnic

cookie170
10-07-2007, 16:04
Hallo Salnic,

ja, grundsätzlich kann ich damit zwar eine schräge Linie in eine Zelle malen und auf diese Art jede Zelle in einer Zeile durchstreichen (mit Nebenwirkungen).

Aber es ist nicht das, was ich gebrauchen könnte.

Gruß,
Alexander

Salnic
10-07-2007, 16:16
so, wie kann man Dir helfen? Tatsächlich weiß ich nicht, was Du genau willst, mal mal ein Bild.

Salnic

cookie170
10-07-2007, 16:28
Uups, ascii-Graphik kann ich noch schlechter als beschreiben.

Also:

Meine Tabelle besteht aus 30 Zeilen und 7 Spalten.
Ich will die Zeile 2 durchstreichen. Der Strich soll von der linken unteren Ecke der ersten Spalte in dieser Zeile bis zur rechten oberen Ecke der siebten Spalte in dieser Zeile gehen.

Oder anders ausgedrückt: Der Strich soll von der linken unteren Ecke der ersten Zelle dieser Zeile über alle Zellen dieser Zeile hinweg langsam ansteigen bis zur rechten oberen Ecke der letzten Zelle dieser Zeile.

OK? Ein Bild sagt mehr als tausend Worte, aber meine Tastatur hat keine Schrägstriche mit veränderbarem Winkel.

Danke für Deine Mühe,
Gruß,
Alexander

edico
10-07-2007, 18:45
Alexander, vielleicht kannst Du das für Deine Vorstellungen weiterverarbeiten - ich hab' jetzt keine Zeit mehr... Irgendwann hatte ich das (o.ä.) hier mal gepostet ...

% Trennlinie in Tabelle
\documentclass[a4paper,12pt]{article}
\usepackage{tabularx}
\usepackage{graphics}
\usepackage{ulem}
\newcommand{\snakeline}{%
\rotatebox{5}{\uwave{\makebox[1.2in]{\mbox{}}}}
}
\newcommand{\snakelinex}{%
\rotatebox{5}{\uwave{\makebox[\linewidth]{\mbox{}}}}
}

\begin{document}
\begin{tabular}{lll} \hline
Blah & blah & blah \\
Blah & blah & blah \\
\multicolumn{3}{c}{\snakeline}\\
Blah & blah & blah \\
Blah & blah & blah \\\hline
\end{tabular}

\bigskip
\begin{tabularx}{\textwidth}{XXX} \hline
Blah & blah & blah \\
Blah & blah & blah \\%\hline
\multicolumn{3}{c}{\snakelinex}\\%\hline
Blah & blah & blah \\
Blah & blah & blah \\\hline
\end{tabularx}
\end{document}

edico

cookie170
11-07-2007, 10:03
Hallo edico,

es ist total erstaunlich, was alles funktioniert. Nehmen wir der Einfachheit halber nur den zweiten Teil Deines Beispiels:



\documentclass[a4paper,12pt]{article}
\usepackage{tabularx}
\usepackage{graphics}
\usepackage{ulem}
\newcommand{\snakeline}{%
\rotatebox{5}{\uwave{\makebox[1.2in]{\mbox{}}}}
}
\newcommand{\snakelinex}{%
\rotatebox{5}{\uwave{\makebox[\linewidth]{\mbox{}}}}
}

\begin{document}

\bigskip
\begin{tabularx}{\textwidth}{XXX} \hline
Blah & blah & blah \\
Blah & blah & blah \\[-1.2cm]%\hline
\multicolumn{3}{c}{\snakelinex}\\\hline
Blah & blah & blah \\
Blah & blah & blah \\\hline
\end{tabularx}
\end{document}


Man muss also nur die Zeile mit dem Schrägstrich leer einsetzen und dann eine Zeile nach oben schieben. Pfusch ist es im Moment noch deswegen, weil der Abstandsparameter nach \\ zwar negativ sein darf, aber \baselineskip nicht berücksichtigt wird. Die Angabe [-1.2cm] funktioniert, nicht aber [-2\baselineskip].

Aber vielen Dank, ich werde das erst einmal so übernehmen.

Gruß,
Alexander

countbela666
11-07-2007, 10:26
Hallo, Alexander,
Pfusch ist es im Moment noch deswegen, weil der Abstandsparameter nach \\ zwar negativ sein darf, aber \baselineskip nicht berücksichtigt wird. Die Angabe [-1.2cm] funktioniert, nicht aber [-2\baselineskip].versuch mal folgendes (ungetestet!):


\documentclass[a4paper,12pt]{article}
\usepackage{tabularx}
\usepackage{graphics}
\usepackage{ulem}
\newcommand{\snakeline}{%
\rotatebox{5}{\uwave{\makebox[1.2in]{\mbox{}}}}
}
\newcommand{\snakelinex}{%
\rotatebox{5}{\uwave{\makebox[\linewidth]{\mbox{}}}}
}

\newlength{\bls}
\setlength{\bls}{\baselineskip}

\begin{document}

\bigskip
\begin{tabularx}{\textwidth}{XXX} \hline
Blah & blah & blah \\
Blah & blah & blah \\[-2\bls]%\hline
\multicolumn{3}{c}{\snakelinex}\\\hline
Blah & blah & blah \\
Blah & blah & blah \\\hline
\end{tabularx}
\end{document}
Grüße
Marcel

cookie170
11-07-2007, 11:16
Ja, das geht. Aber ist \baselineskip nicht auch eine Länge?

--
fragt verwundert

Alexander

P.S: Danke!

countbela666
11-07-2007, 11:33
Danke!gern geschehen.

Aber ist \baselineskip nicht auch eine Länge?Ja, aber an der Stelle, an der du sie einsetzen willst, scheint sie nicht definiert zu sein bzw. eine Länge von 0pt zu haben. Warum, weiß ich auch nicht. :confused:

edico
11-07-2007, 12:26
Hallo edico,
... Pfusch ist es im Moment noch deswegen, weil der Abstandsparameter nach \\ zwar negativ sein darf, aber \baselineskip nicht berücksichtigt wird. Die Angabe [-1.2cm] funktioniert, nicht aber [-2\baselineskip].


Du hast ganz einfach das 'calc' package vergessen zu laden ;-)

edico

countbela666
11-07-2007, 12:43
Du hast ganz einfach das 'calc' package vergessen zu laden ;-)Hm, das hat bei mir keinerlei Auswirkungen. Auch mit calc-Paket produziert \\[-\baselineskip] innerhalb einer Tabelle das gleiche wie \\[0pt] -- nämlich nüscht.

edico
11-07-2007, 13:05
Hm, das hat bei mir keinerlei Auswirkungen. Auch mit calc-Paket produziert \\[-\baselineskip] innerhalb einer Tabelle das gleiche wie \\[0pt] -- nämlich nüscht.

Mist! Du merkst auch alles!
Ja, das stimmt!

Ich las gerade ...

... , dass innerhalb der Tabelle \baselineskip=0pt ist. Wenn
man den Wert also braucht, muss man ihn entweder vorher in einer anderen
Länge speichern oder die Grafik in eine savebox (--> usrguide) packen und
dann nur noch verwenden.

Du hast den Vogel abgeschossen. Schützenkönig. Und der gibt einen aus ;-)

edico

countbela666
11-07-2007, 13:11
Ich las gerade ...

... , dass innerhalb der Tabelle \baselineskip=0pt ist. Wenn
man den Wert also braucht, muss man ihn entweder vorher in einer anderen
Länge speichern oder die Grafik in eine savebox (--> usrguide) packen und
dann nur noch verwenden.Interessant. Darf man fragen, aus welcher Doku das Zitat stammt?

Schützenkönig. Und der gibt einen aus ;-)Wann und wo? :D

Grüße
Marcel

cookie170
11-07-2007, 13:13
Ich las gerade ...

... , dass innerhalb der Tabelle \baselineskip=0pt ist. Wenn
man den Wert also braucht, muss man ihn entweder vorher in einer anderen
Länge speichern oder die Grafik in eine savebox (--> usrguide) packen und
dann nur noch verwenden.



Wo liest man denn so erhellende Sachen? In meinem usrguide kommt das Wort baselineskip nicht mal vor.

Gruß,
Alexander

edico
11-07-2007, 14:30
Wo liest man denn so erhellende Sachen? In meinem usrguide kommt das Wort baselineskip nicht mal vor.

Gruß,
Alexander

... keine Ahnung - ich hatte das nur nebenbei zufällig gelesen ... aber nicht weiter geprüft.

Mit Bezug auf das Thema geht folgendes aber (ich wusste doch, da war was!):
...
Blah & blah & blah \\[-2\normalbaselineskip]%
...

edico