这很奇怪,我的代码运行良好,然后我实际上只是走出房间,当我回来并编译时,我收到错误未定义的控制序列 \subfloat。
基本上,我试图将 3 个图像(cc.png、bb.png 和 tt.png)并排排列在文档中,而不是像 latex 尝试的那样排列在一列中。这是我的代码的相关部分:
\documentclass{article}
\usepackage[top=0.5in]{geometry}
\usepackage{fullpage}
\usepackage{graphicx}
\usepackage{auto-pst-pdf}
\usepackage{epstopdf}
\usepackage{float}
\usepackage{subfloat}
\usepackage{caption}
\usepackage{axodraw4j}
\usepackage{pstricks}
\usepackage{color}
\DeclareMathSizes{10}{12}{10}{6}
\begin{document}
\title{Higgs Boson Deacay}
\author{name}
\maketitle
\begin{figure}[h!t]
\centering
\subfloat{\includegraphics[scale=0.7]{cc}}
\subfloat{\includegraphics[scale=0.7]{bb}}
\subfloat{\includegraphics[scale=0.7]{tt}}
\end{figure}
\end{document}
我的输出没有问题,我确定我没有改变任何东西(尽管我承认我肯定做了,否则就不会有问题),但现在这段代码一直给我我所说的错误。我已经看了很长时间了,问题可能就在我眼前,但我看不到。任何帮助都将不胜感激。
答案1
该subfloat
包未定义\subfloat
(并且从未定义过它)。其用途不同:您可以将不同的标题分组到同一个数字下并附加一个字母,类似于环境subequations
(from amsmath
)所做的。
因为\subfloat
你需要加载subfig
\usepackage{subfig}
或者
\usepackage[caption=false]{subfig}
如果您不想caption
与包一起加载subfig
(某些类,特别是IEEEtran
不允许加载caption
。
subcaption
但是,如果你对所用软件包没有限制,则应该考虑:它更新且维护良好。此外,它没有 在使用subfig
时出现的小缺陷。hyperref
顺便说一句你不应该说
\begin{figure}[!ht]
(放置位置!
无关紧要),但是
\begin{figure}[!htp]
因为否则你可能会阻塞浮动队列。
答案2
请不要使用subfloat
和subfig
朋友,因为它们在某些文档类中存在某些问题。这是使用最新包的解决方案subcaption
。
执行
\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}[ht!]
\centering
\begin{subfigure}{.4\linewidth}
\includegraphics[scale=0.7]{cc}
\caption{cc}
\end{subfigure}
\hskip2em
\begin{subfigure}{.4\linewidth}
\includegraphics[scale=0.7]{bb}
\caption{bb}
\end{subfigure}
\begin{subfigure}{.4\linewidth}
\includegraphics[scale=0.7]{tt}
\caption{tt}
\end{subfigure}
\caption{Several subfigures}
\end{figure}
\end{document}
输出
答案3
我更喜欢使用多个子图。
为此,您必须包含子标题包声明:
\usepackage{subcaption}
然后,将 3 个数字并排放置的代码如下所示:
\begin{figure}[t!]
\centering
\begin{subfigure}[b]{0.25\textwidth}
\centering
\includegraphics[width=\textwidth]{fig1.png}
\caption{}
\label{fig:a}
\end{subfigure}
\begin{subfigure}[b]{0.25\textwidth}
\centering
\includegraphics[width=\textwidth]{fig2.png}
\caption{}
\label{fig:b}
\end{subfigure}
\begin{subfigure}[b]{0.25\textwidth}
\centering
\includegraphics[width=\textwidth]{fig3.png}
\caption{}
\label{fig:c}
\end{subfigure}
\caption{Three images side-by-side}
\end{figure}