如何将表格最后一列的文本左对齐?

如何将表格最后一列的文本左对齐?

这是我的代码:

\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{array}
\usepackage{float}
\usepackage{changepage}

\begin{table}[H]
\begin{adjustwidth}{-2.5cm}{-1.5cm}
\begin{center}
\begin{tabular}{|>{\centering\arraybackslash}m{2.25cm}|>{\centering\arraybackslash}m{3.8cm}|>{\centering\arraybackslash}m{5.5cm}|>{\centering\arraybackslash}m{3.5cm}|>{\centering\arraybackslash}m{2.5cm}|}
    \hline
    \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} \\ \hline
    blabla & \raggedright blabla & \raggedright blabla & \raggedright blabla & {\raggedright}test \\ \hline
    blabla & \raggedright blabla & \raggedright blabla & \raggedright blabla & {\raggedright}test \\ \hline
\end{tabular}
\end{center}
\end{adjustwidth}
\end{table}

编译工作正常,但最后一列的内容没有在左行对齐,而这正是我想要的。

{\raggedright}我在网站上看到,这与最后一个单元格有关。尽管我付出了努力,但我还是没有得到正确的结果。有人能帮我解决这个问题吗?

答案1

您应该将列规范设置为与列中大部分样式相匹配,并\multicolumn根据需要使用 s 或每个单元格的调整来更改偏离此规范的相应单元格。

为此,下面的设置将每列设置为使用\raggedright对齐方式,但只使用 调整标题行\centering。它减轻了代码量,并使内容在呈现上更加清晰。

在此处输入图片描述

\documentclass{article}

\usepackage[landscape]{geometry}% Just for this example
\usepackage{array}

\begin{document}

\begin{tabular}
  {| >{\raggedright}m{2.25cm}
   | >{\raggedright}m{3.8cm}
   | >{\raggedright}m{5.5cm}
   | >{\raggedright}m{3.5cm}
   | >{\raggedright\arraybackslash}m{2.5cm}|}
  \hline
  \centering\textbf{A} & \centering\textbf{B} & \centering\textbf{C} & \centering\textbf{D} & \centering\arraybackslash\textbf{E} \\
  \hline
  blabla & blabla & blabla & blabla & test \\
  \hline
  blabla & blabla & blabla & blabla & test \\
  \hline
\end{tabular}

\end{document}

答案2

我不太确定你到底想要什么以及为什么要把它弄得如此复杂(从我的角度来看)。

在我看来,您想要有 5 行,其中第一行和最后一行与左对齐,其余行与右对齐。

你为什么不制作如下的表格呢:

\begin{table}
\begin{tabular}{l r r r l}
bla & bla & bla & bla & blabla \\ \hline
this is left-aligned & this is right-aligned & this too & and so is this & left-aligned\\
\end{tabular}
\end{table}

其中参数 l 和 r(以及 c)定义相应行的对齐方式:

c - 中心

l——左

r - 右

答案3

让我详细阐述一下上面的评论。借助\thead{...}from 包,makecell解决方案很简单:

\documentclass{article}

\usepackage{geometry}
\usepackage{changepage}
\usepackage{array, makecell}
\renewcommand\theadfont{\normalsize\bfseries}

\begin{document}

\begin{table}[ht]
\begin{adjustwidth}{-2.5cm}{-1.5cm}
\centering
\begin{tabular}
  {| >{\raggedright}m{2.25cm}
   | >{\raggedright}m{3.8cm}
   | >{\raggedright}m{5.5cm}
   | >{\raggedright}m{3.5cm}
   | >{\raggedright\arraybackslash}m{2.5cm}|}
  \hline
  \thead{A} & \thead{B} & \thead{C} & \thead{D} & \thead{E} \\
  \hline
  blabla & blabla & blabla & blabla & test \\
  \hline
  blabla & blabla & blabla & blabla & test \\
  \hline
\end{tabular}
\end{adjustwidth}
\end{table}

\end{document}

在此处输入图片描述

答案4

首先我要感谢大家的快速回答。

没有测试 Michael Schmid 的解决方案,因为结果不是我预期的那样,即仅将内容在第一行和第一列居中,并将其余部分左对齐。

我亲自尝试了 Werner 发布的解决方法。确实,该解决方法比我之前的代码更轻量。它运行完美,谢谢!

因为我急着完成我的工作所以我没有尝试其他提出的解决方案。

我将此问题标记为已解决。

此致,

泽维尔。

相关内容