大桌子的问题

大桌子的问题

我正在尝试制作一个有点复杂的表格。我将尝试使用来自 Word 的表格图片来解释我想要什么: 来自 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}

相关内容