PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Latex Tabellenzellen mit verschiedenen Zeilenabstand



Aloex
21-02-2011, 17:28
Hallo,

ich möchte in einer Tabelle den Zeilenabstand zwischen den einzelnen Zellen wie im normalen Text 1,4 definieren. Wenn nun aber in einer Zelle eine zweite Zeile begonnen werden muss, da der Text zulang ist, so soll zwischen den beiden Zeilen ein einzeiliger Abstand vorliegen. Das funktioniert auch soweit.
Das Problem ist die darauffolgende Zelle zu der ein Absatz eingebaut wird. Dort soll jedoch weiter mit dem vorgeschriebenen Abstand von 1,4 gearbeitet werden.
Wie kann das Problem behoben werden? Das Minimalbeispiel liegt bei.

Vielen dank für Eure Antworten.

Grüße,
Aloex



\documentclass[12pt,german]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\makeatletter
\usepackage{setspace}
\setstretch{1.4}
\usepackage{xcolor}
\begin{document}

\begin{tabular}{p{5cm}p{4cm}p{5cm}}
Text & Text & Text\\ \hline
bla & bla & bla \\
bla & bla &
\begin{spacing}{1}
langer Text über zwei Zeilen in einer Zelle
\end{spacing}\\
bla & bla & bla \\
bla & bla & bla \\
\end{tabular}

\end{document}

bobmalaria
21-02-2011, 17:48
hi,

alles was du glaube ich tun musst ist
\singlespacing langer text
normalerweise sollten die tabellenzellen jeweils eine gruppe darstellen und sich veraenderungen icht auf andere zellen uebetragen.

aber ich habe vielleciht auch deine beschreibung einfach nicht verstanden :)

Aloex
21-02-2011, 17:57
Hallo,

damit wird das Problem das Absatzes nachdem die Zelle mit einzeiligem Abstand kommt gelöst. Jedoch entsteht dann in der Zelle vor dem Text ein Absatz, der auch nicht erwünscht wird.

Danke aber für die Anregung und ich habe es wie folgt eingefügt.



\documentclass[12pt,german]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\makeatletter
\usepackage{setspace}
\setstretch{1.4}
\usepackage{xcolor}
\begin{document}

\begin{tabular}{p{5cm}p{4cm}p{5cm}}
Text & Text & Text\\ \hline
bla & bla & bla \\
bla & bla & \singlespacing {langer Text über zwei Zeilen in einer Zelle}\\
bla & bla & bla \\
bla & bla & bla \\
\end{tabular}

\end{document}

u_fischer
21-02-2011, 18:10
Benutze \setstretch{1}. \singlespacing fügt ein \vskip ein.

Aloex
21-02-2011, 18:13
Perfekt, dass ist genau das, was ich suche. Vielen Dank!

Schweinebacke
22-02-2011, 07:46
Falls Du das des öfteren brauchst, lohnt es sich eventuell, den Abstand zwischen den Tabellenzeilen wie vorgesehen mit \arraystretch einzustellen und den Textzeilenabstand für die Tabelle auf 1 zurück zu setzen. Man kann sich dafür auch eine eigene Tabellenumgebung definieren:

\documentclass[12pt,german]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{setspace}
\setstretch{1.4}
\usepackage{xcolor}

\newenvironment{mtabular}{%
\let\arraystretch\baselinestretch
\singlespacing
\tabular
}{%
\endtabular
}

\begin{document}

\begin{mtabular}{p{5cm}p{4cm}p{5cm}}
Text & Text & Text\\ \hline
bla & bla & bla \\
bla & bla & langer Text über zwei Zeilen in einer Zelle\\
bla & bla & bla \\
bla & bla & bla \\
\end{mtabular}

\end{document}