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

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

Я пытаюсь расположить изображение (украшенное рамкой) и дословный текст горизонтально рядом друг с другом. Они должны быть выровнены по верхней рамке и иметь некоторое пространство между ними. Я делаю так:

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}
  \tikz \node[draw=gray] {\includegraphics[width=2in]{foo.pdf}};
  \hspace{1em}
  \begin{minipage}[t]{.5\linewidth}\VerbatimInput{foo.tex}\end{minipage}
\end{document}

Однако они не выровнены по верхней границе.

решение1

Вам необходимо изменить базовые линии обоих элементов.

Базовая линия, если изображение по умолчанию находится внизу, но tikzимеет возможность изменить/переместить либо базовую линию своего граничного поля, либо любой из узлов. В этом примере я перемещаю базовую линию на верхний якорь единственного узла. Вот почему я использую дополнительное имя A. Изменение базовой линии изображения является лишь частичным решением.

Верхнее выравнивание minipage [t]многострочного текста, содержащего текст, устанавливается по базовой линии его первой строки. Обычно это так, но здесь вы хотели бы, чтобы базовая линия была установлена ​​по верхнему краю minipage, следовательно, \vspace{0pt}по дополнительной привязке вверху.

Кстати, я не смог скомпилировать ваш код с помощью VerbatimInput{...}, поэтому я его прокомментировал.

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

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage[nopar]{kantlipsum}


\begin{document}
\tikz[baseline=(A.north)] \node (A) [draw=gray] {\includegraphics[width=2in]{example-image}};%
\hspace{1em}%
\begin{minipage}[t]{.45\linewidth}%VerbatimInput{}
  \vspace{0pt}\kant[1][1]
\end{minipage}
\end{document}

EDIT.
Пример с yshiftдобавлением baseline(см. полный код ниже).

Кроме того, если вы хотите центрировать группу, добавьте дополнительный код.

\begingroup
  \centering
  % tikz and the rest
  \par
\endgroup

В противном случае вам может потребоваться вставить \noindentперед \tikz, чтобы удалить отступы, если только ваш класс документа не определяет абзацы без отступов.

Полный код:

\documentclass{acmart}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage[nopar]{kantlipsum}


\begin{document}

\begingroup     % <--- Those are required to centre the group
  \centering    % <---  
  \tikz[baseline={([yshift=-0.7\baselineskip]A.north)}]
    \node (A) [draw=gray]
    {\includegraphics[width=2in]{example-image}};%
  \hspace{1em}%
  \begin{minipage}[t]{.45\linewidth}
    \kant[1][1]
  \end{minipage}
  \par          % <---
\endgroup
\end{document}

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