はじめに
LaTeXでsubcaptionパッケージを使用したときにcaptionの書式まで変わってしまう、という問題に対する解決策を調べた。
日本語で調べても答えが見つからなかったので、忘れないうちにここにメモしておく。
問題
とある学会に提出する論文を書いていた時のこと。
figure環境内に図を並べようと思いプリアンブルに\usepackage{subcaption}
と書いたところコンパイルエラーを吐いた。じゃあこれならどうだと試したところ……
\usepackage{subcaption}
\captionsetup{compatibility=false}
今度はコンパイルはできたものの、キャプション内のフォントや書式が指定されたスタイルファイルとは異なって出力されてしまう。どうやらsubcaptionパッケージを読み込む際に、既存のキャプションの挙動が変わってしまうらしい。
subcaptionではなくsubfigパッケージを使って\usepackage[caption=false]{subfig}
とすれば、キャプションに影響を与えずに使用できるらしい(?)。しかしsubfigは今や非推奨とされている1ようで、できればsubcaptionでなんとかしたい。
解決策
\usepackage{subcaption}
を実行する際に、キャプション関連の既存のコマンドが上書きされないように一時退避させておけばいいらしい。
\makeatletter
\let\MYcaption\@makecaption
\makeatother
\usepackage{subcaption}
\captionsetup{compatibility=false} % 必要に応じて
\makeatletter
\let\@makecaption\MYcaption
\makeatother
これで指定された書式に従いつつサブキャプションを使用できる。