\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*または環境内でのみ使用する必要があります [...]

したがって、キャプションのスコープ (ボックスの場合は mm) を示すには、既存の環境 ( など\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}

結果:

ここに画像の説明を入力してください ここに画像の説明を入力してください

関連情報