
Я пытаюсь расположить изображение (украшенное рамкой) и дословный текст горизонтально рядом друг с другом. Они должны быть выровнены по верхней рамке и иметь некоторое пространство между ними. Я делаю так:
\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}