LaTeX ドキュメント内の希望する位置に図を正確に配置するにはどうすればよいですか?

LaTeX ドキュメント内の希望する位置に図を正確に配置するにはどうすればよいですか?

私が取り組んでいる新しい本は最終提出段階にありますが、出版社から、例が始まるとすぐに図を配置するように依頼されました。たとえば、問題の一部として図を含める場合、出版社は問題が終了してソリューションが始まるとすぐに図が表示されることを望んでいます。残念ながら、図は出力 (PDF) ファイルの次のページに表示されるため、その方法がわかりません。質問は、LaTeX ドキュメントで希望する正確な位置に図を配置するにはどうすればよいかということです。特別なパッケージを使用してこれを実現できますか? 大変助かりました。ありがとうございます!

答え1

フロートは LaTeX にコンテンツを「最適な位置」に移動するように指示するため、フロートを使用しないでください。代わりに、またはパッケージと環境など\captionofを使用して、の垂直間隔の損失を補います。この例では、これが図のリストを生成するのにうまく機能することを示していますが、Okular-on-X のバグのため、現時点では適切な画像を作成できません。capt-ofcaptioncenterfigure

\documentclass[]{article}
\usepackage{capt-of}
\usepackage{graphics}

\begin{document}
\listoffigures

\begin{center}\includegraphics{example-image-a}\par\captionof{figure}{A figure.}\end{center}
\begin{center}\includegraphics{example-image-b}\par\captionof{figure}{A figure.}\end{center}
\begin{center}\includegraphics{example-image-c}\par\captionof{figure}{A figure.}\end{center}
\end{document}

答え2

これは特別なパッケージの助けを借りて実現できますか?

私がこの問題を理解しているなら、出版社問題、イメージ、解決策の3つの要素をこの順序でまとめたいと考えています。ブロック全体をPDFに表示するかどうかはわかりません。浮くまたは、テキスト内の特定の段落の間に、要求どおりに配置することもできます。ここでは、前者、つまりProblemSolutionフロートであると想定しました。つまり、LaTeX は問題解決ブロックを環境内の画像とまったく同じようにfigureフロートとして配置しますが、3 つの要素は常にグループ化されます。

すべてを環境内に配置するだけで目標を達成できますfigure。しかし、浮くパッケージは、いくつかの追加により、ここでは非常に便利です (以下の例を参照してください)。たとえば、\captionカスタム ラベルを使用したり、カスタム フロートのリストを作成したり、フロートのスタイルを設定したりできます。最も重要なマクロは です\newfloat。これはカスタム環境を作成し、その中のすべてが他の標準フロートとまったく同じように移動します。

この例では、環境がテキスト内のどこに配置されているか、そしてPDFのどこに表示されているかに注意してくださいProblemsSolution。たとえば、最初の問題最初の段落の後に置かれていますが、LaTeXが十分なスペースを見つけられないため、PDFでは次のページの先頭に表示されます。2番目と3番目はProblemSolutionPDFでは次のように表示されます。リクエスト十分なスペースが確保されたためです。 3 つのインスタンスすべてにおいて、すべてがまだグループ化されています。

例:

\documentclass[12pt]{book}
\usepackage{graphicx}
\usepackage{float}
\usepackage{caption}
\usepackage[colorlinks]{hyperref}
\usepackage{kantlipsum}

\newfloat{problem}{tbhp}{psf}[chapter]
\floatname{problem}{Problem}
\newenvironment{ProblemSolution}{%
  \begin{problem}
    \noindent\leftskip=2cm\rightskip=2cm\small
}{\end{problem}}
\captionsetup[problem]{font=small,labelfont=bf,width=\dimexpr\linewidth-4cm}%


% \usepackage{showframe}
% \renewcommand*\ShowFrameLinethickness{0.2pt}
% \renewcommand*\ShowFrameColor{\color{blue}}

\title{The Title}
\author{First Last}
\date{}


\begin{document}
\maketitle
\listof{problem}{List of Problems}

\chapter{First one}
First paragraph.
\kant[1]

\begin{ProblemSolution}
  \paragraph{Problem:}
  Some notes about a problem that should be a little longer and span multiple lines.

  \begin{center}
    \includegraphics[width=0.5\linewidth,height=0.25\linewidth]{example-image-a}
    \caption{Caption about the first problem}
  \end{center}

  \paragraph{Solution:}
  Something about solution.
\end{ProblemSolution}

Second paragraph.
\kant[2]

Third paragraph.
\kant[3]

Fourth paragraph.
\kant[4]

\begin{ProblemSolution}
  \paragraph{Problem:}
  Some notes about a problem that should be a little longer and span multiple lines.

  \begin{center}
    \includegraphics[width=0.5\linewidth,height=0.25\linewidth]{example-image-b}
    \caption{Caption about the second problem}
  \end{center}

  \paragraph{Solution:}
  Something about solution.
\end{ProblemSolution}


\chapter{Second two}
Fifth paragraph.
\kant[5-6]

\begin{ProblemSolution}
  \paragraph{Problem:}
  Some notes about a problem that should be a little longer and span multiple lines.

  \begin{center}
    \includegraphics[width=0.5\linewidth,height=0.25\linewidth]{example-image-c}
    \caption{Caption about the third problem}
  \end{center}

  \paragraph{Solution:}
  Something about solution.
\end{ProblemSolution}

Sixth paragraph.
\kant[7]
\end{document}

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

関連情報