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 运行起来非常顺畅,我还没有尝试过其他操作系统或 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}

相关内容