\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)來指示標題的範圍(框的毫米)。

要使用\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}

結果:

在此輸入影像描述 在此輸入影像描述

相關內容