我试图在一张图中包含两个 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}