Centrar celdas individuales en pestañas de libros

Centrar celdas individuales en pestañas de libros

Me gustaría centrar sólo los números en la siguiente tabla. Intenté algunas variaciones del comando de centrado, pero afectan a toda la tabla (soy relativamente nuevo en Latex).

ingrese la descripción de la imagen aquí

MWE:

\documentclass{article}
\usepackage{booktabs, threeparttable}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\begin{document}
\begin{table}[htbp]
\begin{threeparttable}
\caption{Number of Credits per Course by Year}
\label{table:nc}
\begin{tabular}{@{}p{0.18\textwidth}*{6}{L{\dimexpr0.15\textwidth-2\tabcolsep\relax}}@{}}
\toprule
& \multicolumn{2}{c}{\bfseries Commerce Faculty} &
\multicolumn{2}{c}{\bfseries EBE Faculty} &
\multicolumn{2}{c}{\bfseries Science Faculty} \\
\cmidrule(l){2-3} \cmidrule(l){4-5}  \cmidrule(l){6-7}
& F, S, H Courses & W Courses & F, S, H Courses  & W Courses & F, S, H Courses & W  Courses   \\
\midrule
First-year & 18 & 36 & Variable & Variable & 18 & 36  \\
Second-year & 18 & 36 & Variable & Variable & 24 & 48 \\
Third-year & 18 & 36 & Variable & Variable & 36 & 72 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
\end{document}

Respuesta1

Podría utilizar un tabularxentorno, preestablecido con un ancho de \textwidth, en lugar de un tabularentorno. Hacerlo le permitiría prescindir de los tediosos (y propensos a errores) cálculos manuales de los anchos requeridos de las columnas 2 a 7. En el siguiente ejemplo, el Ltipo de columna es para material irregular derecho, mientras que el Ctipo de columna es para centro. -conjunto de materiales; Ambos tipos de columnas se basan en el Xtipo de columna del tabularxpaquete. El tipo de columna principal es Cque las columnas 2 a 7 en la mayoría de las filas deben estar centradas; el Ltipo de columna se utiliza para los encabezados de columna "Cursos F, S, H" y "Cursos W"; tenga en cuenta que no es necesario especificar saltos de línea en estos encabezados explícitamente.

En la imagen de abajo, la delgada línea horizontal debajo de \bottomruleestá creada por \hrule; se coloca allí simplemente para demostrar que el ancho de la tabla es igual a \textwidth.

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{booktabs, threeparttable}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\begin{document}
\begin{table}[htbp]
\begin{threeparttable}
\caption{Number of Credits per Course by Year}
\label{table:nc}
\begin{tabularx}{\textwidth}{@{}l*{6}{C}@{}}
\toprule
& \multicolumn{2}{c}{\bfseries Commerce Faculty} &
\multicolumn{2}{c}{\bfseries EBE Faculty} &
\multicolumn{2}{c@{}}{\bfseries Science Faculty} \\ % note use of "c@{}"
\cmidrule(lr){2-3} \cmidrule(lr){4-5}  \cmidrule(l){6-7} % left- and right-trimming
& \multicolumn{1}{L}{F, S, H Courses} & 
\multicolumn{1}{L}{W Courses} & 
\multicolumn{1}{L}{F, S, H Courses} & 
\multicolumn{1}{L}{W Courses}& 
\multicolumn{1}{L}{F, S, H Courses} & 
\multicolumn{1}{L@{}}{W Courses} \\  % note use of "L@{}"
\midrule
First-year  & 18 & 36 & Variable & Variable & 18 & 36 \\
Second-year & 18 & 36 & Variable & Variable & 24 & 48 \\
Third-year  & 18 & 36 & Variable & Variable & 36 & 72 \\
\bottomrule
\end{tabularx}
\end{threeparttable}
\end{table}
\hrule  % just to indicate the width of the text block
\end{document}

Respuesta2

Declare un nuevo tipo de columna para las centradas (si es necesario, siempre puede anular la definición de una celda en particular usando \multicolumn):

\documentclass[draft]{article}
\usepackage{booktabs, threeparttable}
\usepackage{array}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\newlength\mylen
\setlength\mylen{\dimexpr0.135\textwidth-2\tabcolsep\relax}

