制作一个像这样的表格,但每个单元格垂直居中

制作一个像这样的表格,但每个单元格垂直居中

我想要一个这样的表格,但每个单元格都有适当的垂直间距。我找不到这样做的方法。 埃


\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
  • 由于makegapedcellsm列类型不兼容,在序言中添加了修复乌尔里克·费舍尔
  • 新的 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}

编译结果为:

在此处输入图片描述

相关内容