\begin{figure} 使用幻灯片预设时,您的命令已被忽略

\begin{figure} 使用幻灯片预设时,您的命令已被忽略

好吧。我真的束手无策了。

我向我的教授索要他的幻灯片,因为我觉得它们看起来非常漂亮。他给我发了 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}

结果:

在此处输入图片描述 在此处输入图片描述

相关内容