¿Cómo puedo centrar el texto verticalmente en el medio de una celda de una tabla de varias columnas?

¿Cómo puedo centrar el texto verticalmente en el medio de una celda de una tabla de varias columnas?

Cuando ingreso esto, ¿por qué las 'cosas de tipo I' y las 'cosas de tipo II' se dividen en 2 o 3 líneas? ¿Cómo puedo escribirlos en una línea sin saltos de línea? Cuando uso c en lugar de M para varias columnas, no centra el texto en el centro vertical de la celda. ¿Cómo puedo cambiar eso?

\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}

ingrese la descripción de la imagen aquí

Respuesta1

Descentrar proviene del \\[5pt]usado antes \hlinedel s. Reemplazo esto con la carga del cellspacepaquete, lo que garantiza un espacio vertical mínimo encima y debajo de las celdas en columnas con un especificador con el prefijo de la letra S(o Csi usa siunitx). También cargo el captionpaquete para asegurar un espacio vertical correcto entre el título y la tabla:

\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} 

ingrese la descripción de la imagen aquí

Respuesta2

Úselo \makecelldesde el paquete con el mismo nombre (es decir makecell, ). Sin embargo, este comando debe especificarse paracadacelda individualmente. La configuración predeterminada es centrarlo verticalmente.

Hay algún problema con los \\[5pt]comandos, lo que resulta en un aumento de las fracciones en la última columna. Agregué una segunda versión en la que esto no ocurre.

\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}

ingrese la descripción de la imagen aquí

Respuesta3

Le sugiero que elimine las [5pt]directivas de espaciado manual y, en su lugar, especifique

\setlength\extrarowheight{5pt}

También cambiaría del tipo mde pcolumna para asegurar que el material en la primera columna esté establecido en la misma línea de base que en las otras 8 columnas.

Además, me gustaría animarle a cambiar a un diseño de mesa que no utilice líneas verticales y menos líneas horizontales, pero bien espaciadas, como se ejemplifica en la segunda tabla a continuación. Utiliza las macros de dibujo lineal del booktabspaquete.

ingrese la descripción de la imagen aquí

\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}

información relacionada