这是我的代码:
\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 发布的解决方法。确实,该解决方法比我之前的代码更轻量。它运行完美,谢谢!
因为我急着完成我的工作所以我没有尝试其他提出的解决方案。
我将此问题标记为已解决。
此致,
泽维尔。