Fehler bei Wechsel von [htbp] zu [H]

Tabellen und Grafiken erstellen und anordnen


ONeill
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Di 13. Okt 2015, 16:32

Fehler bei Wechsel von [htbp] zu [H]

Beitrag von ONeill »

Hallo zusammen,

ich habe eine LaTeX Datei und eben gelesen, dass [H] mittels \usepackage{float} Positionierung von Abbildungen und Tabellen erzwingen kann. Um das zu testen habe ich mittels "Ersetzen"-Befehl [htbp] gegen [H] austauschen lassen. Anschließend erhalte ich die Fehlermeldung:
"\begin{table} ended by \end{document}"
Also irgend eine Tabelle scheint nicht geschlossen.
Wenn ich die Tabelle aus der angegebenen Zeile lösche (letzte Tabelle im Dokument) verschiebt sich die Fehlermeldung zur Tabelle davor. Lösche ich diese passiert das gleiche erneut.

Ein Minimalbeispiel kann ich nicht extrahieren, da es sich um eine große Arbeit handelt.

Bei der Verwendung von [htbp] erhalte ich keine Fehlermeldung, also sollte die Datei doch eigentlich in Ordnung sein?

Über Hinweise zur Fehlerfindung würde ich mich sehr freuen, danke.

Gruß ONeill

Beobachter

Alternative Vorgehensweisen

Beitrag von Beobachter »

Wenn schon kein Minimalbeispiel beigefügt ist, solltest Du wenigstens die verwendete Dokumentklasse nennen. Sowohl die Klassen aus »KOMA-Script« als auch das Paket »caption« stellen den Befehl '\captionof' bereit, um Abbildungen und Tabellen ohne die Benutzung einer Gleitumgebung zu beschriften und damit an einer Position in der Ausgabe zu fixieren.

Ein anderer Ansatz wäre auch, die Parameter für die Positionierung um ein Ausrufezeichen zu ergänzen, also beispielsweise '[!htb]' zu schreiben. Dadurch werden interne Einstellungen für Gleitumgebungen vernachlässigt und Objekte eher nach Wunsch positioniert.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Fehler bei Wechsel von [htbp] zu [H]

Beitrag von u_fischer »

ONeill hat geschrieben: Ein Minimalbeispiel kann ich nicht extrahieren, da es sich um eine große Arbeit handelt.
Teste es mit Präambel + 1 Tabelle. Wenn das funktioniert, verschiebe \end{document} nach oben, bis du den schuldigen Code findest.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Hallo ONeill,

willkommen im Forum!

Du erhältst eine Fehlermeldung, die nichts direkt mit der Option zu tun hat. Entweder ist das tatsächlich ein anderer Fehler, oder ein Folgefehler der wegen einer vorangehend falschen Syntax auftritt. Wichtig ist eigentlich zunächst immer der zuerst auftretende Fehler. Manche sehen nur die letzte Fehlermeldung, weil auf vollständiges Durchkomponieren unter Überspringen der Fehler eingestellt ist.

Dir sagen, dass ein \end{table} fehlt, brauchen wir ja nicht, die Meldung ist ja klar und Du hast das kontrolliert. Also bleibt nur Spekulation, was die andere Ursache sein könnte. Wenn Du es nicht findest, solltest Du dennoch ein Minimalbeispiel erstellen. Die Größe der Arbeit ist egal! Wenn Du eine Kopie machst, kannst Du bei der Kopie (!) zügig große Teile weglöschen und es auf das wesentliche reduzieren. Folge mal dem Link hier in dem Absatz, dort ist es erklärt.

Stefan

ONeill
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Di 13. Okt 2015, 16:32

Beitrag von ONeill »

Hallo!

Vielen Dank für eure Hinweise. Tatsächlich tritt das Problem bereits mit einer Tabelle + Präambel auf. Eine vorherige Fehlermeldung gab es in meiner Datei nicht.

Ich habe die Datei angehängt. Wird es lieber gesehen den Code im Beitrag oder als Dateianhang beizulegen?

Gruß ONeill

