Ich erhalte beim Erstellen meiner Tabelle folgende Fehlermeldungen:

Misplaced \noalign. \caption ->\noalign \bgroup \@ifnextchar [{\egroup \LT@c@ption \@firstofone ... l.18 \caption {Tabellenüberschrift}\label{Tab. 2}\\ \hline

und

Misplaced \omit \caption

Minimalbeispiel:

Open in Online-Editor
\documentclass [12pt,a4paper]{article}
\usepackage[utf8]{inputenc}         
\usepackage[ngerman]{babel}

\usepackage{longtable}

\begin{document}
\begin{longtable}{l r r}\small
\caption{Tabellenüberschrift}\label{Tab. 2}\\ \hline
& Bezeichnung der Spalte & Bezeichnung der anderen Spalte \\
& Inhalt & Inhalt \\ \hline
Inhalt & Daten & Daten \\
Inhalt & & \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
Inhalt II & & Daten\\
Inhalt III & & Daten\\
Inhalt IV & & Daten \\
Inhalt V) & & Daten \\
\textit{N}& Zahl & Zahl\\
\hline 
\end{longtable}

\end{document}

gefragt 23 Dez '16, 17:04

J_tex's gravatar image

J_tex
16751115
Akzeptiert-Rate: 0%

bearbeitet 23 Dez '16, 17:48

saputello's gravatar image

saputello
11.1k174365


Das Problem ist, dass \caption die erste Anweisung in der Tabellenzeile sein muss. Die erste Anweisung ist bei Dir aber \small. Damit hat die erste Zelle der Tabellenzeile bereits begonnen und das von \caption verwendete \noalign schlägt fehl.

Ich gehe davon aus, dass Du möchtest, dass die Tabelle insgesamt in \small gesetzt werden soll. Das erreichst Du korrekt mit:

Open in Online-Editor
\documentclass [12pt,a4paper]{article}
\usepackage[utf8]{inputenc}         
\usepackage[ngerman]{babel}

\usepackage{longtable}

\begin{document}
{\small
\begin{longtable}{l r r}
\caption{Tabellenüberschrift}\label{Tab. 2}\\ \hline
& Bezeichnung der Spalte & Bezeichnung der anderen Spalte \\
& Inhalt & Inhalt \\ \hline
Inhalt & Daten & Daten \\
Inhalt & & \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
Inhalt II & & Daten\\
Inhalt III & & Daten\\
Inhalt IV & & Daten \\
Inhalt V) & & Daten \\
\textit{N}& Zahl & Zahl\\
\hline 
\end{longtable}}

\end{document}

Das Schließen der vor \small mit { begonnenen Gruppe unmittelbar nach \end{longtable}, also ohne ein abschließendes Absatzende (beispielsweise mit \par) ist in diesem Sonderfall korrekt, weil der Absatz bereits durch \end{longtable} beendet wird. Wir befinde uns also beim Schließen der Gruppe mit } bereits im vertikalen Modus.

Alternativ zur Verwendung einer Gruppe kann man auch die Schriftgröße hin und her umschalten, wenn man die Schriftgröße vor der Tabelle kennt:

Open in Online-Editor
\documentclass [12pt,a4paper]{article}
\usepackage[utf8]{inputenc}         
\usepackage[ngerman]{babel}

\usepackage{longtable}

\begin{document}
\small
\begin{longtable}{l r r}
\caption{Tabellenüberschrift}\label{Tab. 2}\\ \hline
& Bezeichnung der Spalte & Bezeichnung der anderen Spalte \\
& Inhalt & Inhalt \\ \hline
Inhalt & Daten & Daten \\
Inhalt & & \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
Inhalt II & & Daten\\
Inhalt III & & Daten\\
Inhalt IV & & Daten \\
Inhalt V) & & Daten \\
\textit{N}& Zahl & Zahl\\
\hline 
\end{longtable}
\normalsize

\end{document}

Man kann trefflich darüber streiten, welche Lösung besser ist. Mir persönlich gefällt die erste besser.

Sollen alle Tabellen mit longtable in \small gesetzt werden, wäre es sinnvoll, diese Schriftgrößenänderung direkt in die Definition von \longtable hinein zu patchen:

Open in Online-Editor
\documentclass [12pt,a4paper]{article}
\usepackage[utf8]{inputenc}         
\usepackage[ngerman]{babel}

\usepackage{longtable}
\usepackage{xpatch}
\xpatchcmd{\longtable}{\par}{\par\small}{}{}

\begin{document}
Vergleichstext in \verb|\normalsize|.

\begin{longtable}{l r r}
\caption{Tabellenüberschrift}\label{Tab. 2}\\ \hline
& Bezeichnung der Spalte & Bezeichnung der anderen Spalte \\
& Inhalt & Inhalt \\ \hline
Inhalt & Daten & Daten \\
Inhalt & & \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
Inhalt II & & Daten\\
Inhalt III & & Daten\\
Inhalt IV & & Daten \\
Inhalt V) & & Daten \\
\textit{N}& Zahl & Zahl\\
\hline 
\end{longtable}

Vergleichstext in \verb|\normalsize|.
\end{document}

Natürlich könnte man das Verfahren auch nützen, um nur die jeweils nächste Tabelle in einer anderen Schriftgröße zu setzen:

Open in Online-Editor
\documentclass [12pt,a4paper]{article}
\usepackage[utf8]{inputenc}         
\usepackage[ngerman]{babel}

\usepackage{longtable}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\longtable}{\par}{\par\LT@font\global\let\LT@font\relax}{}{}
\newcommand*{\LT@font}{}
\newcommand*{\nextlongtablefont}[1]{\def\LT@font{#1}}
\makeatother

\begin{document}
Vergleichstext in \verb|\normalsize|.

\nextlongtablefont{\small}
\begin{longtable}{l r r}
\caption{Tabellenüberschrift}\label{Tab. 2}\\ \hline
& Bezeichnung der Spalte & Bezeichnung der anderen Spalte \\
& Inhalt & Inhalt \\ \hline
Inhalt & Daten & Daten \\
Inhalt & & \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
\ \ Daten & & Daten \\
Inhalt II & & Daten\\
Inhalt III & & Daten\\
Inhalt IV & & Daten \\
Inhalt V) & & Daten \\
\textit{N}& Zahl & Zahl\\
\hline 
\end{longtable}

Vergleichstext in \verb|\normalsize|.
\end{document}

Nebenbei bemerkt solltest Du eventuell auch die \ \ zum Einfügen von horizontalem Abstand überdenken. Horizontalen Abstand fügt man besser mit \hspace bzw. \hspace* oder \quad oder \qquad oder ähnlichen Befehlen und noch besser mit semantischem Markup ein. Innerhalb einer Tabelle gibt es ggf. auch noch bessere Möglichkeiten, für die jedoch der konkrete Aufbau und Inhalt der Tabelle bekannt sein müsste.

Permanenter link

beantwortet 23 Dez '16, 17:26

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 23 Dez '16, 18:00

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:

×256
×128
×39
×1
×1

gestellte Frage: 23 Dez '16, 17:04

Frage wurde gesehen: 8,009 Mal

zuletzt geändert: 23 Dez '16, 18:00