子图和 TikZ 错误

子图和 TikZ 错误

我试图在一张图中包含两个 TikZ 图片:

\documentclass[12pt]{scrbook}
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usepackage{subfigure}

\begin{document}

\begin{figure}[h]
    \begin{subfigure}[b]{0.49\textwidth}
        \centering
        \resizebox{\linewidth}{!}{TikZ/QuadrateResiduenParabola}
     \caption{Text.}
    \end{subfigure}

    \begin{subfigure}[b]{0.49\textwidth}
        \centering
        \resizebox{\linewidth}{!}{TikZ/QuadrateResiduenParaboloid}
     \caption{More text.}
    \end{subfigure}
\end{figure}

\end{document}

在这里我收到以下错误信息:

Missing number, treated as zero. \begin{subfigure}[b]{0.49\textwidth}
Illegal unit of measure (pt inserted). \begin{subfigure}[b]{0.49\textwidth}

怎么了?

答案1

您的代码存在一些问题:

首先,\resizebox它只是调整给定文件的大小,不会在任何地方查找文件。因此,如果你这样做

\documentclass{article}
\usepackage{graphicx}
\begin{document}
TikZ/QuadrateResiduenParaboloid

\resizebox{\linewidth}{!}{TikZ/QuadrateResiduenParaboloid}
\end{document}

你得到

在此处输入图片描述

要实际插入文件的内容.tex,您\input还需要:

\resizebox{\linewidth}{!}{\input{TikZ/QuadrateResiduenParaboloid}}

第二个原因是您为 subfloats 加载了错误的包。subfigure您加载的包未定义subfigure环境,而是定义了\subfigure用作 的宏\subfigure[<list entry>][<subcaption>]{<figure>}。但该包被视为已弃用,因此您不应使用它。

您使用的语法实际上是由subcaption包定义的,因此您应该\usepackage{subfigure}用替换\usepackage{subcaption}

最后,空行表示段落中断,同样在环境内部figure,因此您需要删除subfigure环境之间的空行,否则它们最终会一个叠在另一个之上。

完整代码:

\documentclass[12pt]{scrbook}
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usepackage{subcaption}

\begin{document}

\begin{figure}[h]
    \begin{subfigure}[b]{0.49\textwidth}
        \centering
        \resizebox{\linewidth}{!}{\input{TikZ/QuadrateResiduenParabola}}
     \caption{Text.}
    \end{subfigure}\hfill
    \begin{subfigure}[b]{0.49\textwidth}
        \centering
        \resizebox{\linewidth}{!}{\input{TikZ/QuadrateResiduenParaboloid}}
     \caption{More text.}
    \end{subfigure}
\end{figure}

\end{document}

相关内容