Descargo de responsabilidad:Sé que esta es una pregunta que genera respuestas obstinadas. Todavía quiero preguntarlo, ya que no sé de qué otra manera debo proceder y estoy buscando consejo.
yo suelolabbook
escribir, lo has adivinado, un libro de laboratorio. cuando activocaption
en el preámbulo, todo está bien, pero tan pronto como agregosubcaption
, XeLaTeX lanza:
Comando \theHsubfigure ya definido.
Para ser honesto, cargocaption
ysubcaption
de forma predeterminada, ya que los uso en la mayoría de mis documentos y estoy bastante seguro de que los necesitaré en mi libro de laboratorio, pero todavía no he incluido ninguna imagen en mi documento. Ellabbook
la clase no se ha actualizado desde 2003 y el mantenedor parece haber estado activo en ctan a más tardar en 2007, cuando actualizó por última vezalnumsec
. La probabilidad delabbook
Por lo tanto, experimentar una actualización en el futuro es, en el mejor de los casos, marginal. Mi incomodidad acerca de esta clase surgió cuando recibí el error, a pesar de que mi documento todavía es bastante virgen (tiene 40 líneas de código en total, a partir de ahora). Por tanto mi pregunta es:
¿Qué clase me recomiendas usar en lugar de?labbook
escribir mi libro de laboratorio?
Creo que no estoy realmente interesado en continuar con una clase de documento sin mantenimiento para luego chocar con un muro de incompatibilidad inconcebible con algún paquete importante (que por lo demás funciona bien) y luego tener que reescribir todas las partes estructurales de mi archivo TEX.
solo estoy leyendo ellabbook
documentacion nuevamente y dice
labbook.cls
se basa en la clase KOMA-Scriptscrbook.cls
.
¿Podría ser esta la fuente de la incompatibilidad consubcaption
? No conozco muy bien el script KOMA. En¿Qué paquetes son incompatibles con KOMA-Script?,subcaption
no aparece.
Además,subcaption
solía serincompatibleconmemoir
, peroya no lo es. no se simemoir
está basado enscrbook
, pero eso realmente no importa ahora, ya que se actualizó para funcionar consubcaption
. ¿Debería tal vez usarmemoir
en lugar delabbook
?
Respuesta1
Como ya lo explicó moewe en un comentario y el autor de KOMA-Scripten alemán en komascript.deel problema no es KOMA-Script sino labbook
. Para usarlo labbook
tienes hyperref
que cargarlo con la opción hyperref
. Pero si lo cargas con la opción hyperref
hace un
\newcommand*\theHsubfigure{%
\theHfigure.\arabic{subfigure}}
justo después de cargar hyperref
. Esto resulta en un error, porque subcaption
ya define \theHsubfigure
. Lo único que puedes hacer esindefinir \theHsubfigure
Antes de cargar hyperref
. Para hacerlo, puede utilizar:
\documentclass[hyperref]{labbook}
\usepackage{subcaption}
\let\theHsubfigure\relax
\usepackage{hyperref}
\begin{document}
Test
\end{document}
o
\documentclass[hyperref]{labbook}
\BeforePackage{hyperref}{\let\theHsubfigure\relax}
\usepackage{subcaption}
\usepackage{hyperref}
\begin{document}
Test
\end{document}
Sin embargo, debe tener en cuenta que labbook
no se mantiene durante varios años y no hay garantía de que dicho truco realmente resuelva al menos el problema de su pregunta.El subcaption
autor tiene algunas palabras muy claras sobre labbook
la redefinición de \theHfigure
y\theHtable
y en mi humilde opinión la definición de \theHsubfigure
es muy similar a esa. Entonces, si no hubiera un nuevo mantenedor que solucione todos los problemas, labbook
mi recomendación sería la misma que en el comentario de Moewe debajo de la pregunta:Probablemente comenzaría con scrreprt
/ scrbook
o memoir
y escribiría algunas macros.Pero yo no lo usaría labbook
y al menos no en combinación con subcaption
.