我正在尝试制作一个有点复杂的表格。我将尝试使用来自 Word 的表格图片来解释我想要什么:
我是 Latex 的新手,所以我有两个问题。我怎样才能让这样的表格看起来好看?其次 - 我如何在 LaTex 中制作它?我尝试了以下方法:
\begin{table}[hbr]
\caption{Description}
\label{tbl:hexhcomp}
\centering
\noindent
\def\arraystretch{1.2}
\begin{tabular}[c]{|l || c| c| c| c| c| c| c| c|}
\cline{2-7}
\multicolumn{1}{c|}{} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Thermal\\wheel}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Energy\\wheel}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Fixed\\matrix}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Plate}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Tube}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Run-around}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Heat- pipe}}} &
\parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Membrane}}} \\[15pt]
\hline
\hline
\parbox[t]{3cm}{\raggedright{Sensible efficiency}} & N & N & N & Y & Y & Y & Y & Y \\[15pt]
\hline
\parbox[t]{3cm}{\raggedright{Latent efficiency}} & N & N & N & N & Y & Y & Y & Y \\[15pt]
\hline
\end{tabular}
\end{table}
有没有更简单或更优雅的方法来实现这一点?
答案1
% arara: pdflatex
\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{booktabs}
\usepackage{array}
\newcommand*\rotbf[1]{\rotatebox{90}{\textbf{#1}}}
\newcommand{\specialcell}[2][c]{\begin{tabular}[#1]{@{}l@{}}#2\end{tabular}}
\begin{document}
\begin{table}
\caption{Description}
\label{tbl:hexhcomp}
\centering
\begin{tabular}{l *{8}c}
\toprule
& \rotbf{\specialcell{Thermal\\wheel}}
& \rotbf{\specialcell{Energy\\wheel}}
& \rotbf{\specialcell{Fixed\\matrix}}
& \rotbf{Plate}
& \rotbf{Tube}
& \rotbf{\specialcell{Run-\\around}}
& \rotbf{Heat-pipe}
& \rotbf{Membrane} \\
\midrule
\specialcell{Sensible\\efficiency} & N & N & N & Y & Y & Y & Y & Y \\
\specialcell{Latent\\efficiency} & N & N & N & N & Y & Y & Y & Y \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
如果您认为可读性会受到影响,您可以始终添加\midrule
或\addlinespace[...]
。您应该在最后执行此操作,以便看到完整的画面。
答案2
比 booktabs 答案更接近您原始的布局,但使用更简单的标记。
\documentclass{article}
\usepackage{graphicx,array}
\begin{document}
\begin{table}[hbtp]% there is no r, always best to include p
\caption{Description}
\label{tbl:hexhcomp}
\centering
\noindent
\def\arraystretch{3}
\newcommand\rothd[1]{\makebox[20pt]{%
\rotatebox{90}{\def\arraystretch{1}\bfseries\begin{tabular}{@{}l@{}}#1\end{tabular} }}}
\begin{tabular}%[c] no need for [c] it's the default anyway
{|
>{\raggedright}p{3cm}% instead of l
|| c| c| c| c| c| c| c| c|}
\hline
% not needed \multicolumn{1}{c|}{}
&
% \parbox[t]{0.8cm}{\rotatebox[origin=c]{90}{\textbf{Thermal\\wheel}}} &
\rothd{Thermal\\wheel}&
\rothd{Energy\\wheel} &
\rothd{Fixed\\matrix}&
\rothd{Plate} &
\rothd{Tube} &
\rothd{Run-\\around} &
\rothd{Heat-pipe} &
\rothd{Membrane}
\\
\hline
\hline
Sensible efficiency & N & N & N & Y & Y & Y & Y & Y \\
\hline
Latent efficiency & N & N & N & N & Y & Y & Y & Y \\
\hline
\end{tabular}
\end{table}
\end{document}