如果前两列在中心,则居中对齐,并且文本在垂直中间对齐 latex

如果前两列在中心,则居中对齐,并且文本在垂直中间对齐 latex

我在前三列中遇到了对齐问题。我想在列的中心对齐,也希望在行的中心对齐。我使用 excel 插件生成了一个 latex 表,但它相当复杂。请给我推荐一些简单的代码,我将在其中用一列完成第一行,然后转到另一行。我还想在行之间留一点间隙。

代码

    \begin{table*}[htbp]
  \centering
  \caption{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
    \begin{tabular}{p{8.855em}rp{13.785em}p{25.5em}c}
    \toprule
    \toprule
    \rowcolor[rgb]{ .929,  .929,  .929} \multicolumn{1}{c}{\textbf{XXXXXX}} & \multicolumn{1}{c}{\textbf{XXXX }} & \multicolumn{1}{c}{\textbf{XXXXXXX}} & \multicolumn{1}{c}{\textbf{MXXXXXX}} & \multicolumn{1}{c}{\textbf{\#XXXXXX}} \\
    \midrule
    \midrule
    \rowcolor[rgb]{ .929,  .929,  .929} XXXXXXXXXXXXXXXXXXXXXXXX & \multicolumn{1}{c}{[17]} & XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & 237 \\
    \rowcolor[rgb]{ .929,  .929,  .929} XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & \multicolumn{1}{c}{[18]} & XXXXXXXXXXXXXXXXXXXXXXXX & XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  & 42 \\
    \rowcolor[rgb]{ .929,  .929,  .929} XXXXXXXXXXXXXXXXXXXXXx & \multicolumn{1}{c}{[19]} & IXXXXXXXXXXXXXXX,\newline{}2018 & XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & 34 \\
    \rowcolor[rgb]{ .929,  .929,  .929} XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX & \multicolumn{1}{c}{[20]} & JXXXXXXXXXXXXX & FXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & 44 \\
    \rowcolor[rgb]{ .929,  .929,  .929} \textbf{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} &       & \textbf{XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx} & \textbf{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} & \textbf{-} \\
    \bottomrule
    \bottomrule
    \end{tabular}%
  \label{tab:addlabel}%
\end{table*}%

答案1

编辑: 表格中的文本根据 OP 的要求被包生成的虚拟文本所替换lipsum

我还利用这个请求在表格设计中引入了一些小的改进(根据我的喜好):

  • 现在使用表格tabularx环境。使用它时表格的宽度等于文本宽度。
  • 由于包cellspace覆盖了列单元格内容的自动拆分X,因此在序言中添加了命令\addparagraphcolumntypes{X}

您可能喜欢重新设计的表格。在此,我遵循了在精美指南中给出的大多数建议,如何设置漂亮的桌子. 至少在这张表中代码要短得多:

\documentclass[twocolumn]{article}

\usepackage[table]{xcolor}
\usepackage{ragged2e}
\usepackage{boldline}% part of shipunov bundle
\usepackage{cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\renewcommand\theadgape{\bfseries}

\renewcommand\theadgape{\bfseries}

\usepackage{lipsum}

\begin{document}
    \begin{table*}[htbp]
    \centering
\caption{\lipsum[66]}
    \label{tab:addlabel}%
    \setlength\tabcolsep{2pt}
\begin{tabularx}{\linewidth}{
                >{\centering\columncolor{gray!30}} S{X}
                >{\columncolor{gray!30}}r
                >{\centering\columncolor{gray!30}} S{X}
                >{\RaggedRight\columncolor{gray!30}}p{21em}
                >{\columncolor{gray!30}}c
                            }
    \hlineB{2}
\thead{text}
    &   \thead{text}
        &   \thead{text}
            &   \thead{text text}
                &   \thead{text}     \\
    \hlineB{1.5}
text text text text
    &   [17]
        &   \lipsum[1][1]
            &   \lipsum[1][2-3]
                &   237                 \\
\lipsum[1][4]
    &   [18]
        & \lipsum[1][5]
            &   \lipsum[1][6]
                &   42                  \\
\textbf{\lipsum[2][2]}
    &   &   \textbf{text text}
            &   \textbf{\lipsum[2][4]}
                &   \textbf{-}          \\
    \hlineB{2}
\end{tabularx}
    \end{table*}%
\end{document}

在此处输入图片描述

如果您还希望表格中的文本垂直居中,那么您需要用 替换列说明符,p{...}并将m{...}命令添加\renewcommand\tabularxcolumn[1]{m{#1}}到文档前言中(如果您希望所有表格都以这种方式设计)或表格前言中(之前)\begin{tabularx}。结果是:

在此处输入图片描述

相关内容