逐語的テストの横に画像を水平に配置し、両方を上端の境界線で揃えるにはどうすればよいでしょうか?

逐語的テストの横に画像を水平に配置し、両方を上端の境界線で揃えるにはどうすればよいでしょうか?

画像(枠線で装飾)と逐語的テキストを水平に並べて配置しようとしています。これらは上部の枠線で揃え、間にいくらかのスペースが必要です。私は次のようにしています:

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

関連情報