PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : longtable-Spalte linksbündig und mit fester Breite?



toob
20-03-2006, 21:46
Heyho.

Ich bin ein wenig überrascht, weil ich zu meinem "Allerweltsproblem" so einfach nichts finden konnte. Kann ich einer linksbündig ausgerichteten Spalte in einer longtable-Tabelle (hm...) irgendwie eine feste Breite zuordnen? Zunächst scheint das ja nur bei Blocksatz-Spalten zu gehen. Ich kann mir allerdings nicht vorstellen, dass es dafür keine Lösung gibt. Ich hatte mir das eigentlich irgendwie folgendermaßen vorgestellt:

\begin{longtable}{|l{3cm}|p{3cm}|l|l|l|l|}

Die cm-Angabe geht aber offensichtlich nur in den p-Spalten. Kann das sein? Und gibt es irgendeine Alternative?

Besten Dank vorab, Gruß aus HB,

Toob

[edit:] Besten Dank, falls sich schon jemand die Mühe gemacht hat, darüber nachzudenken, aber ich gebe jetzt auf. So schön Latex hier und da auch ist, die Tabellen können den Unbedarften ja völlig fertig machen. Es ist ja bitter, das festzustellen, aber tatsächlich scheinen Tabellen in den entsprechenden Textverarbeitungsprogrammen der verschiedenen Office-Pakete leichter zu formatieren zu sein als mittels Latex. Es muss doch möglich sein, eine Tabelle über mehrere Seiten mit entsprechendem Seitenumbruch und einigermaßen festen Abmessungen (ein Text, der weit über den Papierrand hinausläuft, kann ja wohl in der Geschichte der Gestaltung von Druck-Erzeugnissen noch kaum jemandem genützt haben) zu gestalten, ohne sich dafür maßlos viele Workarounds zu bauen. Ich bin den Tränen nahe...

countbela666
20-03-2006, 23:07
Hallo toob,

nicht doch gleich verzweifeln. Und ja, eine feste Spaltenbreite kannst du nur in den Spaltentypen p und m angeben. Den Blocksatz kannst du für beliebige Spalten (bzw. mit dem multicolumn-Trick auch für einzelne Zellen) durch ein \raggedright bzw. durch das bessere \RaggedRight des Pakets ragged2e ausschalten. Hier mal ein MB:

\documentclass{article}
\usepackage{ragged2e,array,longtable}
\newcommand{\blindtext}{ganz viel Text, der den einzigen Zweck hat, einen Zeilenumbruch zu erzeugen}
\begin{document}
\begin{longtable}{|>{\RaggedRight}p{3cm}|p{3cm}|l|l|l|}\hline
\blindtext&\blindtext&3&4&5\\\hline
\blindtext&\blindtext&3&4&5\\\hline
\end{longtable}
\end{document}Grüße,
Marcel

toob
30-03-2006, 12:48
Vielen Dank, so sieht das alles schon sehr viel besser aus.

metman
23-03-2007, 08:46
Guten Morgen,

ich habe eine Frage bzgl. der longtable umgebung.
Ich habe die Spaltenbreite so definiert :
\begin{longtable}{||p{22mm}|p{18mm}|p{22mm}|p{22mm }|p{34mm}||}
Wie definiere ich nun, das in den einzelnen Zellen der Text zentriert wird?
Die sind alle linksbündig.

Hoffe ihr könnt mir helfen

gruß

sofa-surfer
23-03-2007, 08:51
Guten Morgen,

ich habe eine Frage bzgl. der longtable umgebung.
Ich habe die Spaltenbreite so definiert :
\begin{longtable}{||p{22mm}|p{18mm}|p{22mm}|p{22mm }|p{34mm}||}
Wie definiere ich nun, das in den einzelnen Zellen der Text zentriert wird?
Die sind alle linksbündig.

Hoffe ihr könnt mir helfen

gruß

Das Beispiel von Marcel (oben) hast du dir aber schon angeschaut? Letztlich musst du doch nur \RaggedRight mit \centering ersetzen. Da du es für mehrere Spalten haben willst habe ich im folgenden Beispiel gleich einen neuen Spaltentyp dafür angelegt:


\documentclass{article}
\usepackage{longtable,array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\begin{longtable}{||C{22mm}|C{18mm}|C{22mm}|C{22mm }|C{34mm}||}
Text & Text & Text & Text & Text
\end{longtable}

\end{document}

Matthias

metman
23-03-2007, 09:17
Hallo Matthias,

supergenial. Hat geklappt. Danke!
Da wäre ich nie draufgekommen.

gruß

EDIT : Ok, eine Frage hätte ich nun doch noch (sorry).
Möchte nun das der Text horizontal in der mitte ausgerichtet wird und nicht oben.

countbela666
23-03-2007, 10:11
Ok, eine Frage hätte ich nun doch noch (sorry).
Möchte nun das der Text horizontal in der mitte ausgerichtet wird und nicht oben.Horizontal wird der Inhalt bereits durch \centering zentriert, eine vertikale Zentrierung erreichst du mit dem Spaltentyp m:

\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}Grüße
Marcel

metman
23-03-2007, 10:46
Hallo Marcel,

super Danke. Ich hatte mich vertipt. ich meinte vertikal :(

gruß