縦横にテキストと画像を中央揃えにする

縦横にテキストと画像を中央揃えにする

長い表でテキストと画像を垂直方向と水平方向の両方で中央揃えにしたいのですが、残念ながらうまくいかないようです。例を以下に示します。

\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{array,longtable,ragged2e}
\usepackage{graphicx}
 
\begin{document}
       
\begin{longtable}{| l | c | c |}
    \hline
     & Here is a Text & Here is a Text \\\hline
    Here is a Text & \includegraphics[height=2cm]{img/image.png} & \includegraphics[height=2cm]{img/image.png} \\\hline 
    Here is a Text & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} \\\hline               
\caption{My Caption}
\label{tab:FirstTab}
\end{longtable}
\mbox{}\\    
  
\end{document}

以下の変更も試しましたが、効果はありませんでした。

Here is a Text & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} \\\hline   

答え1

1 つの方法は、パッケージvalignのマクロを使用することですadjusbox

\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{babel}
\usepackage{array,longtable,makecell}
\usepackage[demo,               % in real document delete 'demo'
            export]{adjustbox}  % it load graphicx too

\begin{document}

\begingroup
\setcellgapes{3pt}
\makegapedcells % add vertical space/above/below cell's content
\begin{longtable}{| l | c | c |}
    \hline
     & Here is a Text & Here is a Text \\\hline
    Here is a Text & \includegraphics[height=2cm,valign=c]{img/image.png} & \includegraphics[height=2cm,valign=c]{img/image.png} \\\hline
    Here is a Text & \includegraphics[height=2cm,valign=c]{img/image.png} & \includegraphics[height=2cm,valign=c]{img/image.png} \\\hline
\caption{My Caption}
\label{tab:FirstTab}
\end{longtable}
\endgroup

\end{document}

ここに画像の説明を入力してください

を使用する場合adjustbox、をincludegraphicsに置き換えて\adjustimage、 の設定でセル内の画像の位置を決定します\adjustboxset

\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{babel}
\usepackage{array,longtable}
\usepackage[demo,               % in real document delete 'demo'
            export]{adjustbox}  % it load `graphicx` too

\begin{document}

\begingroup
\adjustboxset{height=20mm,valign=c, margin=0pt 3pt 0pt 3pt} % <---
\begin{longtable}{| l | c | c |}
    \hline
                & Here is a Text                & Here is a Text                \\
    \hline
Here is a Text  & \adjustimage{}{img/image} & \adjustimage{}{img/image} \\
    \hline
Here is a Text  & \adjustimage{}{img/image} & \adjustimage{}{img/image} \\
    \hline
\caption{My Caption}
\label{tab:FirstTab}
\end{longtable}
\endgroup

\end{document}

これは、最初に提案された解決策と同じ結果をもたらします。注記上記の MWE では、グラフィック ファイル拡張子は省略されていますpng。拡張子が異なる同じ画像ファイルが複数存在し、その中から選択した 1 つだけを使用する場合に、これらが必要になります。

関連情報