Wie kann ich Text vertikal in der Mitte einer mehrspaltigen Tabellenzelle zentrieren?

Wie kann ich Text vertikal in der Mitte einer mehrspaltigen Tabellenzelle zentrieren?

Warum werden die „Typ I-Sachen“ und „Typ II-Sachen“ in 2-3 Zeilen aufgeteilt, wenn ich dies eingebe? Wie kann ich sie in einer Zeile ohne Zeilenumbruch schreiben? Wenn ich für die Mehrspaltigkeit c statt M verwende, wird der Text nicht in der vertikalen Mitte der Zelle zentriert. Wie kann ich das ändern?

\documentclass[a4paper,12pt]{scrartcl}      
\usepackage{array}      
\usepackage{hhline}
\usepackage{xfrac}



\begin{document}
    \newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.10\linewidth-2\tabcolsep}}
    \begin{table}[h]
    \centering
    \caption{Long Stuff}

    \begin{tabular}{|l|MMMM|MMMM|M}
    \hline
    Primer &  \multicolumn{4}{M|}{Type I stuff} &  \multicolumn{4}{M|}{Type II stuff} \\[5pt] \hline
     Type I &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  \\[5pt] \hline
     Type II &  undiluted   &  $\sfrac{1}{10}$   &  $\sfrac{1}{100}$   &    $\sfrac{1}{1000}$ &  undiluted   &   $\sfrac{1}{10}$  &  $\sfrac{1}{100}$   &   $\sfrac{1}{1000}$  \\[5pt] \hline
 \end{tabular}
\end{table}
\end{document}

Bildbeschreibung hier eingeben

Antwort1

Die fehlende Zentrierung kommt von dem \\[5pt]„used before \hline“-s. Ich ersetze dies durch das Laden des cellspacePakets, das einen minimalen vertikalen Abstand über und unter Cels in Spalten mit einem Spezifizierer mit dem vorangestellten Buchstaben S(oder Cwenn Sie verwenden siunitx) sicherstellt. Ich lade das Paket auch, captionum einen korrekten vertikalen Abstand zwischen Überschrift und Tabelle sicherzustellen:

\documentclass[preview]{article}

\usepackage{amsmath, xfrac}
\usepackage{caption}
\usepackage{cellspace}
\setlength\cellspacetoplimit{6pt}
\setlength\cellspacebottomlimit{6pt}
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.10\linewidth-2\tabcolsep}}

\begin{document}

\begin{table}[h]
  \caption{Dilutions used to establish positive and negative controls}
  \label{Dilutions used to establish positive and negative controls}
  \begin{tabular}{|Sl|*{4}{M}|*{4}{M}|M}
    \hline
    Primer & \multicolumn{4}{c|}{Type I stuff} & \multicolumn{4}{c|}{Type II stuff} \\ \hline
    Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\\hline
    Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \hline
  \end{tabular}
\end{table}

\end{document} 

Bildbeschreibung hier eingeben

Antwort2

Verwendung \makecellaus dem gleichnamigen Paket (ie makecell) Dieser Befehl muss jedoch angegeben werden fürjedeZelle einzeln. Die Standardeinstellung ist, sie vertikal zu zentrieren.

Es gibt ein Problem mit den \\[5pt]Befehlen, das zu einer gewissen Verschiebung der Brüche in der letzten Spalte führt. Ich habe eine zweite Version hinzugefügt, in der dies nicht auftritt

\documentclass{article}

\usepackage{array}
\usepackage{hhline}
\usepackage{mathtools}
\usepackage{makecell}

\usepackage{xfrac}

\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.12\linewidth-2\tabcolsep}}

%\newcolumntype{Q}[1]{>{\centering\arraybackslash}m{\dimexpr.10\linewidth-2\tabcolsep}}

\begin{document}


\begin{table}[h]
  \centering
  \caption{Dilutions used to establish positive and negative controls}
  \label{Dilutions used to establish positive and negative controls}
    \begin{tabular}{|l|MMMM|MMMM|M}
      \hline
      Primer &  \multicolumn{4}{M|}{\makecell{Type I stuff}} &  \multicolumn{4}{M|}{\makecell{Type II stuff}} \\[5pt] \hline
      Type I &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  \\[5pt] \hline
      Type II &  undiluted   &  $\sfrac{1}{10}$   &  $\sfrac{1}{100}$   &    $\sfrac{1}{1000}$ &  undiluted   &   $\sfrac{1}{10}$  &  $\sfrac{1}{100}$   &   $\sfrac{1}{1000}$  \\[5pt] \hline
    \end{tabular}
  \end{table}

