将文本置于一列中央

将文本置于一列中央

我怎样才能仅将“coluna 3”居中?我尝试创建新的列类型,但没有成功。

在此处输入图片描述

谢谢

\documentclass{report}

\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage[table,xcdraw]{xcolor}
\usepackage{tabularx,booktabs}
\usepackage{multirow}
\usepackage{geometry}
\geometry{margin=1in}

\begin{document}

\newcolumntype{D}{>{\arraybackslash}X}

\begin{table}[ht!]
\centering
\small
\renewcommand\tabularxcolumn[1]{m{#1}}

\begin{tabularx}{\textwidth}{
    >{\hsize=0.8\hsize}D
    >{\hsize=1.4\hsize}D
    >{\hsize=0.8\hsize}D
  }

\toprule
\textbf{Coluna 1} & \textbf{Coluna 2} & \textbf{coluna 3}\\
\midrule

\multirow{4}{=}{Neque porro quisquam} & Quisque eget augue ac diam egestas facilisis a non sapien. Phasellus nec feugiat ligula & 1 \\
 & Ipsum & 2 \\
 & Dolor & 3 \\
 & Consectetur & 4 \\
\hline

\multirow{3}{=}{Ut aliquam lacus id malesuada sagittis} & Pellentesque & 5 \\
 & Adipiscing & 6 \\
 & Amet & 7 \\

\bottomrule

\end{tabularx}
\caption{Ut aliquam lacus id malesuada sagittis}
\label{tab:locaiseduracao}
\end{table}

\end{document}

答案1

应该\centering>{...},并且,因为它在最后一列,用来\arraybackslash恢复表格含义\\

所以不是

>{\hsize=0.8\hsize}\centering

但反而

>{\hsize=0.8\hsize \centering\arraybackslash}

答案2

可能是 的最新版本出了问题array。解决方法:将 tabularx 前言替换为

\begin{tabularx}{\textwidth}{
    >{\hsize=0.8\hsize}D
    >{\hsize=1.4\hsize}D
    >{ \hsize=0.8\hsize\hfill}D<{\hfill\null}
  }
......

在此处输入图片描述

相关内容