Pkg 'labbook' incompatível com pkg 'subcaption'?

Pkg 'labbook' incompatível com pkg 'subcaption'?

Isenção de responsabilidade:Eu sei que esta é uma pergunta que atrai respostas opinativas. Ainda quero perguntar, pois não sei de que outra forma devo proceder e estou procurando um conselho.

eu usolabbookescrever - você adivinhou - um labbook. Quando eu ativocaptionno preâmbulo, está tudo bem, mas assim que adicionosubcaption, XeLaTeX lança:

Comando \theHsubfigure já definido.

Para ser honesto, eu carregocaptionesubcaptionpor padrão, já que eu os uso na maioria dos meus documentos e tenho certeza de que precisarei deles no meu labbook, mas ainda não incluí nenhuma imagem no meu documento. Olabbooka classe não é atualizada desde 2003 e o mantenedor parece estar ativo no ctan o mais tardar em 2007, quando ele atualizou pela última vezalnumsec. A probabilidade delabbookexperimentar uma atualização no futuro é, portanto, marginal, na melhor das hipóteses. Meu desconforto com essa classe surgiu quando recebi o erro, embora meu documento ainda seja bastante virgem (ele tem 40 linhas de código no total, no momento). Minha pergunta é, portanto:

Que classe você recomenda que eu use em vez delabbookescrever meu labbook?

Eu não estou - aparentemente, eu acho - não muito interessado em continuar com uma classe de documento não mantida para mais tarde atingir algum muro de incompatibilidade inconcebível com algum pacote importante (que de outra forma funciona bem) e então ter que reescrever todas as partes estruturais do meu arquivo TEX.

Estou apenas lendo olabbookdocumentação novamente e diz

labbook.clsé baseado na classe KOMA-Script scrbook.cls.

poderia ser esta a fonte da incompatibilidade comsubcaption? Não conheço muito bem o script KOMA. EmQuais pacotes são incompatíveis com o KOMA-Script?,subcaptionnão aparece.

Além disso,subcaptioncostumava serincompatívelcommemoir, masnão é mais. Eu não sei sememoiré baseado emscrbook, mas isso realmente não importa agora, pois foi atualizado para funcionar comsubcaption. Devo talvez usarmemoirem vez delabbook?

Responder1

Conforme já explicado por moewe em um comentário e pelo autor do KOMA-Scriptem alemão em komascript.deo problema não é KOMA-Script, mas labbook. Para usar labbookwith hyperrefvocê tem que carregá-lo com a opção hyperref. Mas se você carregá-lo com a opção, hyperrefele fará um

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

logo após o carregamento hyperref. Isso resulta em um erro, porque subcaptionjá define \theHsubfigure. A única coisa que você poderia fazer éindefinir \theHsubfigureantes de carregar hyperref. Para fazer isso, você pode usar:

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

\begin{document}
Test
\end{document}

ou

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

\begin{document}
Test
\end{document}

No entanto, você deve observar, labbooknão é mantido há vários anos e não há garantia de que tal hack realmente resolva pelo menos o problema da sua pergunta.O subcaptionautor tem algumas palavras muito claras sobre labbooka redefinição \theHfiguree\theHtablee IMHO a definição de \theHsubfigureé muito semelhante a isso. Então, se não fosse um novo mantenedor que corrigisse todos os problemas, labbookminha recomendação seria a mesma do comentário de moewe abaixo da pergunta:Eu provavelmente começaria com scrreprt/ scrbookou memoire escreveria algumas macros.Mas eu não usaria labbooke pelo menos não em combinação com subcaption.

informação relacionada