它一直告诉我:\begin{document} ended by \end{figure}
,但我不明白为什么。我尝试遵循以下指南子图包。这是我的 MWE:
\documentclass[10pt,journal,a4paper]{IEEEtran}
\usepackage{listings}
\usepackage[pdftex]{graphicx}
\usepackage{subfig}
\usepackage{algorithmic}
\begin{document}
\begin{figure}%
\centering
\begin{subfigure}
nothing in it
\end{subfigure}
\qquad
\begin{subfigure}
\begin{lstlisting}
The code
With a line
\end{lstlisting}
\end{subfigure}
\caption{A program and its corresponding trace.\label{figuretrace}}
\end{figure}
\end{document}
我也尝试了该命令,\subfigure
但没有成功。我只是希望能够在子图中嵌入一个 lstlisting 环境。
怎么了?
编辑
另一个环境,算法,也不起作用:
\begin{subfigure}
\begin{algorithm}
The code
With a line
\end{algorithm}
\end{subfigure}
这也不能用于表格、表格式...为什么不行?
答案1
使用我verbatimbox
在评论中的建议:
\documentclass[10pt,journal,a4paper]{IEEEtran}
\usepackage{verbatimbox}
%\usepackage{listings}
\usepackage[pdftex]{graphicx}
\usepackage{subfigure}
\begin{document}
\begin{verbbox}
The code
With a line
\end{verbbox}
\begin{figure}%
\centering
\begin{subfigure}
nothing in it
\end{subfigure}
\qquad
\begin{subfigure}
\theverbbox
\end{subfigure}
\caption{A program and its corresponding trace.\label{figuretrace}}
\end{figure}
\end{document}
答案2
subfigure
不建议使用过时的包;您应该使用subfig
(第 9 和 10 页)。或包
algorithm
中的浮动环境不应与此类一起使用(第 10 页)。algorithm
algorihtm2e
在下面的例子中,我使用subfig
包(按照 HOWTO 文档中的建议加载)来包含子图;首先保存列表lrbox
,然后在命令中使用框\subfloat
:
\documentclass[10pt,journal,a4paper]{IEEEtran}
\usepackage{listings}
\usepackage{graphicx}
\ifCLASSOPTIONcompsoc
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
\else
\usepackage[caption=false,font=footnotesize]{subfig}
\fi
\lstset{basicstyle=\ttfamily\small}
\begin{document}
\newsavebox\mybox
\begin{lrbox}{\mybox}
\begin{lstlisting}
The code
With a line
\end{lstlisting}
\end{lrbox}
\begin{figure}
\centering
\subfloat{%
nothing in it
}\qquad
\subfloat{\usebox\mybox}\qquad
\caption{A program and its corresponding trace.\label{figuretrace}}
\end{figure}
\end{document}