强制表格宽度为文本列宽度

强制表格宽度为文本列宽度

看起来是个简单的问题,但我真的是 LaTeX 新手,即使找到了这个论坛上的一些问答,也无法找到解决方案。你能帮忙吗?如图所示,表格比文本列宽,并与另一列相撞。我知道表格中的文本太长,但是有没有一种简单的方法可以强制表格与文本宽度相同,并将文本换行到同一表格行中的两行,而无需使用不同的包?在此处输入图片描述

\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>}列规范为最后一列指定宽度。您需要反复试验才能找到长度值(在此代码中,我将尺寸从 2cm 扩大到水平盒溢出警告;在这个特定的例子中,我收到了带有值的警告2.5cm,但没有收到带有值的警告2.49cm

我已经删除了氢化物包,与此无关,并添加利普萨姆用于用文本填充页面。

在此代码中,我还在文档类中明确添加了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(最小工作示例)的代码片段。现在我们必须猜测文档类和(由它)定义的页面布局。两者都会影响表格格式
  • 对于您的表格,我将使用带有tabularray库/包的包booktabssiunitx并且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}

在此处输入图片描述

相关内容