Pkg 'labbook' は pkg 'subcaption' と互換性がありませんか?

Pkg 'labbook' は pkg 'subcaption' と互換性がありませんか?

免責事項:これは独断的な回答を誘発する質問であることは承知しています。それでも、他にどう進めればよいのかわからず、アドバイスを求めているため、質問したいのです。

私が使うlabbookラボブックを書くことです。caption前文では、すべては順調ですが、subcaption、XeLaTeX は次をスローします:

コマンド \theHsubfigure はすでに定義されています。

正直に言うと、私はcaptionそしてsubcaptionデフォルトでは、ほとんどの文書で使用しており、ラボブックでも必要になると思いますが、まだ文書に画像を含めていません。labbookクラスは2003年以降更新されておらず、メンテナーは2007年以降はctanで活動していたようです。alnumsecの確率labbookしたがって、将来的に更新を経験することは、せいぜい限界です。このクラスに対する私の違和感は、私のドキュメントがまだかなり初歩的であるにもかかわらず (現時点では合計 40 行のコードがあります)、エラーが発生したときに発生しました。したがって、私の質問は次のとおりです。

代わりにどのクラスを使用することをお勧めしますか?labbookラボブックを書くには?

私も、メンテナンスされていないドキュメント クラスを使い続けて、後で重要な (それ以外は問題なく動作する) パッケージとの考えられないほどの非互換性の壁にぶつかり、TEX ファイルの構造部分をすべて書き直さなければならない状況に陥るのは、あまり好ましくないと思っています (私もそう思います)。

私はただ読んでいるlabbookもう一度ドキュメントを見ると

labbook.clsKOMA-Script-class に基づいていますscrbook.cls

これが互換性の問題の原因なのだろうか?subcaption? KOMAスクリプトはよく分かりません。KOMA-Script と互換性のないパッケージは何ですか?subcaption表示されません。

さらに、subcaptionかつては非互換memoir、 しかしもうないmemoirに基づいていますscrbook、しかし、それは今や問題ではありません。subcaption. 使うべきでしょうかmemoirの代わりにlabbook?

答え1

moeweのコメントとKOMAスクリプトの作者によってすでに説明されているようにドイツ語版はkomascript.deで問題はKOMAスクリプトではなく、ですlabbook。 を使用するには、labbookオプションhyperrefでロードする必要があります。hyperrefしかし、オプション でロードすると、hyperref

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

をロードした直後ですhyperref。これはエラーになります。なぜなら がsubcaptionすでに定義されているからです\theHsubfigure。唯一できることは、定義しない \theHsubfigure読み込む前にhyperref。これを行うには、次のいずれかを使用します。

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

\begin{document}
Test
\end{document}

または

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

\begin{document}
Test
\end{document}

ただし、labbook数年間メンテナンスされていないため、このようなハックによって少なくとも質問の問題が本当に解決されるという保証はないことに注意してください。著者は、の再定義subcaptionについて非常に明確な言葉を述べています。labbook\theHfigure\theHtableそして、私の意見では、 の定義は\theHsubfigureそれに非常に似ています。したがって、 のすべての問題を修正する新しいメンテナーがいない場合は、labbook私の推奨事項は、質問の下の moewe のコメントと同じになります。おそらくscrreprt/scrbookまたはから始めてmemoir、いくつかのマクロを記述するでしょう。しかし、私はlabbookと を少なくとも と組み合わせて使用​​しませんsubcaption

関連情報