我已经尝试了几个小时来实现以下外观但tabularx
没有成功:
- 第 1 列:垂直顶部对齐,水平右侧对齐。
- 第 2 列:垂直顶部对齐,水平左侧对齐。
- 第 3 列:垂直顶部对齐,水平左对齐,扩大宽度(例如
X
)。 - 第 4、5、6 列:垂直对齐底部,水平对齐右侧
我设法让最后三列相对于“长文本”列垂直对齐在底部,但这对前两列产生了不良影响,现在它们也垂直对齐在底部。我怎样才能将前两列垂直对齐在顶部,同时保持其他列不变?
表格来源:
\begin{table}
\renewcommand{\tabularxcolumn}[1]{b{#1}}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{0.9cm}}
\begin{tabularx}{\textwidth}[ht]{|r|p{2.7cm}|X|R|R|R|}
\hline
\textbf{\texttt \#} &
\textbf{Info} &
\textbf{Long Text} &
{\raggedright \bfseries Col 1 \\(foo.)} &
{\raggedright \bfseries Col 2 \\(bar.)} &
{\raggedright \bfseries Col 3 \\(baz.)}
\\ \hline
1 & \raggedright One, \newline thing & \lipsum*[1] &
1.11 &
2.22 &
3.33 \\ \hline
2 & \raggedright Some, \newline Thing & \lipsum*[1] &
1.55 &
3.66 &
6.99 \\ \hline
\end{tabularx}
\caption{XXX}
\label{tab:xxx}
\end{table}
表外观:
红色箭头显示单元格内容应如何移动才能达到所需的结果。
更新:明确了期望的结果。
答案1
我建议使用这个肮脏的技巧:\multirow{-n}
在前两列中使用。n
大约是下一个单元格中行数的两倍X
。
\documentclass[10pt]{article}
\usepackage{geometry}
\usepackage{tabularx, makecell, multirow}
\usepackage{lipsum}
\begin{document}
\begin{table}
\renewcommand{\tabularxcolumn}[1]{b{#1}}
\newcolumntype{R}{>{\raggedleft\arraybackslash}b{1cm}}
\begin{tabularx}{\textwidth}[ht]{|r|p{2.7cm}|X|R|R|R|}
\hline
\textbf{\texttt \#} &
\textbf{Info} &
\textbf{Long Text} &
{\raggedright \bfseries Col 1 \\(foo.)} &
{\raggedright \bfseries Col 2 \\(bar.)} &
{\raggedright \bfseries Col 3 \\(baz.)}
\\ \hline
\multirowcell{-41}{1 }& \multirow{-40}{=}{One, \\ thing} & \lipsum*[1] &
1.11 &
2.22 &
3.33 \\ \hline
\multirowcell{-41}{2} & \multirow{-40}{=}{Some, \\ Thing} & \lipsum*[1] &
1.55 &
3.66 &
6.99 \\ \hline
\end{tabularx}
\caption{XXX}
\label{tab:xxx}
\end{table}
\end{document}
答案2
我将使用一个简单的表定义,将每一行分成两行,然后用 向上移动第二行\\[...]
。
\documentclass[10pt]{article}
\usepackage{geometry}
\usepackage{tabularx, makecell, multirow}
\usepackage{array}
\renewcommand{\arraystretch}{1.3}
\usepackage{lipsum}
\begin{document}
\begin{table}\centering
\begin{tabular}{|p{.6em}|p{2.7em}|p{23em}|c|c|c|}
\hline
\textbf{\texttt \#} & \textbf{Info} & \textbf{Long Text} & \textbf{Col 1} &
\textbf{Col 2} & \textbf{Col 3}\\[-4pt]
& & & \textbf{(foo.)} & \textbf{(bar.)} & \textbf{(baz.)}\\
\hline
1& One, thing & \lipsum*[1] & & & \\[-3.5ex]
\multicolumn{1}{c}{}&\multicolumn{1}{c}{} &\multicolumn{1}{c}{} &
\multicolumn{1}{c}{1.11} &
\multicolumn{1}{c}{2.22} &
\multicolumn{1}{c}{3.33} \\
\hline
2 & Some, Thing & \lipsum*[1] & & & \\[-3.54ex]
\multicolumn{1}{c}{}&\multicolumn{1}{c}{} &\multicolumn{1}{c}{} &
\multicolumn{1}{c}{1.55} &
\multicolumn{1}{c}{3.66} &
\multicolumn{1}{c}{6.99} \\
\hline
\end{tabular}
\caption{XXX}\label{tab:xxx}
\end{table}
\end{document}