如何將圖像水平放置在逐字測試旁邊,並通過頂部邊框對齊?

如何將圖像水平放置在逐字測試旁邊,並通過頂部邊框對齊?

我試圖將圖像(用邊框裝飾)和逐字文字水平放置在一起。它們必須與頂部邊框對齊,並在它們之間留有一些空間。我正在這樣做:

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

編輯。新增到的
範例(請參閱下面的完整程式碼)。yshiftbaseline

此外,如果您想將群組居中,請新增額外的程式碼

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

相關內容