Wie kann ich eine innere vertikale Linie zentriert in einer Tabelle zeichnen?

Wie kann ich eine innere vertikale Linie zentriert in einer Tabelle zeichnen?

Ich möchte eine zentrierte, innere vertikale Linie in einer Tabelle zeichnen.

Beispielcode:

\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|}
  \hline
  \multirow{2}{*}{R} & \multicolumn{2}{c|}{No. Jobs Completed/Submitted} \\ \cline{2-3}
                     & C1 & C2                                           \\ \hline
  r1                 & a  & b                                            \\ \hline
  r2                 & a  & b                                            \\ \hline
\end{tabular}
\end{document}

Seine Ausgabe:

Bildbeschreibung hier eingeben


Gewünschte Ausgabe: Wenn möglich, möchte ich die Spalten C1 und C2 gleichmäßig aufteilen.

---------------------------------
|R |No. Jobs Completed/Submitted|
|r1|     C1      |     C2       |
|-------------------------------|
|r2|      a      |      b       |
--------------------------------

Antwort1

wSie können den -column-Typ aus dem Paket verwenden array:

\documentclass{article}
\usepackage{multirow,array}
\begin{document}
\setlength{\extrarowheight}{1pt}
\begin{tabular}{|c|w{c}{3cm}|w{c}{3cm}|}
  \hline
  \multirow{2}{*}{R} & \multicolumn{2}{c|}{No. Jobs Completed/Submitted} \\ \cline{2-3}
                     & C1 & C2                                           \\ \hline
  r1                 & a  & b                                            \\ \hline
  r2                 & a  & b                                            \\ \hline
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben PS: Es wird empfohlen, \extrarowheightbereitgestellt von zu verwenden array, damit die Tabelle besser aussieht.

Antwort2

Mit dem tabularrayPaket können Sie die hspan=evenOption nutzen, die Spalten gleichmäßig zu verteilen:

\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
  colspec={|c|c|c|},
  hspan=even
}
  \hline
  \SetCell[r=2]{} R & \SetCell[c=2]{} No. Jobs Completed/Submitted & \\ \cline{2-3}
                     & C1 & C2                                           \\ \hline
  r1                 & a  & b                                            \\ \hline
  r2                 & a  & b                                            \\ \hline
\end{tblr}
\end{document}

Bildbeschreibung hier eingeben

Antwort3

mit nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
    
    \begin{NiceTabular}[width=0.6\linewidth]{cX[c]X[c]}[hvlines,cell-space-limits=2pt]
        \Block{2-1}{R} & \Block{1-2}{No. Jobs Completed/Submitted} & \\
        & C1 & C2 \\
        r1 & a & b \\
        r2 & a & b \\
    \end{NiceTabular}
    
    \vspace{\baselineskip}
    or
    
    \vspace{\baselineskip}
    \begin{NiceTabular}{c W{c}{3cm} W{c}{3cm}}[hvlines,cell-space-limits=2pt]
        \Block{2-1}{R} & \Block{1-2}{No. Jobs Completed/Submitted} & \\
        & C1 & C2 \\
        r1 & a & b \\
        r2 & a & b \\
    \end{NiceTabular}
    
\end{document}

Bildbeschreibung hier eingeben

Antwort4

Im selben Geiste wie dieAntwort von Stephen, sondern verwenden Sie die natürliche Breite Ihrer Tabellenüberschrift, indem Sie sie messen:

\documentclass{article}

\usepackage{multirow, array}

\newlength\mylength

\begin{document}
\settowidth\mylength{No. Jobs Completed/Submitted}
\mylength=.5\dimexpr\mylength-\arrayrulewidth-2\tabcolsep\relax
\begin{tabular}{|c|*2{w{c}{\mylength}|}}
  \hline
  \multirow{2}{*}{R} & \multicolumn{2}{c|}{No. Jobs Completed/Submitted} \\ \cline{2-3}
                     & C1 & C2                                           \\ \hline
  r1                 & a  & b                                            \\ \hline
  r2                 & a  & b                                            \\ \hline
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben


Eine meiner Meinung nach verschönerte Version Ihrer Tabelle, indem Sie alle vertikalen Linien entfernen und stattdessen booktabshorizontale verwenden:

\documentclass{article}

\usepackage{multirow, booktabs, array}

\newlength\mylength

\begin{document}
\settowidth\mylength{No. Jobs Completed/Submitted}
\mylength=.5\dimexpr\mylength-2\tabcolsep\relax
\begin{tabular}{c*2{w{c}{\mylength}}}
  \toprule
  \multirow{2}{*}{R} & \multicolumn{2}{c}{No. Jobs Completed/Submitted} \\
                     & C1 & C2                                          \\
  \midrule
  r1                 & a  & b                                           \\
  r2                 & a  & b                                           \\
  \bottomrule
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen