svg パッケージとサブキャプションの非互換性

svg パッケージとサブキャプションの非互換性

subcaption パッケージも含まれている場合に svg パッケージを使用する方法はありますか? svg パッケージは subfig パッケージを使用するため、競合が発生するようです。ただし、subcaption パッケージが subfig パッケージよりも優先されるのは常識のようです。

答え1

この答えsubfig解決策は、これによってパッケージの負荷を抑えることです

\expandafter\def\csname [email protected]\endcsname{}

コマンド。残念ながら、これは TeX Live 2015 までしか機能しません。

答え2

私は svg パッケージの現在のメンテナーに電子メールを送信し、次のような解決策を返信しました。

\RequirePackage{scrlfile}
\PreventPackageFromLoading{subfig}
\documentclass{article}
\usepackage{subcaption}
\usepackage{svg}
\usepackage{hyperref}
\begin{document}
test
\end{document}

Windows 上の MiKTeX では問題なく動作しますが、他の OS や TeX ディストリビューションは試していません。svgパッケージの新しいバージョンが近々リリースされる予定で、この問題は修正される予定です。

答え3

非常に大雑把な回避策:

svg.styファイルをプロジェクト フォルダーにコピーし、次の行 (行番号 40) をコメント アウトまたは削除します。

\@ifpackageloaded{subfig}{}{\RequirePackage{subfig}}%

これまでのところ、これはエラーを生成せず、svg ファイルを正しくコンパイルします。環境\includesvg内で svg 画像ファイルをコンパイルする場合にも機能しますsubcaption

答え4

約1時間の作業の後、公式ドキュメントで解決策を見つけました。

パッケージのサブキャプション:https://mirror.hmc.edu/ctan/macros/latex/contrib/caption/subcaption.pdf

注意: このパッケージは、subfigure および subfig パッケージとは互換性がありません。

サブ図用のLaTeXコードは次の通り。ただし、その前に以下を含める必要がある。

\usepackage{subcaption} 

\begin{figure}
    \begin{minipage}[b]{.5\linewidth}
        \centering
        \includegraphics[]{fig-1.pdf}
        \subcaption{A subfigure}\label{fig:1a}
    \end{minipage}%
    \begin{minipage}[b]{.5\linewidth}
        \centering
            \includegraphics[]{fig-2.pdf}
        \subcaption{Another subfigure}\label{fig:1b}
    \end{minipage}
    \caption{A figure}\label{fig:1}
\end{figure}

次のようなパッケージを組み込んだ場合

\usepackage{subfigure}
\usepackage{subfig}

必要なのは、上記のコメントだけです。subfigureおよびsubfigは と互換性がありませんsubcaption。 これらを削除すると、問題は解決します。

   %\usepackage{subfigure}
    %\usepackage{subfig}

関連情報