Paket „Labbook“ nicht kompatibel mit Paket „Subcaption“?

Paket „Labbook“ nicht kompatibel mit Paket „Subcaption“?

Haftungsausschluss:Ich weiß, dass dies eine Frage ist, auf die man eher subjektive Antworten geben kann. Ich möchte sie trotzdem stellen, da ich nicht weiß, wie ich sonst vorgehen soll, und nach Rat suche.

ich benutzelabbookum - Sie ahnen es schon - ein Laborbuch zu schreiben. Wenn ich aktivierecaptionin der Präambel ist alles in Ordnung, aber sobald ich hinzufügesubcaption, XeLaTeX gibt aus:

Befehl \theHsubfigure bereits definiert.

Um ehrlich zu sein, lade ichcaptionUndsubcaptionstandardmäßig, da ich sie in den meisten meiner Dokumente verwende und ich ziemlich sicher bin, dass ich sie in meinem Laborbuch brauchen werde, aber ich habe noch keine Bilder in mein Dokument eingefügt. DielabbookKlasse wurde seit 2003 nicht mehr aktualisiert und der Betreuer scheint spätestens seit 2007 auf ctan aktiv gewesen zu sein, als er das letzte Mal aktualisiertealnumsecDie Wahrscheinlichkeit vonlabbookDie Wahrscheinlichkeit, dass in Zukunft ein Update auftritt, ist daher bestenfalls marginal. Mein Unbehagen bezüglich dieser Klasse entstand, als ich den Fehler bekam, obwohl mein Dokument noch ziemlich jungfräulich ist (es hat derzeit insgesamt 40 Zeilen Code). Meine Frage ist daher:

Welche Klasse empfehlen Sie mir anstelle vonlabbookum mein Laborbuch zu schreiben?

Ich bin – verständlicherweise, denke ich – nicht wirklich scharf darauf, mit einer nicht gepflegten Dokumentklasse weiterzumachen, um später auf eine Wand unvorstellbarer Inkompatibilität mit einem wichtigen (ansonsten gut funktionierenden) Paket zu stoßen und dann alle strukturellen Teile meiner TEX-Datei neu schreiben zu müssen.

Ich lese gerade dielabbookDokumentation nochmal und da steht

labbook.clsbasiert auf der KOMA-Script-Klasse scrbook.cls.

könnte dies die Ursache für die Inkompatibilität mitsubcaption? Ich kenne mich mit KOMA-script nicht so gut aus.Welche Pakete sind mit KOMA-Script inkompatibel?,subcaptionwird nicht angezeigt.

Außerdem,subcaptionwar einmalunvereinbarmitmemoir, Aberist nicht mehrIch weiß nicht, obmemoirbasiert aufscrbook, aber das spielt jetzt keine Rolle mehr, da es aktualisiert wurde, um mit zu funktionierensubcaptionSollte ich vielleichtmemoiranstattlabbook?

Antwort1

Wie bereits von moewe in einem Kommentar und vom KOMA-Script-Autor erklärtauf Deutsch auf komascript.dedas Problem ist nicht KOMA-Script, sondern labbook. Um labbookes zu verwenden hyperref, müssen Sie es mit der Option laden hyperref. Aber wenn Sie es mit der Option laden, hyperrefmacht es einen

\newcommand*\theHsubfigure{%
  \theHfigure.\arabic{subfigure}}

direkt nach dem Laden von hyperref. Dies führt zu einem Fehler, da subcaptionbereits definiert ist \theHsubfigure. Das einzige, was Sie tun können, istundefiniert \theHsubfigurevor dem Laden hyperref. Dazu können Sie entweder Folgendes verwenden:

\documentclass[hyperref]{labbook}
\usepackage{subcaption}
\let\theHsubfigure\relax
\usepackage{hyperref}

\begin{document}
Test
\end{document}

oder

\documentclass[hyperref]{labbook}
\BeforePackage{hyperref}{\let\theHsubfigure\relax}
\usepackage{subcaption}
\usepackage{hyperref}

\begin{document}
Test
\end{document}

Sie sollten jedoch beachten, labbookdass es seit mehreren Jahren keine Wartung mehr gibt und es keine Garantie dafür gibt, dass ein solcher Hack zumindest das Problem aus Ihrer Frage wirklich löst.Der subcaptionAutor findet einige sehr klare Worte über labbookdie Neudefinition von \theHfigureund\theHtableund meiner Meinung nach ist die Definition von \theHsubfiguresehr ähnlich. Wenn es also keinen neuen Betreuer gäbe, der alle Probleme behebt, labbookwäre meine Empfehlung dieselbe wie in Moewes Kommentar unter der Frage:Ich würde wahrscheinlich mit scrreprt/ scrbookoder beginnen memoirund ein paar Makros schreiben.Ich würde es aber nicht verwenden labbook, schon gar nicht in Kombination mit subcaption.

verwandte Informationen