\begin{document}
\begin{table}[htbp]
\begin{threeparttable}
\setlength\tabcolsep{5pt}
\caption{Number of Credits per Course by Year}
\label{table:nc}
\begin{tabular}{
  @{}
  p{0.18\textwidth}
  *{2}{C{\mylen}}
  *{2}{L{\mylen}}
  *{2}{C{\mylen}}@{}
}
& \multicolumn{2}{c}{\bfseries Commerce Faculty} &
\multicolumn{2}{c}{\bfseries EBE Faculty} &
\multicolumn{2}{c@{}}{\bfseries Science Faculty} \\
\cmidrule(l){2-3} \cmidrule(l){4-5}  \cmidrule(l){6-7}
& \multicolumn{1}{l}{F, S, H}  & \multicolumn{1}{l}{W}  & \multicolumn{1}{l}{F, S, H}  & \multicolumn{1}{l}{W} & \multicolumn{1}{l}{F, S, H} & \multicolumn{1}{l@{}}{W}  \\
& \multicolumn{1}{l}{Courses} &  \multicolumn{1}{l}{Courses}  &  \multicolumn{1}{l}{Courses}  &  \multicolumn{1}{l}{Courses}  &  \multicolumn{1}{l}{Courses}  &  \multicolumn{1}{l@{}}{Courses} \\
\midrule
First-year & 18 & 36 & \small Variable & \small Variable & 18 & 36  \\
Second-year & 18 & 36 & \small Variable & \small Variable & 24 & 48 \\
Third-year & 18 & 36 & \small Variable & \small Variable & 36 & 72 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}

\end{document}

ingrese la descripción de la imagen aquí

Para evitar que la tabla sobresalga del margen derecho, volví a calcular el ancho de la columna y lo reduje \tabcolsep.

Si se requiere una alineación más sofisticada para los valores numéricos, puede utilizar eldcolumnosiunitxpaquetes.

Respuesta3

Una solución que utiliza el makecellpaquete, que le permite personalizar aún más sus celdas. Como demostración, solicito en el siguiente código que los números se impriman en negrita y que se agregue algo de espacio vertical encima y debajo de la celda. Además, cada grupo de dos columnas, a partir de la segunda, tiene el mismo ancho (el del primer grupo):

        \documentclass{article}            
        \centering\setlength{\tabcolsep}{4.4pt}
        \usepackage{booktabs, threeparttable}
        \usepackage{array}
        \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
        \usepackage{makecell}
        \renewcommand{\cellgape}{\bfseries\Gape[2pt]}
        \renewcommand{\theadalign}{lc}
        \renewcommand{\theadfont}{\normalsize}
        \newlength{\headwd}
        \settowidth{\headwd}{\bfseries Commerce Faculty}

        \begin{document}

        \begin{table}[htbp]

        \begin{threeparttable}
        \caption{Number of Credits per Course by Year}
        \label{table:nc}
        \begin{tabular}{@{}l*{6}{p{\dimexpr 0.5\headwd-\tabcolsep \relax}}@{}}
        \addlinespace
        \toprule
        & \multicolumn{2}{c}{\bfseries Commerce Faculty} &
        \multicolumn{2}{c}{\bfseries EBE Faculty} &
        \multicolumn{2}{c}{\bfseries Science Faculty} \\
        \cmidrule(lr){2-3}\cmidrule(lr){4-5}  \cmidrule(lr){6-7}
        &\thead{ F, S, H \\ Courses} & \thead{W\\ Courses }&\thead{ F, S, H \\ Courses } & \thead{W\\ Courses} &\thead{ F, S, H\\ Courses} & \thead{W\\
          Courses}   \\
        \cmidrule(lr){2-3}\cmidrule(lr){4-5}  \cmidrule(lr){6-7}
        First-year & \makecell{18} & \makecell{36} & Variable & Variable & \makecell{18} & \makecell{36}  \\
        Second-year & \makecell{18} & \makecell{36} & Variable & Variable & \makecell{24} & \makecell{48} \\
        Third-year & \makecell{18} & \makecell{36} & Variable & Variable & \makecell{36} & \makecell{72} \\
        \bottomrule
        \end{tabular}
        \end{threeparttable}
        \end{table}

        \end{document} 

ingrese la descripción de la imagen aquí

Respuesta4

¿Por qué? No lo sé, pero me gustótapidea. Probablemente esté lejos de estar bien, mezclar Plain TeX y LaTeX, pero aún es algo con lo que jugar.

\documentclass{scrartcl}

\input{tap}
\usepackage{kantlipsum}

\begin{document}
\kant[1]

\medskip
\thistable{\desiredwidth\hsize}
%\moveright\parindent
\begintable
    \begintableformat & \left \endtableformat
    \B"              !                                        @6 \=                                         \E!
    \B":             ! @2 \textbf{Commerce Faculty} | @2 \textbf{EBE Faculty} | @2 \textbf{Science Faculty} \E!
    \B"              !                                        @6 \-                                         \E!
    \B"^             ! F, S, H       | W            | F, S, H    | W          | F, S, H      | W            \E!
    \B"_             ! Courses       | Courses      | Courses    | Courses    | Courses      | Courses      \E!
    \B!                                                @7 \=                                                \E!
    \B!^ First-year  |  \center{18}  | \center{36}  | Variable   | Variable   | \center{18}  | \center{36}  \E!
    \B!+ Second-year |  \center{18}  | \center{36}  | Variable   | Variable   | \center{24}  | \center{48}  \E!
    \B!_ Third-year  |  \center{18}  | \center{36}  | Variable   | Variable   | \center{36}  | \center{72}  \E!
    \=
\endtable
\medskip

\kant[4]
\end{document}

ingrese la descripción de la imagen aquí

información relacionada