免責事項:これは独断的な回答を誘発する質問であることは承知しています。それでも、他にどう進めればよいのかわからず、アドバイスを求めているため、質問したいのです。
私が使うlabbook
ラボブックを書くことです。caption
前文では、すべては順調ですが、subcaption
、XeLaTeX は次をスローします:
コマンド \theHsubfigure はすでに定義されています。
正直に言うと、私はcaption
そしてsubcaption
デフォルトでは、ほとんどの文書で使用しており、ラボブックでも必要になると思いますが、まだ文書に画像を含めていません。labbook
クラスは2003年以降更新されておらず、メンテナーは2007年以降はctanで活動していたようです。alnumsec
の確率labbook
したがって、将来的に更新を経験することは、せいぜい限界です。このクラスに対する私の違和感は、私のドキュメントがまだかなり初歩的であるにもかかわらず (現時点では合計 40 行のコードがあります)、エラーが発生したときに発生しました。したがって、私の質問は次のとおりです。
代わりにどのクラスを使用することをお勧めしますか?labbook
ラボブックを書くには?
私も、メンテナンスされていないドキュメント クラスを使い続けて、後で重要な (それ以外は問題なく動作する) パッケージとの考えられないほどの非互換性の壁にぶつかり、TEX ファイルの構造部分をすべて書き直さなければならない状況に陥るのは、あまり好ましくないと思っています (私もそう思います)。
私はただ読んでいるlabbook
もう一度ドキュメントを見ると
labbook.cls
KOMA-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
。