Forzar el ancho de la tabla al ancho de la columna de texto

Forzar el ancho de la tabla al ancho de la columna de texto

Parece un problema fácil, pero en realidad soy un novato en LaTeX y no puedo encontrar una solución ni siquiera con algunas preguntas de control de calidad que encontré en este foro. ¿Puedes ayudarme? Como muestra la imagen, la tabla es más ancha que la columna de texto y choca con la otra columna. Entiendo que el texto de la tabla es demasiado largo, pero ¿hay alguna forma sencilla de forzar que la tabla tenga el mismo ancho que el texto y ajustar el texto en dos líneas en la misma fila de la tabla sin utilizar paquetes diferentes?ingrese la descripción de la imagen aquí

\usepackage[table]{hypcap}
\begin{table}[ht]
    \centering
    \renewcommand{\arraystretch}{1.8}
    \begin{tabular}{c|c|c|l}
        Parameter & Value & Units & Description\\
\toprule \midrule
        E & 200 & GPa & Young's modulus\\
        $f_{c}$ & 30 & MPa & Ultimate compressive strength\\
        $\varepsilon_{t0}$ & 805 $\cdot 10^{-4}$ & - & Initial threshold of damage for $\varepsilon_t$\\ 
\hline
    \end{tabular}
    \caption{a}
\end{table}

Respuesta1

Sin un paquete diferente, no sé cómo hacer esto automáticamente (pero agregué el paquete que faltapestañasde su código para poder utilizar \topruley \midrulede su código).

Puede utilizar la p{<length>}especificación de columna para darle un ancho a su última columna. Necesitas encontrar el valor de la longitud con pruebas y errores (en este código, amplié el tamaño desde 2 cm hasta obtener unhbox demasiado llenoadvertencia; en este ejemplo particular, recibí una advertencia con el valor 2.5cm, pero no con el valor 2.49cm).

he eliminado elhipcappaquete, no relevante aquí, y agregadolabiospara llenar la página con texto.

En este código, también agregué explícitamente el letterpaperformato de papel en la clase de documento, porque el valor a usar para la pcolumna de tipo depende del ancho de la página y, de forma predeterminada, para algunos usuarios europeos, es el a4paperformato cuando no hay ningún formato de papel. dado explícitamente.

\documentclass[10pt,twocolumn]{article}
\usepackage{lipsum}
\usepackage{booktabs}
\begin{document}
\lipsum[1-7]

\begin{table}[ht]
    \centering
    \renewcommand{\arraystretch}{1.8}
    \begin{tabular}{c|c|c|p{2.49cm}}
        Parameter & Value & Units & Description\\
\toprule \midrule
        E & 200 & GPa & Young's modulus\\
        $f_{c}$ & 30 & MPa & Ultimate compressive strength\\
        $\varepsilon_{t0}$ & 805 $\cdot 10^{-4}$ & - & Initial threshold of damage for $\varepsilon_t$\\ 
\hline
    \end{tabular}
    \caption{a}
\end{table}

\lipsum[8-14]
\end{document}

{c|c|c|l}Con la especificación tabular original :ingrese la descripción de la imagen aquí

Con la {c|c|c|p{2.49cm}}especificación tabular: ingrese la descripción de la imagen aquí

Respuesta2

  • ¡Bienvenido a TeX:SE!
  • Por favor, la próxima vez proporcione el fragmento de código MWE (ejemplo de trabajo mínimo). Ahora teníamos que adivinar sobre la clase de documento y (por ella) el diseño de página definido. Ambos influyen en el formato de la tabla.
  • Para su tabla , emplearía tabularrayel paquete con bibliotecas/paquetes booktabsy :siunitxragged2e
\documentclass[twocolumn]{article}
\usepackage{lipsum}

\usepackage{ragged2e}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}

\begin{document}
\lipsum[1]

    \begin{table}[ht]
\begin{tblr}{
             colsep=3pt,
             colspec={@{} c Q[c,si={table-format=3.0}] Q[c,si] X[j, appto=\RaggedRight] @{}},
             cell{3-Z}{1} = {mode=math},
             cell{1,Z}{2,3}  = {guard}
             }
    \toprule
Parameter   & Value & Units & Description\\
    \midrule
E           & 200   & \unit{\giga\pascal} 
                            & Young's modulus\\
f_{c}       & 30    & \unit{\mega\pascal} 
                            & Ultimate compressive strength\\
\varepsilon_{t_0}
            & \num{805E-4}
                    & --    & Initial threshold of damage for $\varepsilon_t$   \\
    \bottomrule
\end{tblr}
\caption{a}
\label{tab:?}
    \end{table}
\lipsum[2-6]
\end{document}

ingrese la descripción de la imagen aquí

información relacionada