我正在尝试将一张图片(用边框装饰)和一段逐字文本水平并排放置。它们必须通过顶部边框对齐,并且它们之间有一定的空间。我正在这样做:
\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}
编辑。添加到的
示例(请参阅下面的完整代码)。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}