Edit: Minimalbeispiel im Beitrag eingefügt.
\documentclass[a4paper, 12pt, headsepline]{scrartcl}
\setcounter{tocdepth}{5}   % nimmt paragraph in inhaltsverzeichnis
\setcounter{secnumdepth}{5} % nummeriert Paragraph  
\usepackage[ngerman]{babel}  % für englisch und umlaute
\usepackage[T1]{fontenc}
\usepackage{lmodern} %um T1 mit sauberer schrift
\usepackage[utf8]{inputenc} %für Umlaute
\usepackage{graphicx}
\usepackage{setspace} % für Abstände
\usepackage{soul}
\usepackage{float}
\usepackage{longtable}
\usepackage{subfigure}
\usepackage{caption}
\usepackage{amsmath}
\usepackage{color}
\usepackage{url}
\usepackage{wasysym}% für promille ,zeichen
\usepackage{textcomp} % für Bindestrich in Hyphenation
\usepackage{footnote} %für Tabelle mit eigenen Fußnoten
\makesavenoteenv{tabular}
\makesavenoteenv{table}
\renewcommand{\arraystretch}{1.5} % für zeilenabstand in tabelle
\setlength{\parindent}{0cm} %Einzug generell auf 0
\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentriert mit Breitenangabe
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe
\setcapindent{0pt} % setzt den caption Einzug auf 0
\setcapindent{0pt} % setzt den caption Einzug auf 0
\makeatletter %%%%%%%%%%%%%%%%%%%%%%%für hochgestellte biblio
\def\@citess#1{\textsuperscript{[#1]}} %%%%%%%%%%%%%%%%%%%%%%%für hochgestellte biblio


\begin{document}
\onehalfspacing

\begin{table}[H]
  \centering
  \caption{Add caption}
    \begin{tabular}{rrrrr}
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    \end{tabular}
  \label{tab:addlabel}
\end{table}


\end{document} 
Dateianhänge
Arbeit.tex
(1.94 KiB) 479-mal heruntergeladen
Zuletzt geändert von ONeill am Mi 14. Okt 2015, 09:04, insgesamt 1-mal geändert.

Besserwisser

Beitrag von Besserwisser »

Code eines selbständig lauffähigen Minimalbeispiels im Beitrag ist bedeutend besser, weil dann der Online-Editor direkt per Link aufgerufen werden kann.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Nimm \makesavenoteenv{table} weg. Das beißt sich mit der H-Option von float. Und es funktioniert sowieso nicht: bei gleitenden Tabellen mit Fußnoten können die Fußnotentexte auf anderen Seiten landen. Fußnoten in Gleittabellen sollte man als tablenotes mit three­part­table erzeugen.

Noch so einer

Beitrag von Noch so einer »

Da Du ohnehin bereits longtable geladen hast, kannst Du nicht gleitende Tabellen auch einfach damit machen:
\documentclass[a4paper, 12pt, headsepline. parskip=half-]{scrartcl}
\setcounter{tocdepth}{5}   % nimmt paragraph in inhaltsverzeichnis
\setcounter{secnumdepth}{5} % nummeriert Paragraph  
\usepackage[ngerman]{babel}  % für englisch und umlaute
\usepackage[T1]{fontenc}
\usepackage{lmodern} %um T1 mit sauberer schrift
\usepackage[utf8]{inputenc} %für Umlaute
\usepackage{setspace} % für Abstände
\usepackage{longtable}
\usepackage{subfigure}% <-- Dieses Paket ist veraltet! Offizieller Nachfolger
                      %     ist subfig. Gerne empfohlen wird subcaption.
\usepackage{caption}% <-- nicht verwendet, daher ggf. weglassen
\usepackage{footnote} %für Tabelle mit eigenen Fußnoten
\makesavenoteenv{tabular}
\renewcommand{\arraystretch}{1.5} % für zeilenabstand in tabelle
%\setlength{\parindent}{0cm}% <-- Unfug durch Option parskip ersetzt
\setcapindent{0pt} % setzt den caption Einzug auf 0
%\setcapindent{0pt} % <-- einmal genügt
\makeatletter %%%%%%%%%%%%%%%%%%%%%%%für hochgestellte biblio
\def\@citess#1{\textsuperscript{[#1]}} %%%%%%%%%%%%%%%%%%%%%%%für
                                %%%%%%%%%%%%%%%%%%%%%%%hochgestellte biblio
