Как поднять рисунок (размещенный с помощью wrapfig) так, чтобы он был вровень с верхом абзаца?

Как поднять рисунок (размещенный с помощью wrapfig) так, чтобы он был вровень с верхом абзаца?

Я использую wrapfigпакет для размещения фигуры с текстом, обёрнутым вокруг неё. Вот минимальный пример со снимком экрана соответствующей части вывода ниже:

\documentclass{book}

\usepackage{graphicx}
\usepackage{wrapfig}

\begin{document}

\begin{center}
\textbf{\Large Lorem ipsum}
\end{center}
\vspace{18pt}

\begin{wrapfigure}[15]{r}{0in}
\includegraphics[width=0.4\textwidth]{TestImage.jpg}
\end{wrapfigure}

Lorem ipsum ... ridiculus mus.

\end{document}

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

Глядя на этот вывод, мне не нравится, как рисунок расположен немного ниже верха первого абзаца. Какое минимальное решение для поднятия рисунка так, чтобы верхний край изображения был вровень с верхом этого абзаца?

Несколько пояснительных замечаний: мне не нужно решение для автоматического нахождения верхней части абзаца — если я могу просто поднять изображение на введенную вручную длину, это нормально. Кроме того, меня устраивает ручная настройка для каждого изображения; нет необходимости вносить изменения во все такие изображения, если это неудобно.

решение1

Вы можете установить \intextsep:

\documentclass{book}

\usepackage{graphicx}
\usepackage{wrapfig}
\setlength\intextsep{0pt}
\begin{document}

\begin{center}
\textbf{\Large Lorem ipsum}
\end{center}
\vspace{18pt}

\begin{wrapfigure}[15]{r}{0in}
\includegraphics[width=0.4\textwidth]{example-image-duck}
\end{wrapfigure}

Lorem ipsum ... ridiculus mus.

\end{document}

Более ручная альтернатива — обрезать графику. Регулируя значение, вы можете перемещать графику вверх и вниз:

\documentclass{book}

\usepackage{graphicx}
\usepackage{wrapfig}
\begin{document}

\begin{center}
\textbf{\Large Lorem ipsum}
\end{center}
\vspace{18pt}

\begin{wrapfigure}[15]{r}{0in}
\includegraphics[width=0.4\textwidth,trim=0pt 0pt 0pt 30pt]{example-image-duck}
\end{wrapfigure}

Lorem ipsum ... ridiculus mus.

\end{document}

решение2

Поскольку вы не добавляете заголовок, проще использовать \InsertBoxRкоманду из простого пакета макросов TeX insbox. Эта команда принимает 2 обязательных аргумента: количество строк, которые остаются нетронутыми перед вставкой объекта, и сам объект, и 1 необязательный аргумент – количество дополнительных строк dhorter, на случай, если TeX неправильно рассчитает количество строк, которые необходимо сократить.

В следующем коде изображение ровноевышепервая строка (используя отрицательный 1-й аргумент), и я использовал отрицательный необязательный аргумент, поэтому под изображением нет пустого места.

\documentclass{book}

\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage[svgnames]{xcolor}
\usepackage{lipsum}
\input{insbox}
\makeatletter\@InsertBoxMargin =3mm\makeatother

\begin{document}

\begin{center}
\textbf{\Large Lorem ipsum}
\end{center}
\vspace{18pt}

\InsertBoxR{-1}{{\color{YellowGreen}\rule{0.35\textwidth}{0.3\textheight}}}[-2]
\lipsum

\end{document} 

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

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