Wie positioniere ich ein Bild horizontal neben einem Worttest, wobei beide am oberen Rand ausgerichtet sind?

Wie positioniere ich ein Bild horizontal neben einem Worttest, wobei beide am oberen Rand ausgerichtet sind?

Ich versuche, ein Bild (mit einem Rahmen versehen) und einen wörtlichen Text horizontal nebeneinander zu positionieren. Sie müssen am oberen Rand ausgerichtet sein und etwas Platz zwischen ihnen haben. Ich mache das so:

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

Sie werden jedoch nicht am oberen Rand ausgerichtet.

Antwort1

Sie müssen die Grundlinien beider Elemente ändern.

Eine Grundlinie eines Bildes befindet sich standardmäßig unten, aber tikzes besteht die Möglichkeit, entweder die Grundlinie seines Begrenzungsrahmens oder eines beliebigen Knotens zu ändern/verschieben. Im Beispiel verschiebe ich die Grundlinie zu einem oberen Anker des einzigen Knotens. Aus diesem Grund verwende ich einen zusätzlichen Namen A. Das Ändern der Grundlinie eines Bildes ist nur eine Teillösung.

Die obere Ausrichtung eines minipage [t]mehrzeiligen Textes wird auf die Grundlinie der ersten Zeile gesetzt. Dies ist normalerweise der Fall, aber hier möchten Sie, dass die Grundlinie an der oberen Kante des Textes liegt minipage, also \vspace{0pt}an einem zusätzlichen Anker oben.

Übrigens konnte ich Ihren Code nicht mit kompilieren VerbatimInput{...}, also habe ich ihn kommentiert.

Bildbeschreibung hier eingeben

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

BEARBEITEN.
Beispiel mit yshifthinzugefügt baseline(siehe den vollständigen Code unten).

Wenn Sie die Gruppe zusätzlich zentrieren möchten, fügen Sie einen zusätzlichen Code hinzu

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

Andernfalls möchten Sie möglicherweise \noindentvor einfügen \tikz, um die Einrückung zu entfernen, es sei denn, Ihre Dokumentklasse definiert Absätze ohne Einrückungen.

Der vollständige Code:

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

verwandte Informationen