\begin{table}[h]

\centering
\caption{Dilutions used to establish positive and negative controls}
\label{Dilutions used to establish positive and negative controls}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|l|MMMM|MMMM|M}
\hline
Primer &  \multicolumn{4}{M|}{\centering\makecell{Type I stuff}} &  \multicolumn{4}{M|}{\makecell{Type II stuff}} \\ \hline
 Type I &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  & $\sfrac{1}{1000}$   \\ \hline
 Type II &  undiluted   &  $\sfrac{1}{10}$   &  $\sfrac{1}{100}$   &    $\sfrac{1}{1000}$ &  undiluted   &   $\sfrac{1}{10}$  &  $\sfrac{1}{100}$  &  $\sfrac{1}{1000}$  \\ \hline
\end{tabular}
\end{table}



\end{document}

Bildbeschreibung hier eingeben

Antwort3

Ich schlage vor, dass Sie die manuellen [5pt]Abstandsanweisungen löschen und stattdessen angeben

\setlength\extrarowheight{5pt}

Ich würde auch vom mSpaltentyp zum Spaltentyp wechseln p, um sicherzustellen, dass das Material in der ersten Spalte auf derselben Grundlinie wie in den anderen 8 Spalten festgelegt ist.

Darüber hinaus möchte ich Sie dazu ermutigen, auf ein Tabellendesign umzusteigen, das keine vertikalen Linien und weniger, dafür aber gut verteilte horizontale Linien verwendet, wie es in der zweiten Tabelle unten veranschaulicht wird. Es verwendet die Linienzeichnungsmakros des booktabsPakets.

Bildbeschreibung hier eingeben

\documentclass[a4paper,12pt]{scrartcl}      

\usepackage{tabularx}      
\newcolumntype{M}{>{\centering\arraybackslash}p{\dimexpr.10\linewidth -2\tabcolsep}}
\newcolumntype{C}{>{\centering\arraybackslash}X}

\usepackage{hhline}
\usepackage{xfrac}

\usepackage{booktabs}

\begin{document}
\begin{table}[h]
    \setlength\extrarowheight{5pt}
    \centering
    \caption{Long Stuff}

    \begin{tabular}{|l|MMMM|MMMM|}
    \hline
    Primer &  \multicolumn{4}{c|}{Type I stuff} &  \multicolumn{4}{c|}{Type II stuff} \\ \hline
     Type I &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  \\ \hline
     Type II &  undiluted   &  $\sfrac{1}{10}$   &  $\sfrac{1}{100}$   &    $\sfrac{1}{1000}$ &  undiluted   &   $\sfrac{1}{10}$  &  $\sfrac{1}{100}$   &   $\sfrac{1}{1000}$  \\ \hline
 \end{tabular}
\end{table}

\begin{table}[h]
    \setlength\extrarowheight{3pt}
    \centering
    \caption{Version with booktabs-based horizontal rules and no vertical rules}

    \begin{tabularx}{0.92\textwidth}{@{} l *{8}{C} @{}}
    \toprule
    Primer &  \multicolumn{4}{c}{Type I stuff} &  \multicolumn{4}{c}{Type II stuff} \\ 
    \cmidrule(lr){2-5} \cmidrule(l){6-9}

     Type I &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  &  undiluted   &   $\sfrac{1}{10}$  &   $\sfrac{1}{100}$  &   $\sfrac{1}{1000}$  \\
     Type II &  undiluted   &  $\sfrac{1}{10}$   &  $\sfrac{1}{100}$   &    $\sfrac{1}{1000}$ &  undiluted   &   $\sfrac{1}{10}$  &  $\sfrac{1}{100}$   &   $\sfrac{1}{1000}$  \\ \bottomrule
 \end{tabularx}
\end{table}
\end{document}

verwandte Informationen