表内の画像はセルの境界線の上に描画されます

表内の画像はセルの境界線の上に描画されます

次の表があります:

\begin{table}
\centering
\begin{tabular}{ | c | c | }
\hline
\includegraphics[scale=.5]{image1.png} & \includegraphics[scale=.5]{image2.png} \\
\hline
\includegraphics[scale=.5]{image3.png} & \includegraphics[scale=.5]{image4.png} \\
\hline
\end{tabular}
\end{table}

問題は、画像がセルの境界線の上にあり、境界線を隠しているように見えることです。境界線を超えないようにパディングを追加できますか?

答え1

画像を a に含め\fbox{}、その周りにスペースを設定します。ただし、@{}表形式の列で使用します。MWE を参照してください。

\documentclass{article}
\usepackage{graphicx}

% Command just to avoid too much typing in tabular 
\newcommand{\imgtest}{
  \framebox{
   \includegraphics[width=.4\textwidth]{img.jpg}}}

\begin{document}

\setlength{\fboxsep}{20pt}
\setlength{\fboxrule}{0pt}

\begin{table}[ht]
\begin{tabular}{|@{}c@{}|@{}c@{}|}
\hline
\imgtest & \imgtest \\
\hline
\imgtest & \imgtest \\
\hline
\end{tabular}
\end{table}

\setlength{\fboxsep}{10pt}
\setlength{\fboxrule}{2pt}

\begin{table}[ht]
\begin{tabular}{|@{}c@{}|@{}c@{}|}
\imgtest & \imgtest \\
\imgtest & \imgtest \\
\end{tabular}
\end{table}

\end{document}

他の解決策としては、フレームボックスの代わりに各セルにミニページを作成することが考えられます (必要に応じて長さを変更します)。

\begin{minipage}{0.4\textwidth}
\vspace{1mm}
\centering
\includegraphics[scale=.5]{image1.png}
\vspace{1mm}
\end{minipage}

しかし、表に縦線を表示したくない場合は(つまり、{cc}の代わりに{|c|c|})、\\の後で\hline十分かもしれません。

最後に: 数字付きのテーブルではなく、サブ数字付きのフロートを探しているのではないでしょうか。この場合は、パッケージを参照してくださいsubcaption

関連情報