使用 Latex \multirow 功能

使用 Latex \multirow 功能

我正在使用 Latex 创建简历,并希望在表格中显示我的所有资历。许多资历都有一些相同的细节,因此我需要使用大量多行来避免重复的文本。以下是我想要创建的一些示例数据:

问题的示例数据

我尝试使用以下代码在 Latex 中创建它:

\usepackage[]{multirow}
\begin{document}

\begin{table}[h!]
  \centering
  \caption{Qualifications}
  \label{tab:qualifications}
  \begin{tabular}{ccccc}
    \toprule
    Institution & Qualification Level & Course Length & Course Title 
    & Grade\\

    \midrule
    \multirow{3}{*}{Some College} & \multirow{3}{*}{A Level} & \multirow{3}{*}{2013 - 2015}
      & Maths & A \\
      & English & A \\
      & Spanish & A \\ \hline

    \multirow{4}{*}{Some High School} & \multirow{4}{*}{GCSE} & \multirow{3}{*}{2012 - 2014}
      & Maths & B \\
      & History & C \\
      & English & A \\
      & Spanish & B \\ \hline

    \bottomrule
  \end{tabular}
\end{table}

\end{document}

此代码适用于第一行,但对于其余行,最后两列最终会与其他随机列混合在一起。以下是此代码的结果示例:

代码结果

有人知道我该如何实现我的目标吗?我在网上找不到任何关于如何做到这一点的信息。

谢谢

编辑:我意识到我在代码和示例数据中输入了不同的等级,但无论哪种方式都无关紧要。

答案1

每行必须精确描述 5 列(因此有 4 个 & 符号&)。但是,如果我们查看您的代码,我们会看到:

\multirow{3}{*}{Some College} & \multirow{3}{*}{A Level} & \multirow{3}{*}{2013 - 2015}
      & Maths & A \\ <-- OK, 5 columns
      & English & A \\ <-- not OK, only 3 columns
      & Spanish & A \\ \hline <-- not OK, only 3 columns
    \multirow{4}{*}{Some High School} & \multirow{4}{*}{GCSE} & \multirow{3}{*}{2012 - 2014}
      & Maths & B \\ <-- OK, 5 columns
      & History & C \\ <-- not OK, only 3 columns
      & English & A \\ <-- not OK, only 3 columns
      & Spanish & B \\ \hline <-- not OK, only 3 columns

我们可以通过添加空列来修复这些问题,如本工作示例所示:

\documentclass{article} 
\usepackage[english]{babel}
\usepackage[]{multirow}
\usepackage{booktabs}

\begin{document}
Example:
\begin{table}[h!]
    \centering
    \caption{Qualifications}
    \label{tab:qualifications}
    \begin{tabular}{ccccc}
        \toprule
        Institution & Qualification Level   & Course Length     & Course Title 
        & Grade\\
        \midrule
        \multirow{3}{*}{Some College} & \multirow{3}{*}{A Level} & \multirow{3}{*}{2013 - 2015}
            & Maths & A \\
        &&  & English & A \\
        &&  & Spanish & A \\
        \midrule 
        \multirow{4}{*}{Some High School} & \multirow{4}{*}{GCSE} & \multirow{4}{*}{2012 - 2014}
            & Maths & B \\
        &&  & History & C \\
        &&  & English & A \\
        &&  & Spanish & B \\ 
        \bottomrule
    \end{tabular}
\end{table}

\end{document}

请注意,多列居中。如果您希望术语“Some Collage”、“A Level”等显示在每个多行组的顶行(如示例数据中所示),则无需使用该\multirow命令。相反,只需在每个“组”中的行的第一行添加术语,如以下示例所示:

% just add within document example above...
\noindent Example using just \textit{regular} rows and columns:
\begin{table}[h!]
    \centering
    \caption{Qualifications - Example 2}
    \label{tab:qualifications2}
    \begin{tabular}{ccccc}
        \toprule
        Institution & Qualification Level   & Course Length     & Course Title 
        & Grade\\
        \midrule
        Some College & A Level & 2013 - 2015 & Maths & A \\
        &&  & English & A \\
        &&  & Spanish & A \\
        \midrule 
        Some High School & GCSE & 2012 - 2014 & Maths & B \\
        &&  & History & C \\
        &&  & English & A \\
        &&  & Spanish & B \\ 
        \bottomrule
    \end{tabular}
\end{table}

结果表格显示如下。

在此处输入图片描述

相关内容