表格中最后一列左对齐出现问题(数组,旋转)

表格中最后一列左对齐出现问题(数组,旋转)

我会简短地说。我有这张表:

\documentclass[]{article}
\usepackage{array,rotating}
\begin{document}
\begin{sidewaystable}
\raggedright
\caption{This is my caption.}
\scalebox{.85}[.85]{ 
\begin{tabular}[width=\textwidth]{>{\raggedright}p{4cm}>{\raggedright}p{3cm}ccccc>{\centering}p{3cm}p{3cm}}
\hline
Column 1 & Column 2 & Column 3 & Column 4 & Column 5 & Column 6 & Column 7 & Column 8 with long title & Column 9 \\
\hline
Lorem & ipsum & dolor & sit & amet, & consectetuer & adipiscing & elit & Duis tellus. Donec ante dolor, iaculis nec... \\
\hline
\end{tabular}}
\end{sidewaystable}
\end{document}

表格1

我希望最后一列左对齐,但将tabular规范更改为{>{\raggedright}p{4cm}>{\raggedright}p{3cm}ccccc>{\centering}p{3cm}>{\raggedright}p{3cm}}导致混乱:

桌子太差了!

到底发生了什么事?我该如何解决?提前致谢。

答案1

您对左对齐单元格的定义是错误的。相反,它尝试将新列类型定义为:

\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}

而不是>{\raggedright}p{3cm}使用P{3cm}。如您所见,错误在于缺少\arraybackslash

代码基本部分的片段:

\documentclass[]{article}
\usepackage{array,rotating}

\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}

\begin{document}
\begin{sidewaystable}
\raggedright
\caption{This is my caption.}
\scalebox{.85}[.85]{
\begin{tabular}{P{4cm}P{3cm}ccccc>{\centering}p{3cm}P{3cm}}
...

附录: 来自 TeX FAQ:问题是该命令\\在不同情况下有不同的含义:tabular环境将含义切换为表格中使用的值,而\centering\raggedright\raggedleft将含义更改为不兼容的内容。请注意,问题只出现在行的最后一个单元格中。...\tabularnewline\arraybackslash命令分别是 LaTeX 和数组包的(某种程度上)现代附加功能。

因此,将\arraybackslash的定义重置为 的命令实际上只在最后一列中才需要。因此,在这种情况下,在倒数第二列中使用不会导致错误,而在前两列中使用则表明,在其他列中使用不会造成任何损害。当然,为了保持一致性,在这种情况下最好这样写:\\\tabularnewline>{\centering}p{3cm}P{...}

\begin{tabular}{P{4cm}P{3cm}cccP{3cm}P{3cm}}

相关内容