
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 tikz
es 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.
\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 yshift
hinzugefü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 \noindent
vor 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}