tabularx 中第一行内容居中包括连字符

tabularx 中第一行内容居中包括连字符

我想要第一的排成一排tabularx的标题。因此第一行的内容应该是居中大胆的连字

\documentclass{scrartcl}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage{english}

\usepackage{tabularx}

\begin{document}
\begin{tabularx}{4cm}{|X|X|}
    \hline
    \centering\textbf{A}&
    \textbf{B head centered with hyphenation please}\\
    \hline
    a&b\\
    \hline
\end{tabularx}
\end{document}

当我使用centering第二列标题时,我得到了错位对齐错误信息。

我知道使用\multicolumn{1}{c}或 的解决方法\thead。但它们都会停用连字符。

答案1

我建议您ragged2e也加载该包并tabularx通过指令定义一个新的列类型(加载后)

\newcolumntype{C}{>{\Centering\arraybackslash}X}

然后,使用指令

\begin{tabularx}{4cm}{|X|C|}

定义表的结构。

完整的 MWE:

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage{english} % since the MWE is in English...

\usepackage{tabularx,ragged2e}
\newcolumntype{C}{>{\Centering\arraybackslash}X}

\begin{document}
\begin{tabularx}{4cm}{|X|C|}
    \hline
    \centering\textbf{A}&
    \textbf{B head centered with hyphenation please}\\
    \hline
    a&b\\
    \hline
\end{tabularx}
\end{document}

附录解决 OP 的后续评论和澄清:如果只有一个单元格而不是列中的其余条目应该居中,请使用\multicolumn“包装器”覆盖相关单元格的列类型。在下面的代码中,列C类型定义如上,即\newcolumntype{C}{>{\Centering\arraybackslash}X}

...
\begin{tabularx}{4cm}{|X|X|}
\hline
\centering\textbf{A} 
\multicolumn{1}{C|}{\textbf{B head centered with hyphenation please}}\\
\hline
a&b\\
\hline
\end{tabularx}
...

相关内容