我在前三列中遇到了对齐问题。我想在列的中心对齐,也希望在行的中心对齐。我使用 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}
。结果是: