我需要旋转表中的某些字段

我需要旋转表中的某些字段

我怎样才能像 一样将文本Familia居中对齐Excel table?另外,我怎样才能将 单元格隔开Program Memory。查看图片 2。旋转后的文本看起来不同。

我的代码:

\newcommand*\rot{\rotatebox{90}}
\begin{table}[htbp]
  \centering
    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
    \hline
    \textbf{Familia} & \rot{\textbf{Fabricante}} & \rot{\textbf{MCU}} & \rot{\textbf{Program Memory}}&\rot{\textbf{EEPROM}} &\rot{\textbf{SRAM}} &\rot{\textbf{I/Os}} &\rot{\textbf{Timers 8-bits}} &\rot{\textbf{Timers 16-bits}} &\rot{\textbf{10-bit ADC}} &\rot{\textbf{12-bit ADC}} &\rot{\textbf{5-bit DAC}} &\rot{\textbf{8-bit DAC}} &\rot{\textbf{CCP/ECCP}} &\rot{\textbf{EUSART}} &\rot{\textbf{MSSP (I2C/SPI)}} &\rot{\textbf{PDIP}} &\rot{\textbf{PMD}} \\\hline
    & & & & & & & & & & & & & & & & & \\\hline
   \end{tabular}%
  \label{tab:addlabel}%
    \caption{Add caption}
\end{table}%

所需表 实际表

答案1

你只需要稍微改变一下宏。下面是一个不言自明的例子:

\documentclass{article}
\usepackage{graphicx}

\newcommand\rot[1]{\rotatebox[origin=c]{90}{\makebox[10em][l]{\bfseries~ #1}}}

\begin{document}
\begin{table}[htbp]
  \centering
    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
    \hline
    \bfseries Familia & \rot{Fabricante} & \rot{MCU} & \rot{Program Memory} &\rot{EEPROM} & \rot{SRAM} &\rot{I/Os} &\rot{Timers 8-bits} &\rot{Timers 16-bits} &\rot{10-bit ADC} &\rot{12-bit ADC} &\rot{5-bit DAC} &\rot{8-bit DAC} &\rot{CCP/ECCP} &\rot{EUSART} &\rot{MSSP (I2C/SPI)} &\rot{PDIP} &\rot{PMD} \\\hline
    & & & & & & & & & & & & & & & & & \\\hline
   \end{tabular}%
    \caption{Add caption\label{tab:addlabel}}
\end{table}%
\end{document}

为了限制旋转单元格的高度,在需要时制作两条旋转线,将宏更改为:

\newcommand\rot[1]{\rotatebox[origin=c]{90}{%
~\parbox{6.5em}{\raggedright\parindent0pt\bfseries #1}}}

为了清楚起见,我保留了所有的垂直线和水平线,但请参阅有关booktabs表格样式的一些问题。

答案2

你问,

我怎样才能给写有 的单元格留出空间Program Memory

我假设您所说的“为单元格留出空间”是指在单元格两端填充一些空白。如果您不喜欢这种解释,请告知。

我建议你改变的定义,\rot使它需要一个明确的参数,提供选项origin=c\rotatebox如在@Fran 的回答)。若要在单元格的两端添加一些填充,我建议您在 的主要参数的开头和结尾插入“kern”(不可破坏、不可丢弃的空格)\rotatebox。在下面的代码中,我将填充设置为3pt;您显然可以自由调整填充量。

顺便说一句,由于\rot\textbf似乎总是在您的表中一起出现,您不妨创建一个名为的宏,\bfrot将这两个操作结合起来。

单独的注释:如果您计划在文档的其他位置交叉引用该表(通常通过语句\ref),则该表的\caption必须,而不是在\label声明之后。

在此处输入图片描述

\documentclass{article}
\usepackage[margin=2.5cm, a4paper]{geometry} % set suitable page parameters
\usepackage{array}    % for '\extrarowheight' macro

\usepackage{graphicx} % for '\rotatebox' directive
\newcommand*\bfrot[1]{\rotatebox[origin=c]{90}{\bfseries\kern3pt #1\kern3pt}}

\begin{document}

\begin{table}[htbp]
\setlength\extrarowheight{2pt} %  optional, for an ever so slightly more "open" look
\centering
\begin{tabular}{|l|*{17}{c|}}
\hline
\textbf{Familia} 
&\bfrot{Fabricante}    &\bfrot{MCU} 
&\bfrot{Program Memory}&\bfrot{EEPROM} 
&\bfrot{SRAM}          &\bfrot{I/Os} 
&\bfrot{Timers 8-bits} &\bfrot{Timers 16-bits} 
&\bfrot{10-bit ADC}    &\bfrot{12-bit ADC} 
&\bfrot{5-bit DAC}     &\bfrot{8-bit DAC} 
&\bfrot{CCP/ECCP}      &\bfrot{EUSART} 
&\bfrot{MSSP (I2C/SPI)}&\bfrot{PDIP} 
&\bfrot{PMD} \\
\hline
a & b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r \\
\hline
\end{tabular}
\caption{Add caption}\label{tab:addlabel}
\end{table}
\end{document}

相关内容