Вертикальное выравнивание мини-страниц, расположенных рядом

Вертикальное выравнивание мини-страниц, расположенных рядом

Я хочу создать текст, который будет располагаться слева от изображения. Мой код Latex:

\begin{minipage}{.6\linewidth}
\lipsum[1]
\end{minipage}
\hspace{0.02\linewidth}
\begin{minipage}{.3\linewidth}
\includegraphics[width=\linewidth]{test.png}
\end{minipage}

Это дает мне следующий результат:

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

Однако я хочу, чтобы верх текста был выровнен с верхом картинки. Поэтому я попробовал использовать аргумент [t]с мини-страницей:

\begin{minipage}[t]{.6\linewidth}
\lipsum[1]
\end{minipage}
\hspace{0.02\linewidth}
\begin{minipage}[t]{.3\linewidth}
\includegraphics[width=\linewidth]{test.png}
\end{minipage}

Однако это дало следующий результат:

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

Что мне нужно сделать, чтобы получить желаемое вертикальное выравнивание?

решение1

Причина в том, что [t]средства выравнивают minipageс первой (верхней) базовой линией. Базовая линия для изображения находится под изображением, которое идеально выровнено с первой базовой линией текста. Я вижу два способа исправить это.

Добавьте строку вперед и удалите вертикальный пробел.

\begin{minipage}[t]{.6\linewidth}
  \lipsum[1]
\end{minipage}
\hspace{0.02\linewidth}
\begin{minipage}[t]{.3\linewidth}
  \strut\vspace*{-\baselineskip}\newline\includegraphics[width=\linewidth]{example-image}
\end{minipage}

Опустите изображение со всеми строками, кроме одной.

\begin{minipage}[t]{.6\linewidth}
  \lipsum[1]
\end{minipage}
\hspace{0.02\linewidth}
\begin{minipage}[t]{.3\linewidth}
  \raisebox{-\height+0.7\baselineskip}{\includegraphics[width=\linewidth]{example-image}}
\end{minipage}

Оба дают:

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

решение2

Вам на самом деле не нужна мини-страница вокруг изображения.

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

\documentclass{article}
\usepackage{lipsum}
\usepackage[export]{adjustbox}
\usepackage{graphicx}
\begin{document}

\begin{minipage}[t]{.6\linewidth}
\lipsum[1]
\end{minipage}\hfill
\includegraphics[width=.3\linewidth,valign=t]{example-image}
\end{document}

Если вы хотите разместить две мини-страницы на одной строке, лучше не использовать приблизительные интервалы, такие как

\begin{minipage}{.6\linewidth}
\lipsum[1]
\end{minipage}
\hspace{0.02\linewidth}
\begin{minipage}{.3\linewidth}

который помещает блоки шириной .9\textwidthс a \parindentслева и одним пробелом между словами, пробелом шириной 0.02\linewidthи еще одним пробелом между словами. Это может или не может быть в сумме единицей, \textwidthпросто в зависимости от растяжения и сжатия двух пробелов между словами. Лучше использовать

\end{minipage}\hfill
\begin{minipage}

так как тогда между двумя коробками останется только одно эластичное пространство.

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