Im Tabellenverzeichnis wird die longtable mit jeder Seite angeben, wenn ich diesen Teil des Codes verwende:

\endhead 
\\
\midrule \\
\endfoot 
\bottomrule
\endlastfoot

Ich möchte allerdings, dass die Tabelle nur einmal aufgeführt wird. Gibt es eine Lösung für das Problem, auch wenn ich weiterhin \endfootund \endlastfootbenutzen will?

Code

 \documentclass[12pt,a4paper]{article}
 \usepackage[utf8]{inputenc}
 \usepackage{ngerman,longtable, booktabs}

\begin{document}

\vspace*{10cm}

\begin{longtable}{lrcp{2cm}}
\caption{log}
\label{tab:log2}
\\ 
\toprule
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4\\             
 \midrule 
\\
\endhead 
\\
\midrule \\
\endfoot 
\bottomrule
\endlastfoot 
 Linksbündige Spalte.&Rechtsbündige Spalte&Zentrierte Spalte&Parbox\\

 Kurzer Text.&Kurzer Text.&Kurzer Text.&Kurzer Text.\\

 Text.&Text.&Text.&In diesem Felde nun ein elendslanger text, um Umbrüche innerhalb eines Feldes zu erzeugen.\\

Text.&Text.&Text.&der Befehl $\backslash$vspace*\{\} weiter oben im Quellcode hat einen Umbruch vor dieser Zeile bewirkt.\\
\end{longtable}

\clearpage
\listoftables

\end{document}

gefragt 16 Sep '13, 15:58

Bettina's gravatar image

Bettina
65541923
Akzeptiert: 83%

bearbeitet 16 Sep '13, 15:58


Die \caption-Anweisung von longtable kennt genau aus diesem Grund die Möglichkeit, ein leeres optionales Argument zu verwenden und für die erste Seite einen anderen Kopf zu definieren als für alle weiteren (so wie Du bereits unterschiedliche Tabellenenden für das letzte Tabellenende und alle vorherigen definiert hast):

\documentclass[12pt,a4paper]{article}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
}
\usepackage{longtable, booktabs}
\usepackage[ngerman]{babel}

\begin{document}
\vspace*{10cm}

\begin{longtable}{lrcp{2cm}}
\caption{log}\label{tab:log2}\\ 
\toprule
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4\\             
\midrule
\endfirsthead
\caption[]{log \small(Fortsetzung)}\\
\toprule
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4\\
\midrule
\endhead
\midrule
\endfoot 
\bottomrule
\endlastfoot 
 Linksbündige Spalte. & Rechtsbündige Spalte &Zentrierte Spalte & Parbox\\

 Kurzer Text. & Kurzer Text. & Kurzer Text. & Kurzer Text.\\

 Text. & Text. & Text. & In diesem Felde nun ein elendslanger text, um
 Umbrüche innerhalb eines Feldes zu erzeugen.\\

Text. & Text. & Text. & der Befehl $\backslash$vspace*\{\} weiter oben im
Quellcode hat einen Umbruch vor dieser Zeile bewirkt.\\
\end{longtable}

\clearpage
\listoftables

\end{document}

Näheres zum leeren optionalen Argument von \caption innerhalb einer longtable-Umgebung ist in Abschnitt 3, der Anleitung zum Paket zu finden. Dort ist auch zu finden, dass ebenfalls eine Anweisung \caption* existierst, die auch keine Nummer ausgibt.

Übrigens ist das Paket ngerman veraltet. Problematisch bei diesem Paket ist, dass es die Bedeutung des " bereits beim Laden verändert, was andere Pakete stören kann. Daher sollte man besser das Paket babel mit Option ngerman verwenden, wie ich das in meinem Beispiel gezeigt habe.

Permanenter link

beantwortet 17 Sep '13, 12:33

saputello's gravatar image

saputello
18.4k22352

bearbeitet 17 Sep '13, 12:36

Das \caption wird in jedem Kopfbereich der Tabelle gesetzt und für jedes \caption gibt es einen Eintrag im Tabellenverzeichnis. Damit das nicht passiert, kann man sich einen ersten Tabellenkopf im Gegensatz zu den weiteren Köpfen definieren. Einfach zusätzlich wie den normalen Kopf eintragen, aber mit \endfirsthead beenden. (Es gibt übrigens auch \endlastfoot für das Ende der gesamten Tabelle im Gegensatz zu dem Ende bei einem Seitenumbruch):

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ngerman,longtable, booktabs}

\newcommand*\cs[1]{\texttt{\textbackslash#1}}
\newcommand*\marg[1]{\texttt{\{#1\}}}

\begin{document}

\vspace*{10cm}

\begin{longtable}{lrcp{2cm}}
   \caption{log}\label{tab:log2} \\
  \toprule
    Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4 \\             
  \midrule
 \endfirsthead
   \multicolumn{4}{c}{Fortsetzung von Tabelle~\ref{tab:log2}} \\
  \toprule
    Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4 \\             
  \midrule
 \endhead
  \midrule
 \endfoot 
  \bottomrule
 \endlastfoot 
  Linksbündige Spalte. & Rechtsbündige Spalte & Zentrierte Spalte & Parbox \\
  Kurzer Text. & Kurzer Text. & Kurzer Text.& Kurzer Text.\\
  Text. & Text. & Text. & In diesem Felde nun ein elendslanger text, um
                          Umbrüche innerhalb eines Feldes zu erzeugen. \\
  Text. & Text. & Text. & der Befehl \cs{vspace*}\marg{} weiter oben im
                          Quellcode hat einen Umbruch vor dieser Zeile
                          bewirkt. \\
\end{longtable}

\clearpage

\listoftables

\end{document}
Permanenter link

beantwortet 16 Sep '13, 16:30

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 16 Sep '13, 18:01

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×31
×6

Frage gestellt: 16 Sep '13, 15:58

Frage wurde angeschaut: 4,899 Mal

Zuletzt aktualisiert: 17 Sep '13, 12:36