Как поместить рисунок в нужное нам положение в документе LaTeX?

Как поместить рисунок в нужное нам положение в документе LaTeX?

Для новой книги, над которой я работаю и которая находится на заключительном этапе отправки, издатель попросил нас разместить рисунки в примерах, как только они начинаются. Например, если я включаю рисунок как часть задачи, издатель хотел бы, чтобы рисунок появился, как только задача закончится и начнется решение. К сожалению, рисунок появляется на следующей странице в выходном файле (PDF), и я не знаю, как это сделать. Мой вопрос: как разместить рисунок в нужном месте в документе LaTeX? Можно ли этого добиться с помощью какого-либо специального пакета? Спасибо за большую помощь!

решение1

Не используйте float, так как float сообщает LaTeX о необходимости переместить содержимое в «лучшее положение». Вместо этого используйте \captionofиз пакета capt-ofили captionи centerсреду или что-то подобное для компенсации потери figureвертикального интервала. Пример демонстрирует, что это отлично работает, генерируя список рисунков, но сейчас я не могу сделать приличные изображения из-за ошибки Okular-on-X.

\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

Можно ли этого добиться с помощью какого-либо специального пакета?

Итак, если я правильно понял вопрос,Издательхочет сохранить все три элемента вместе в этом порядке: проблема, изображение и решение. Мне не ясно, должен ли весь блок отображаться в PDF какплаватьили размещаться точно так, как запрашивается в текстах, между определенными абзацами. Здесь я предположил первое, то есть ProblemSolutionfloat. Это означает, что LaTeX будет размещать блоки проблем-решений точно так же, как изображения внутри figureсреды, как float, однако все три элемента всегда будут сгруппированы вместе.

Вы могли бы достичь своей цели, просто разместив все в figureокружающей среде. Однако,плаватьpackage здесь очень удобен из-за нескольких дополнений (см. пример ниже). Например, \captionбудет использоваться пользовательская метка, вы можете создать список пользовательских поплавков, вы можете стилизовать поплавок и т. д. Самый важный макрос — это \newfloat. Он создает пользовательскую среду, затем все внутри будет перемещаться точно так же, как и другие стандартные поплавки.

В примере обратите внимание, где именно ProblemsSolutionсреды размещены в тексте и где они появляются в PDF. Например, первыйПроблемапомещается после первого абзаца, но он появляется в верхней части следующей страницы в PDF, потому что LaTeX не находит достаточно места. Второй и третий ProblemSolutionпоявляются в PDF какзапрошенопотому что теперь для них достаточно места. Во всех трех случаях все по-прежнему сгруппировано вместе.

Пример:

\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}

введите описание изображения здесь

Связанный контент