Принудительно установить ширину таблицы равной ширине текстового столбца

Принудительно установить ширину таблицы равной ширине текстового столбца

Кажется, что это простая проблема, но я действительно новичок в LaTeX и не могу придумать решение даже с некоторыми QA на этом форуме, которые я нашел. Можете ли вы помочь? Как показано на рисунке, таблица шире текстового столбца и сталкивается с другим столбцом. Я понимаю, что текст в таблице слишком длинный, но есть ли простой способ заставить таблицу быть той же ширины, что и текст, и перенести текст на две строки в одной строке таблицы без использования разных пакетов?введите описание изображения здесь

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

решение1

Без другого пакета я не знаю, как это сделать автоматически (но я добавил недостающий пакет)закладкииз вашего кода, чтобы использовать \topruleи \midruleиз вашего кода).

Вы можете использовать p{<length>}спецификацию столбца, чтобы задать ширину для вашего последнего столбца. Вам нужно найти значение длины методом проб и ошибок (в этом коде я увеличил размер с 2 см до тех пор, пока не получупереполненный hboxпредупреждение; в этом конкретном примере я получил предупреждение со значением 2.5cm, но не со значением 2.49cm).

Я удалилhypcapпакет, здесь неактуальный, и добавленгубная помададля заполнения страницы текстом.

В этом коде я также явно добавил letterpaperформат бумаги в класс документа, поскольку значение, используемое для pстолбца типа, зависит от ширины страницы, и по умолчанию для некоторых европейских пользователей это формат, a4paperкогда формат бумаги явно не указан.

\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}табличной спецификацией: введите описание изображения здесь

С {c|c|c|p{2.49cm}}табличной спецификацией: введите описание изображения здесь

решение2

  • Добро пожаловать в TeX:SE!
  • Пожалуйста, в следующий раз вместо фрагмента кода предоставьте MWE (Minimal Working Example). Теперь нам пришлось гадать о классе документа и (по нему) определяемой разметке страницы. Оба влияют на форматирование таблицы
  • Для вашей таблицы я бы добавил tabularrayпакет с библиотеками/пакетами booktabs, siunitxи ragged2e:
\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}

введите описание изображения здесь

Связанный контент