![制作一个像这样的表格,但每个单元格垂直居中](https://linux22.com/image/418038/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%83%8F%E8%BF%99%E6%A0%B7%E7%9A%84%E8%A1%A8%E6%A0%BC%EF%BC%8C%E4%BD%86%E6%AF%8F%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD.png)
我想要一个这样的表格,但每个单元格都有适当的垂直间距。我找不到这样做的方法。
\begin{table}[hb]
\centering
\resizebox{14.5cm}{!}{%
\begin{tabular}{|c|c|c|l|}
\hline
Tipus & Funció & \multicolumn{2}{c|}{Mecanismes} \\ \hline
\multirow{7}{*}{\begin{tabular}[c]{@{}c@{}}Mecanismes de\\ transmissió\\ del moviment\end{tabular}} & \multirow{7}{*}{\begin{tabular}[c]{@{}c@{}}Transmeten el\\ moviment, la força\\ i la potència\end{tabular}} & \multirow{3}{*}{\begin{tabular}[c]{@{}c@{}}Transmissió\\ lineal\end{tabular}} & Politja \\ \cline{4-4}
& & & Polispast \\ \cline{4-4}
& & & Palanca \\ \cline{3-4}
& & \multirow{4}{*}{\begin{tabular}[c]{@{}c@{}}Transmissió\\ circular\end{tabular}} & Rodes de fricció \\ \cline{4-4}
& & & \begin{tabular}[c]{@{}l@{}}Sistemes de politja\\ i corretja\end{tabular} \\ \cline{4-4}
& & & Engranatges \\ \cline{4-4}
& & & Cadenes \\ \hline
\multirow{7}{*}{\begin{tabular}[c]{@{}c@{}}Mecanismes de\\ transformació \\ del moviment\end{tabular}} & \multirow{7}{*}{\begin{tabular}[c]{@{}c@{}}Transformen el\\ moviment circular\\ en rectilini\\ o a la inversa\end{tabular}} & \multirow{4}{*}{\begin{tabular}[c]{@{}c@{}}Transforma el moviment\\ circularen rectilini\\ o viceversa\end{tabular}} & Manivela-torn \\ \cline{4-4}
& & & Pinyó cremallera \\ \cline{4-4}
& & & Cargol \\ \cline{4-4}
& & & Vis sense fi \\ \cline{3-4}
& & \multirow{3}{*}{\begin{tabular}[c]{@{}c@{}}Transforma el moviment\\ circular en rectilini alternat\\ o viceversa\end{tabular}} & Biela-manovella \\ \cline{4-4}
& & & \begin{tabular}[c]{@{}l@{}}Lleves i\\ excèntriques\end{tabular} \\ \cline{4-4}
& & & Cigonyal \\ \hline
\multirow{5}{*}{\begin{tabular}[c]{@{}c@{}}Mecanismes\\ auxiliars\end{tabular}} & \multicolumn{2}{l|}{\multirow{5}{*}{\begin{tabular}[c]{@{}l@{}}Modifiquen o controlen alguns paràmetres del moviment:\\ Gir en un sol sentit (trinquet), reduir la velocitat de gir (frens),\\ emmagatzemar energia (molles), acoblament d'eixos i arbre de\\ transmissió (embragatge i acoblaments)\end{tabular}}} & Trinquets \\ \cline{4-4}
& \multicolumn{2}{l|}{} & Frens \\ \cline{4-4}
& \multicolumn{2}{l|}{} & Molles \\ \cline{4-4}
& \multicolumn{2}{l|}{} & Embragatges \\ \cline{4-4}
& \multicolumn{2}{l|}{} & Acoblaments \\ \hline
\end{tabular}%
}
\caption{Mecanismes}
\label{tab:mecanismes}
\end{table}
\documentclass[a4paper,12pt]{report}
\usepackage{geometry}
\usepackage{amsmath,amssymb}
\usepackage{siunitx}
\usepackage{cancel}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{url}
\usepackage{graphicx}
\usepackage[nottoc,notlot,notlof]{tocbibind}
\usepackage{titlesec}
\usepackage[greek,catalan]{babel}
\usepackage[titletoc]{appendix}
\usepackage{relsize}
\usepackage[numbers,square,super,sort&compress]{natbib}
\usepackage{tabularx}
\usepackage[hang,flushmargin]{footmisc}
\usepackage{multirow}
\usepackage[hidelinks]{hyperref}
\setlength{\parindent}{0pt}
\textheight=630pt
\setlength{\footskip}{2.1cm}
答案1
像这样?
- 请始终提供可重现您问题的小型完整文档(MWE:最小工作示例)。就您而言,我们没有关于您的文档及其页面布局(对表格设计有很大影响)的任何信息
- 在我的 MWE 中,使用了以下方法:
- 该
tabularx
包可以规定表格宽度并自动确定列宽。 - 在使用
\multirow
单元格时可以利用=
超过其所在列宽度的选项 - 因此这些单元格内的表格不再需要。 - 完整的 MWe 为:
- 该
\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage{multirow,
tabularx} % new
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{xparse} % new
\NewExpandableDocumentCommand\mcc{O{c|}m}
{\multicolumn{2}{#1}{#2}}
\begin{document}
\begin{table}[hb]
\centering
\small
\renewcommand\arraystretch{1.2}
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{tabularx}{\linewidth}{|C|C|C|l|}
\hline
Tipus & Funció & \mcc{Mecanismes} \\ \hline
\multirow{7}{=}{\centering
Mecanismes de transmissió del moviment}
& \multirow{7}{=}{\centering
Transmeten el moviment, la força i la potència}
& \multirow{3}{=}{Transmissió lineal}
& Politja \\ \cline{4-4}
& & & Polispast \\ \cline{4-4}
& & & Palanca \\ \cline{3-4}
& & \multirow{4}{=}{\centering
Transmissió circular}
& Rodes de fricció \\ \cline{4-4}
& & & Sistemes de politja i corretja \\ \cline{4-4}
& & & Engranatges \\ \cline{4-4}
& & & Cadenes \\ \hline
\multirow{7}{=}{\centering
Mecanismes de transformació del moviment}
& \multirow{7}{=}{\centering
Transformen el moviment circular en rectilini o a la inversa}
& \multirow{4}{=}{\centering
Transforma el moviment circularen rectilini o viceversa}
& Manivela-torn \\ \cline{4-4}
& & & Pinyó cremallera \\ \cline{4-4}
& & & Cargol \\ \cline{4-4}
& & & Vis sense fi \\ \cline{3-4}
& & \multirow{3}{=}{\centering
Transforma el moviment circular en rectilini alternat o viceversa}
& Biela-manovella \\ \cline{4-4}
& & & Lleves i excèntriques \\ \cline{4-4}
& & & Cigonyal \\ \hline
\multirow{5}{=}{Mecanismes auxiliars}
& \multicolumn{2}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth\relax}X|}
{\multirow{5}{=}{Modifiquen o controlen alguns paràmetres del moviment:
Gir en un sol sentit (trinquet), reduir la velocitat de
gir (frens), emmagatzemar energia (molles), acoblament
d'eixos i arbre de transmissió (embragatge i acoblaments)}}
& Trinquets \\ \cline{4-4}
& \mcc{} & Frens \\ \cline{4-4}
& \mcc{} & Molles \\ \cline{4-4}
& \mcc{} & Embragatges \\ \cline{4-4}
& \mcc{} & Acoblaments \\ \hline
\end{tabularx}%
\caption{Mecanismes}
\label{tab:mecanismes}
\end{table}
\end{document}
附录:
OP 文档的页边距较大,正如第一版答案所预期的那样。因此单元格中用于文本的空间较小,因此某些\multirow
单元格中的文本溢出到单元格底部。
作为以下 MWE 中的解决方法,考虑了以下措施:
- 减少了基线跳过
\small\linespread{.84}\selectfont\relax
- 减小的尺寸
\tabcolsep
- 表格中第一列变窄,接下来两列变宽
- 通过使用宏,增加了单元格内容上方和下方的垂直空间
\makegapedcells
- 由于
makegapedcells
和m
列类型不兼容,在序言中添加了修复乌尔里克·费舍尔。 - 新的 MWE 为:
\documentclass[a4paper,12pt]{report}
\usepackage{geometry}
\usepackage{makecell, % new
multirow,tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
%% patch of Ulrike Fisher (on my request) --------------------%
% (http://tex.stackexchange.com/questions/319768/ %
% are-m-column-type-and-makecell-incompatible) %
%% for makecell macro \makegapedcells %
%%--------------------------------------------------------------%
\makeatletter
\renewcommand\mcell@classz{\@classx
\@tempcnta \count@
\prepnext@tok
\@addtopreamble{%\mcell@mstyle
\ifcase\@chnum
\hfil
\mcell@agape{\d@llarbegin\insert@column\d@llarend}\hfil \or
\hskip1sp
\mcell@agape{\d@llarbegin\insert@column\d@llarend}\hfil \or
\hfil\hskip1sp
\mcell@agape{\d@llarbegin \insert@column\d@llarend}\or
\mcell@agape{$\vcenter
\@startpbox{\@nextchar}\insert@column\@endpbox$}\or
\mcell@agape{\vtop
\@startpbox{\@nextchar}\insert@column\@endpbox}\or
\mcell@agape{\vbox
\@startpbox{\@nextchar}\insert@column\@endpbox}%
\fi
\global\let\mcell@left\relax\global\let\mcell@right\relax
}\prepnext@tok}
\makeatother
\usepackage{xparse} % new
\NewExpandableDocumentCommand\mcc{O{c|}m}
{\multicolumn{2}{#1}{#2}}
\begin{document}
\begin{table}[hb]
\centering
\small\linespread{.84}\selectfont\relax % <---
\setlength\tabcolsep{3pt} % <---
\setcellgapes{3pt}
\makegapedcells
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{tabularx}{\linewidth}{|>{\hsize=0.8\hsize}C|
*{2}{>{\hsize=1.1\hsize}C|}l|} % <---
\hline
Tipus & Funció & \mcc{Mecanismes} \\ \hline
\multirow{10}{=}{\centering
Mecanismes de transmissió del moviment}
& \multirow{10}{=}{\centering
Transmeten el moviment, la força i la potència}
& \multirow{5}{=}{Transmissió lineal}
& Politja \\ \cline{4-4}
& & & Polispast \\ \cline{4-4}
& & & Palanca \\ \cline{3-4}
& & \multirow{5}{=}{\centering
Transmissió circular}
& Rodes de fricció \\ \cline{4-4}
& & & Sistemes de politja i corretja \\ \cline{4-4}
& & & Engranatges \\ \cline{4-4}
& & & Cadenes \\ \hline
\multirow{10}{=}{\centering
Mecanismes de transformació del moviment}
& \multirow{10}{=}{\centering
Transformen el moviment circular en rectilini o a la inversa}
& \multirow{6}{=}{\centering
Transforma el moviment circularen rectilini o viceversa}
& Manivela-torn \\ \cline{4-4}
& & & Pinyó cremallera \\ \cline{4-4}
& & & Cargol \\ \cline{4-4}
& & & Vis sense fi \\ \cline{3-4}
& & \multirow{5}{=}{\centering
Transforma el moviment circular en rectilini alternat o viceversa}
& Biela-manovella \\ \cline{4-4}
& & & Lleves i excèntriques \\ \cline{4-4}
& & & Cigonyal \\ \hline
\multirow{7}{=}{\centering
Mecanismes auxiliars}
& \multicolumn{2}{>{\hsize=\dimexpr2.2\hsize+2\tabcolsep+\arrayrulewidth\relax}C|}
{\multirow{7}{=}{Modifiquen o controlen alguns paràmetres del moviment:
Gir en un sol sentit (trinquet), reduir la velocitat de
gir (frens), emmagatzemar energia (molles), acoblament
d'eixos i arbre de transmissió (embragatge i acoblaments)}}
& Trinquets \\ \cline{4-4}
& \mcc{} & Frens \\ \cline{4-4}
& \mcc{} & Molles \\ \cline{4-4}
& \mcc{} & Embragatges \\ \cline{4-4}
& \mcc{} & Acoblaments \\ \hline
\end{tabularx}%
\caption{Mecanismes}
\label{tab:mecanismes}
\end{table}
\end{document}
编译结果为: