我怎样才能像 一样将文本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}