我想将表格的某些单元格(实际上是整个第一行)的内容居中,同时将表格的其余部分左对齐。
它与 一起工作multicolumn
,但在使用时multicolumn
它不会破坏单元格的内容并将所有文本放在一行。
我想知道是否存在一个简单的命令,例如 { \centering
}(我尝试过但没有作用),而无需通过多列进行“绕行”?
\begin{table}[h]
\centering
\label{example}
\noindent\begin{tabular}{>{\raggedright\arraybackslash}m{3cm}|>{\raggedright\arraybackslash}m{3cm}|>{\raggedright\arraybackslash}m{3cm}|}\hline
here I want centering and line breaking &here too &here too \\ \hline
the rest aligned on the left & left1 & left2\\ \hline
3 & 4 & 5 \\ \hline
\end{tabular}
\end{table}
答案1
我不明白您为什么明显不愿意逐个\multicolumn
单元格地覆盖默认列类型。
\documentclass{article}
\usepackage{array} % for "\newcolumntype" directive
%% Argument of 'M' and 'N' col. types: usable col. width, in cm
\newcolumntype{M}[1]{>{\raggedright\arraybackslash}m{#1cm}}
\newcolumntype{N}[1]{>{\centering\arraybackslash}m{#1cm}}
%% Two convenient shortcut macros
\newcommand{\mC}[2]{\multicolumn{1}{ N{#1}|}{#2}}
\newcommand{\mD}[2]{\multicolumn{1}{|N{#1}|}{#2}}
\begin{document}
\begin{table}[h]
\centering
\caption{An example}
\label{tab:example}
\begin{tabular}{|M{3}|M{2.5}|M{3.5}|}
\hline
\mD{3}{here I want centering and line breaking}
& \mC{2.5}{here too}
& \mC{3.5}{here too} \\
\hline
the rest aligned on the left, with line breaking
& left1 & left2\\
\hline
3.0 & 2.5 & 3.5 \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
或者,您可以使用包中的\Centering
、\RaggedLeft
和命令。除其他外,这些命令经过修改,以便它们保留 的当前含义(如果您在环境中则不同),与基本 LaTeX 等效项、、不同。\RaggedRight
ragged2e
\\
tabular
\centering
\raggedleft
\raggedright
\documentclass{article}
\usepackage{array}
\usepackage{ragged2e}
\begin{document}
\begin{table}[h]
\centering
\label{example}
\noindent
\begin{tabular}{|>{\RaggedRight}m{3cm}|>{\RaggedRight}m{3cm}|>{\RaggedRight}m{3cm}|}
\hline
\Centering here I want centering and line breaking & \Centering here too & \Centering here too \\ \hline
the rest aligned on the left & left1 & left2\\ \hline
3 & 4 & 5 \\ \hline
\end{tabular}
\end{table}
\end{document}