
Estou tentando posicionar uma imagem (decorada com uma borda) e um texto literal horizontalmente um ao lado do outro. Eles devem estar alinhados pela borda superior e ter algum espaço entre eles. Eu estou fazendo isto:
\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}
No entanto, eles não estão alinhados pela borda superior.
Responder1
Você tem que alterar as linhas de base de ambos os elementos.
Uma linha de base se uma imagem estiver na parte inferior por padrão, mas tikz
tiver a opção de alterar/mover a linha de base de sua caixa limite ou de qualquer um dos nós. No exemplo, movo a linha de base para uma âncora superior do único nó. É por isso que uso um nome adicional A
. Alterar a linha de base de uma imagem é apenas uma solução parcial.
O alinhamento superior de um minipage
[t]
texto contendo várias linhas é definido como uma linha de base de sua primeira linha. Este é geralmente o caso, mas aqui você gostaria que a linha de base fosse definida na borda superior do minipage
, portanto, \vspace{0pt}
para uma âncora adicional no topo.
Aliás, não consegui compilar seu código VerbatimInput{...}
, então comentei.
\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}
EDITAR.
Exemplo yshift
adicionado ao baseline
(veja o código completo abaixo).
Além disso, se desejar centralizar o grupo, adicione um código adicional
\begingroup
\centering
% tikz and the rest
\par
\endgroup
Caso contrário, você pode querer inserir \noindent
before \tikz
, para remover o recuo, a menos que sua classe de documento defina parágrafos sem recuos.
O código completo:
\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}