\makeatother% <-- gehört zu \makeatletter und fehlte

\usepackage{mwe}% Zu Demo-Zwecken

\begin{document}
\onehalfspacing
\blindtext
\begin{longtable}{rrrrr}
  \caption{Add caption}\label{tab:addlabel}\\
%  \endfirsthead
  test  & test  & test  & test  & test \\
  test  & test  & test  & test  & test \\
  test  & test  & test  & test  & test \\
  test  & test  & test  & test  & test \\
  test  & test  & test  & test  & test \\
  test  & test  & test  & test  & test \\
  test  & test  & test  & test  & test \\
  \endfirsthead
\end{longtable}
\label{tab:addlabel}
\blindtext
\end{document}
Ich habe außerdem den Dingen, zu denen ich eine Anmerkung geschrieben habe, alles weggelassen, was für das Problem unerheblich ist. Bezüglich \parindent auf Null zu setzen siehe auch: Warum sollte man \parindent nicht benutzen?.

Wenn Seitenumbrüche innerhalb der Tabelle erlaubt sein sollen, verschiebt man das \endfirsthead beispielsweise an die auskommentierte Stelle.

Noch so einer

Beitrag von Noch so einer »

Oh, die zweite \label-Anweisung ist natürlich zuviel.

Ebenfalls funktionieren würde:
\documentclass[a4paper, 12pt, headsepline. parskip=half-]{scrartcl}
\setcounter{tocdepth}{5}   % nimmt paragraph in inhaltsverzeichnis
\setcounter{secnumdepth}{5} % nummeriert Paragraph  
\usepackage[ngerman]{babel}  % für englisch und umlaute
\usepackage[T1]{fontenc}
\usepackage{lmodern} %um T1 mit sauberer schrift
\usepackage[utf8]{inputenc} %für Umlaute
\usepackage{setspace} % für Abstände
\usepackage{subfigure}% <-- Dieses Paket ist veraltet! Offizieller Nachfolger
                      %     ist subfig. Gerne empfohlen wird subcaption.
\usepackage{caption}% <-- nicht verwendet, daher ggf. weglassen
\usepackage{footnote} %für Tabelle mit eigenen Fußnoten
\makesavenoteenv{tabular}
\renewcommand{\arraystretch}{1.5} % für zeilenabstand in tabelle
%\setlength{\parindent}{0cm}% <-- Unfug durch Option parskip ersetzt
\setcapindent{0pt} % setzt den caption Einzug auf 0
%\setcapindent{0pt} % <-- einmal genügt
\makeatletter %%%%%%%%%%%%%%%%%%%%%%%für hochgestellte biblio
\def\@citess#1{\textsuperscript{[#1]}} %%%%%%%%%%%%%%%%%%%%%%%für
                                %%%%%%%%%%%%%%%%%%%%%%%hochgestellte biblio
\makeatother% <-- gehört zu \makeatletter und fehlte

\usepackage{mwe}% Zu Demo-Zwecken

\begin{document}
\onehalfspacing
\blindtext
\begin{center}
\begin{minipage}{\textwidth}
  \centering
  \captionaboveof{table}{Add caption}\label{tab:addlabel}
  \begin{tabular}{rrrrr}
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
    test  & test  & test  & test  & test \\
  \end{tabular}
\end{minipage}
\end{center}
\blindtext
\end{document}
Unterschiede zwischen den beiden Vorschlägen gibt es beispielsweise bei Verwendung von Fußnoten. Siehe dafür auch den Vorschlag von Ulrike.

ONeill
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Di 13. Okt 2015, 16:32

Beitrag von ONeill »

Vielen Dank für die ausführliche Hilfe.

Beste Grüße
ONeill

Antworten