好吧。我真的束手无策了。
我向我的教授索要他的幻灯片,因为我觉得它们看起来非常漂亮。他给我发了 tex 文件,到目前为止它运行良好,但是,我只想在其中包含一个带标题的图形。\includegraphics{ ... ] 似乎运行良好,但当我尝试将其包装在 begin/end{figure} 环境中时,它会被忽略。
\documentclass[a4paper,landscape]{slides}
\usepackage[centertags,reqno]{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{rotating}
\topmargin -2cm \textheight 17cm \textwidth 24cm
\special{landscape} %landscape
\newcommand{\nextslide}[1]{\end{slide}\begin{slide}{\bf \underline{\centerline{#1}}}}
\begin{document}
\begin{slide}
\nextslide{Fun Stuff}
% Doesn't work
%\begin{figure}[h]
%\centering
%\includegraphics{foo}
%\caption{caption}
%\end{figure}
% Does work
\includegraphics{foo}
\end{slide}
\end{document}
答案1
要使用不带浮动的标题,您可以使用caption
包(参见无浮动的标签和标题)。为了扩展该答案,文档中给出了一个重要注释caption
(目前为第 18 页):
[...] 您应该同时使用两者
\captionof
,并且\captionof*
只在盒子或环境内使用 [...]
因此,您应该使用现有环境(例如\begin{center} \end{center}
)或自定义环境(用定义\newenvironment
)来指示标题的范围(表示框的 mm)。
要使用\captionof
,必须用 声明类型\DeclareCaptionType
,但遗憾的是,软件包文档中没有该声明(请注意,CTAN 上的当前版本日期为 2016-05-22,而文档日期为 2011-11-02)。必须选择类型的标识符,以免与现有命令冲突(例如,在下面的 MWE 中,标识符figure
会产生错误,而myfigure
可以)。
代码:
\documentclass[a4paper,landscape]{slides}
\usepackage[centertags,reqno]{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{caption}
\DeclareCaptionType{myfigure}[Figure]
\newenvironment{nonfloat}{}{}
\topmargin -2cm \textheight 17cm \textwidth 24cm
\special{landscape} %landscape
\newcommand{\nextslide}[1]{\end{slide}\begin{slide}{\bf \underline{\centerline{#1}}}}
\begin{document}
\begin{slide}
\nextslide{Fun Stuff}
\begin{nonfloat}
\includegraphics{example-image}
\captionof{myfigure}{This is a figure.}
\end{nonfloat}
\end{slide}
\begin{slide}
\nextslide{Centered}
\begin{center}
\includegraphics{example-image-b}
\captionof{myfigure}{This is a centered figure.}
\end{center}
\end{slide}
\end{document}
结果: