![Problem mit der Bild- und Tabellenüberschrift](https://rvso.com/image/330734/Problem%20mit%20der%20Bild-%20und%20Tabellen%C3%BCberschrift.png)
Ich schreibe eine Abschlussarbeit mit Latex. Beim Hinzufügen der Bildunterschrift ist der folgende Fehler aufgetreten:
l. 91 \caption{Chevauchement et ligature}
I suspect you've forgotten a `}', causing me to apply this control sequence to too much text.
Wenn ich den gleichen Code in eine neue Datei schreibe, funktioniert er, aber nicht in meiner Abschlussarbeit. Kann mir jemand helfen?
Antwort1
Da
pfe
und./styles/srcltx
in meinem System nicht vorhanden sind, habe ich das erste in „book“ geändert und das zweite entfernt. Ich habe einen Ordner „chapters“ und einen Unterordner „chap1“ erstellt. Wie im folgenden Screenshot gezeigt, wird das Ergebnis in meinem System kompiliert und die Abbildung wird angezeigt (ich habe eine Dummy-Abbildung verwendet). Abgesehen von scheinbaren Kodierungsproblemen gibt es in Ihrem MWE keine Fehler.imgur.com/GRtTOy7
Tatsächlich befindet sich das fehlerhafte Bit in der Klassendatei
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % caption %%% ACHTUNG, DAS wird nicht von allen % distrib LateX unterstützt. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{caption2}
\captionstyle{centerlast}
\renewcommand\captionfont{\footnotesize}
\renewcommand\captionlabelfont{\bfseries\itshape}
%\setcaptionmargin{\leftmargini}
%\setlength\captionindent{\parindent}
\renewcommand\captionlabeldelim{~---}
\onelinecaptionstrue
\setcaptionwidth{12.9999cm}
Der Kommentar lautet:
Beschriftung ACHTUNG: Dies wird NICHT unbedingt von allen LateX-Distributionen unterstützt.
Ich habe versucht, einen Blick in die Paketdokumentation für zu werfen caption2
, die die Ursache des Problems zu sein schien, und im Abschnitt „Kompatibilität“ habe ich Folgendes gefunden:
Das Paket caption und seine experimentelle, nun veraltete Variante caption2 sind vom internen Konzept her zu unterschiedlich, um hier eine vollständige Kompatibilität gewährleisten zu können. Daher liegt diesem Paket weiterhin die Datei caption2.sty bei, sodass ältere Dokumente, die das caption2-Paket verwenden, weiterhin übersetzt werden können.
was Google folgendermaßen übersetzt:
Das Paket caption und seine experimentelle und mittlerweile veraltete Variante caption2 sind konzeptionell zu unterschiedlich, um hier vollständige Kompatibilität gewährleisten zu können. Daher befindet sich dieses Paket noch in der Datei caption2.sty, sodass alte Dokumente, die das Paket caption2 verwenden, weiterhin kompiliert werden können.
Die Frage ist also: Warum verwendet Ihre Klasse eine veraltete Version eines Pakets? Bitte aktualisieren Sie die Klasse, damit dies nicht mehr der Fall ist, und ich wette, das Problem wird behoben.
Aktualisieren
Ich habe den fehlerhaften Teil der Klasse gemäß den Anweisungen in der Dokumentation geändert und jetzt sieht es folgendermaßen aus:
\RequirePackage[font=footnotesize,labelfont={bf,it}]{caption}
\captionsetup{justification=centerlast,singlelinecheck=on}
%\renewcommand\captionfont{\footnotesize}
%\renewcommand\captionlabelfont{\bfseries\itshape}
%\setcaptionmargin{\leftmargini}
%\setlength\captionindent{\parindent}
\newcommand\captionlabeldelim{~---}
%\onelinecaptionstrue
\setcaptionwidth{12.9999cm}
und alles wird kompiliert und das Format scheint mehr oder weniger dasselbe wie das Original zu sein.
Übrigens war der Fehler, den ich bekam, völlig anders:
Runaway argument?
{\parbox [b]\captionlinewidth {\strut \@nameuse {caption@@@centerlast\ETC.
./chapters/chap1.tex:15: Paragraph ended before \@gobble was complete.
<to be read again>
\par
l.15 ...ns possibles du hamza en association avec}
Es scheint immer noch Kodierungsprobleme in Ihrem Dokument zu geben. TeXShop
hat mich gewarnt, dass es eines Ihrer Dokumente in Kodierung öffnen musste IsoLatin8
. Bitte stellen Sie sicher, dass alles in derselben Kodierung ist, am besten wenn UTF-8
. Im Moment sieht das Ausgabe-PDF so aus:
Aktualisierung 2
Warum genau sollte Ihre Klasse inputenc
mit der Kodierung geladen werden latin1
, wenn dies utf8
entschieden immer besser ist und latin1
die Kodierungsprobleme verursacht? Und wussten Sie, dass dies der Fall war? Da Sie es aus Ihrem Dokument aufgerufen haben, war das wohl nicht der Fall. Bitte nehmen Sie Ihre Klasse und ändern Sie die Kodierungsoption für inputenc
von latin1
in utf8
, und die Kodierungsprobleme (oder die meisten davon) werden verschwinden. Mit diesem Ergebnis:
Und da ich gerade bearbeite, hier mein inzwischen gelöschter Kommentar:
Außerdem mag es LaTeX nicht besonders, Pakete aus angegebenen Ordnern abrufen zu müssen, da der Ordnername anscheinend Teil des Paketnamens ist und wenn es die Datei findet, sagt es „NEIN, dies stellt nichts bereit,
./styles/pfe
sondern nurpfe
“ ;). Das ?? für den Abbildungsverweis klärt sich offensichtlich bei der zweiten Kompilierung auf.
Und in der Version mit korrigierter Kodierung wurde das Problem behoben.