我怎样才能使这些数字居中对齐?

我怎样才能使这些数字居中对齐?

我怎样才能使这些数字在行中居中对齐?
另外,如果您发现更好的改进方法,请提出建议。
(我还想知道垂直线是否好看,或者我是否应该将其删除)

编辑:很抱歉,我没有清楚地提到该论文是双列格式,但表格是在两列合并而不是一列上扩展的。

在此处输入图片描述

\documentclass[journal]{IEEEtran}
\usepackage{amsmath,amsfonts}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{array}
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
%\usepackage{textcomp}
\usepackage{stfloats}
\usepackage{url}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage{cite}
\usepackage{booktabs,capt-of}
\usepackage{newtxtext, newtxmath}
\usepackage{array}
\usepackage{parskip}
\usepackage{mathtools}

\begin{document}

 \begin{table*}[!t]
  \centering
  \caption{}
  \label{}
  \begin{tabular}{c|c|c|c}
                            \toprule
\textbf{No} &\textbf{C1}  &\textbf{C3}&\textbf{C4} \\\midrule
1    & \begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{example-image-a}

  \label{fig:first}
\end{minipage}%
\hfill % maximize the horizontal separation
&\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{example-image-b}

  \label{fig:second}
\end{minipage}%
\hfill
&\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{example-image-c}

  \label{fig:third}
\end{minipage}\\\midrule

2    & \begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{example-image-a}

  \label{fig:first}
\end{minipage}%
\hfill % maximize the horizontal separation
&\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{example-image-b}

  \label{fig:second}
\end{minipage}%
\hfill
&\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{example-image-c}

  \label{fig:third}
\end{minipage}\\\midrule
\end{tabular}

\end{table*} 

\end{document}

答案1

您想删除[t],但有一种更简单的方法可以使用adjustbox

\documentclass[journal]{IEEEtran}
\usepackage{amsmath,amsfonts}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{array}
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
%\usepackage{textcomp}
\usepackage{stfloats}
\usepackage{url}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage{cite}
\usepackage{booktabs,capt-of}
\usepackage{newtxtext, newtxmath}
\usepackage{array}
\usepackage{parskip}
\usepackage{mathtools}

\begin{document}


\begin{table*}
\centering
\caption{A caption}
\label{label}

% local settings for the particular table
\setlength{\tabcolsep}{0pt}% let TeX compute the horizontal space
\setlength{\aboverulesep}{\belowrulesep}
%%%

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}cccc}
\toprule
\textbf{No} &\textbf{C1}  &\textbf{C3}&\textbf{C4} \\\midrule
1
& \includegraphics[valign=c,width=0.3\textwidth]{example-image-a}
& \includegraphics[valign=c,width=0.3\textwidth]{example-image-b}
& \includegraphics[valign=c,width=0.3\textwidth]{example-image-c}
\\
%\addlinespace
\midrule
2
& \includegraphics[valign=c,width=0.3\textwidth]{example-image-a}
& \includegraphics[valign=c,width=0.3\textwidth]{example-image-b}
& \includegraphics[valign=c,width=0.3\textwidth]{example-image-c}
\\
\bottomrule
\end{tabular*}

\end{table*} 

\end{document}

请注意,\label您里面的命令minipage除了引用相同的标题外,基本上什么也不做。最好只是一个全局命令。而且这些\hfill命令什么也不做。

顺便说一句,表格中的垂直规则很糟糕。

在此处输入图片描述

答案2

我有时会使用以下宏\raisebox{}[][]{}

\raisebox{-0.5\totalheight}[0.5\totalheight][0.5\totalheight]{<image>}

在此处输入图片描述

但对于小图像可能需要进行一些调整。

解释。

latex 中的每个对象都在一个盒子,一个不可见的容器,包含图像。每个框都有三个属性:基线、高度(基线上方的垂直空间)和深度(基线下方的垂直空间)。据我所知,图像的基线始终设置在其底部。由于文本的基线也设置在底部,因此您将得到这种不想要的效果。

