Ich möchte eine Tabelle machen in der ich die letzten drei Spalten mit fester Breite aber zentriert definiere. Dazu nutze ich das tabularx Paket. Folgendes Beispiel mit nur zwei Spalten zentriert läuft einwandfrei:

\begin{table}[p]
  \label{konfigurationenExperiment1}  
  \centering
  \begin{tabular}[t]{|c||>{\centering}p{3.8cm}|>{\centering}p{3.8cm}| p{3.8cm}|}
  \hline
    Konfigration & Anzahl eingesetzter Fahrzeuge & Verwendetes Routingverfahren & Verwendetes Auftragsvergabeverfahren\\
  \hline  
  \hline  
   1 & 8 & Nicht konfliktvermeidend & Einfaches Auktionsverfahren\\
  \hline  
   2 & 8 & Konfliktvermeidend ohne Verhandlungen & Einfaches Auktionsverfahren\\
  \hline
  \end{tabular}
  \caption{Konfigrationen Experiment 1}
\end{table}

Wenn ich nun aber auch die letzte Spalte zentrieren möchte:

\begin{tabular}[t]{|c||>{\centering}p{3.8cm}|>{\centering}p{3.8cm}| |>{\centering}p{3.8cm}|}

erhalte ich folgende Fehlermeldungen:

! Misplaced \noalign.  
\hline ->\noalign  
{\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet...  
l.59 \hline  
I expect to see \noalign only after the \cr of  
an alignment. Proceed, and I'll ignore this case.

Hat jemand eine Idee? Ich stehe da gerade auf dem Schlauch, weil ich mir nicht erklären kann, warum es mit Spalten 2 und 3 zentriert klappt aber mit Spalten 2,3 und 4 nicht.

Grüße, Christoph

gefragt 14 Okt '13, 11:08

CSZ's gravatar image

CSZ
21114
Akzeptiert-Rate: 0%

bearbeitet 14 Okt '13, 11:27

cgnieder's gravatar image

cgnieder
22.1k243463

1

Willkommen bei der TeXwelt! Unzusammenhängend mit Deinem Problem: Du solltest den \label-Aufruf nach \caption setzen, siehe Warum muss in einer table- oder figure-Umgebung label nach caption gesetzt werden?

(14 Okt '13, 11:26) cgnieder
2

@Clemens: statt "solltest" würde ich sogar sagen "musst"

(14 Okt '13, 11:31) Herbert

@CSZ Du solltest grundsätzlich ein VM und nicht nur einen Code-Ausschnitt anbieten. Vielleicht kannst Du Deine Frage entsprechend bearbeiten?

(14 Okt '13, 11:32) saputello

Die Anweisung \centering definiert die Bedeutung von \\ um. Die Anweisung ist dann nicht mehr länger das Tabellenzeilenende, sondern das Ende einer Zeile innerhalb der \centering gesetzten Zelle. Um dieses Problem zu lösen ist in der Anleitung des Paketes array angegeben, dass man entweder \tabularnewline als Ende der Tabellenzeile oder aber \arraybackslash nach \centering verwenden kann. Mit \arraybackslash wird dann wieder die Bedeutung von \\ als Ende der Tabellenzeile hergestellt.

Weitere Möglichkeiten gibt es mit dem Paket ragged2e.

Ausführlich wird das von Clemens bei der Frage »Ist es möglich X-Spalten in Tabellen linksbündig auszurichten?« beantwortet.

Permanenter link

beantwortet 14 Okt '13, 11:27

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 14 Okt '13, 11:31

Danke! Hat funktioniert!

Die Zeile sieht dann so aus:
begin{tabular}[t]{|c||>{centering}p{3.8cm}|>{centering}p{3.8cm}|>{centeringarraybackslash} p{3.8cm}|}

(14 Okt '13, 11:33) CSZ

Lade das Paket ragged2e und benutze dann \Centering (großes C). Es hat außerdem den Vorteil, dass Trennungen möglich sind. Abgesehen davon brauchst du kein tabularx für das, was du willst. Wahrscheinlich lädst du es nur, weil tabularx automatisch das Paket array lädt.

Permanenter link

beantwortet 14 Okt '13, 11:30

Herbert's gravatar image

Herbert
5.1k34
Akzeptiert-Rate: 31%

bearbeitet 14 Okt '13, 11:33

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×254

gestellte Frage: 14 Okt '13, 11:08

Frage wurde gesehen: 11,540 Mal

zuletzt geändert: 14 Okt '13, 11:34