以表格形式居中排列图像

以表格形式居中排列图像

我有四幅图像的表格阵列,但无法将其居中。我的图像被推向工作表的右边缘。单幅图像的居中看起来不错,所以我猜这个问题是从边缘开始居中的。我如何使我的图像居中看起来赏心悦目。

\begin{center}

\begin{table}[h]
\begin{tabular}{cc}
\textbf{blah}  & \textbf{text} $m=\pi,n=e$  \\
\includegraphics[height=45mm]{liss0.png} &
\includegraphics[height=45mm]{liss1.png} \\ 
\includegraphics[height=45mm]{liss2.png} & 
\includegraphics[height=45mm]{liss3.png} \\
\textbf{text} & text

\end{tabular}
\end{table}
\end{center}

如果我的图像左边距有点偏离,我不会介意。

答案1

绝对没有必要tabular在环境中插入环境table。看起来你正在尝试排版“此处表格”,以便它不能浮动。然后

\begin{center}
\begin{tabular}{@{}cc@{}}
\textbf{blah}  & \textbf{text} $m=\pi,n=e$  \\
\includegraphics[height=45mm]{liss0} &
\includegraphics[height=45mm]{liss1} \\ 
\includegraphics[height=45mm]{liss2} & 
\includegraphics[height=45mm]{liss3} \\
\textbf{text} & text
\end{tabular}
\end{center}

可能就是您所需要的。如果您对让图像粘在页边距中感到满意,请\makebox[0pt]{在前面添加\begin{tabular}}在后面紧接着添加\end{tabular}

但是,如果此对象位于分页符附近,这可能会破坏您的分页。您可以考虑使用浮动table环境和子图或者副标题包。

答案2

这是使用 egreg 提到的包的一个选项subcaption。摘自文档:

加载 subcaption 包后,新的环境 subfigure 和 subtable 可用,它们具有与 minipage 环境相同的(可选和强制)参数。在这些环境中,您可以使用普通的 \caption 命令来排版标题。

例子 (不是来自文档)

\documentclass{article}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}
\begin{figure}
    \begin{subfigure}{0.49\textwidth}
        \centering
        \rule{30pt}{20pt}
        %\includegraphics[height=45mm]{liss0.png}
        \caption{}
    \end{subfigure}
    \begin{subfigure}{0.49\textwidth}
        \centering
        \rule{30pt}{20pt}
        %\includegraphics[height=45mm]{liss1.png}
        \caption{}
    \end{subfigure} \\
    \begin{subfigure}{0.49\textwidth}
        \centering
        \rule{30pt}{20pt}
        %\includegraphics[height=45mm]{liss2.png}
        \caption{}
    \end{subfigure}
    \begin{subfigure}{0.49\textwidth}
        \centering
        \rule{30pt}{20pt}
        %\includegraphics[height=45mm]{liss3.png}
        \caption{}
    \end{subfigure}
    \caption{}
\end{figure}
\end{document}

答案3

请尝试以下操作:

  • 删除\begin{center}\end{center}说明
  • \centering插入指令\begin{tabular}
  • 在最后的“文本”字符串后插入一个\\,并删除之前的空白行\end{tabular}

我注意到第二列的文本标题比第一列的文本标题宽很多;根据图形文件的宽度,这也可能会影响将图像放置在纸张上的视觉效果。

答案4

正如@egreg所建议的(这也是我首先想到的解决方案:)),这里有一个使用的示例subfig

\documentclass{article}

\usepackage{graphicx}
\usepackage{subfig}

\begin{document}
\begin{figure}
    \centering
%%----start of first subfigure----
    \subfloat[Caption of subfigure 1]{%
        \label{fig:volt1cnv}%% label for first subfigure
        \includegraphics[width=0.4\linewidth]{liss0.PNG}}
    \hspace{0.02\linewidth}
%%----start of second subfigure----
    \subfloat[Caption of subfigure 2]{%
        \label{fig:crt1cnv}%% label for second subfigure
        \includegraphics[width=0.4\linewidth]{liss1.PNG}}\\
%%----start of third subfigure----
    \subfloat[Caption of subfigure 3]{%
        \label{fig:volt1cnv}%% label for first subfigure
        \includegraphics[width=0.4\linewidth]{liss2.PNG}}
    \hspace{0.02\linewidth}
%%----start of fourth subfigure----
    \subfloat[Caption of subfigure 4]{%
        \label{fig:crt1cnv}%% label for second subfigure
        \includegraphics[width=0.4\linewidth]{liss3.PNG}}
    \caption{Caption of entire figure}
    \label{fig:vi1cnv}%% label for entire figure
\end{figure}
\end{document}

请注意,子图的标题是可选参数。因此,如果您选择不添加任何子图标题,只需省略该标题即可,如下所示:

\subfloat{%
    \label{fig:crt1cnv}%% label for second subfigure
    \includegraphics[width=0.4\linewidth]{liss3.PNG}}

相关内容