在上面的宏中,\raisebox{v-len}[new height][new depth]{content}只需重新定义由 latex 创建的默认框,因此宏将每个图像的基线设置为其中心。如果仔细观察图像,您会看到每个图像的中心都在文本的底部;这是两个基线所在的位置。对于非常小的图像,宏可能需要调整。此外,[new height][new depth]不必添加到1\totalheight,更大的因子将增加额外的垂直空间,因为总高度会增加。例如,下面的代码将使图像居中并增加一点垂直空间

\newcommand\RI[1]{\raisebox{-0.48\totalheight}[0.55\totalheight][0.52\totalheight]{#1}}

在此处输入图片描述

\documentclass[journal]{IEEEtran}
% \usepackage{amsmath,amsfonts}
% \usepackage{algorithmic}
% \usepackage{algorithm}
% \usepackage{array}
% \usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
%\usepackage{textcomp}
% \usepackage{stfloats}
% \usepackage{url}
% \usepackage{verbatim}
\usepackage{graphicx}
% \usepackage{cite}
\usepackage{booktabs,capt-of}
% \usepackage{newtxtext, newtxmath}
% \usepackage{array}
% \usepackage{parskip}
% \usepackage{mathtools}

\newcommand\RI[1]{\raisebox{-0.5\totalheight}[0.5\totalheight][0.5\totalheight]{#1}}

\begin{document}

 \begin{table*}[!t]
  \centering
  \caption{}
  \label{}
  \begin{tabular}{c|c|c|c}
                            \toprule
\textbf{No} &\textbf{C1}  &\textbf{C3}&\textbf{C4} \\\midrule
1    & \begin{minipage}[t]{0.3\textwidth}
  \RI{\includegraphics[width=\linewidth]{example-image-a}}

  \label{fig:first}
\end{minipage}%
\hfill % maximize the horizontal separation
&\begin{minipage}[t]{0.3\textwidth}
  \RI{\includegraphics[width=\linewidth]{example-image-b}}

  \label{fig:second}
\end{minipage}%
\hfill
&\begin{minipage}[t]{0.3\textwidth}
  \RI{\includegraphics[width=\linewidth]{example-image-c}}

  \label{fig:third}
\end{minipage}\\\midrule

2    & \begin{minipage}[t]{0.3\textwidth}
  \RI{\includegraphics[width=\linewidth]{example-image-a}}

  \label{fig:first}
\end{minipage}%
\hfill % maximize the horizontal separation
&\begin{minipage}[t]{0.3\textwidth}
  \RI{\includegraphics[width=\linewidth]{example-image-b}}

  \label{fig:second}
\end{minipage}%
\hfill
&\begin{minipage}[t]{0.3\textwidth}
  \RI{\includegraphics[width=\linewidth]{example-image-c}}

  \label{fig:third}
\end{minipage}\\\midrule
\end{tabular}

\end{table*} 

\end{document}

答案3

使用tabularray(for X[c,m]columns) 和 adjustbox(for valignand \adjincludegraphics) 包,代码简短而简单:

\documentclass[journal]{IEEEtran}
\usepackage{newtxtext, newtxmath}
\usepackage[export]{adjustbox}   % it load graphicx too
\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}
    \begin{table*}[!t]
\caption{Table with images}
\label{tab:image}
    \adjustboxset{width=\linewidth, valign=M}  
\begin{tblr}{hlines, vlines,
             colsep=3pt,
             colspec= {c *{3}{X[c,m]} },
             row{1} = {font=\bfseries},
             rowsep = 3pt,
             }
No  &   C1  &   C3  &   C4  \\  
1   & \adjincludegraphics{example-image-a}
            & \adjincludegraphics{example-image-b}
                    & \adjincludegraphics{example-image-c}  \\
2   & \adjincludegraphics{example-image-a}
            & \adjincludegraphics{example-image-b}
                    & \adjincludegraphics{example-image-c}
\end{tblr}
    \end{table*}
\end{document}
  • 通过valign可以移动图像的基线。使用 选项M(或v),您可以将基线移动到图像的垂直中心。
  • 水平列X[c,m]c选项)和垂直列(m选项)将其内容居中。
  • 使用\adjincludegraphics指令可以设置图像选项的常用选项:valign=M,和width=\linewidth。-由于通过valign将图像移动到基线到垂直中心,现在所有单元格的内容都垂直居中。

在此处输入图片描述

相关内容