大小为 \textwidth 的 Longtable 超出右边距

大小为 \textwidth 的 Longtable 超出右边距

我尝试使用 longtable 包创建一个适合整个可用文本宽度的表格。这是我的代码:

\documentclass{article}
\usepackage{longtable}
\usepackage{amsmath}

\title{Raccolta delle formule}
\author{}
\date{}
\begin{document}
   \maketitle
   \begin{longtable}{p{.33\columnwidth} | p{.33\columnwidth} | p{.33\columnwidth} }
      \Large Descrizione & \Large Formula & \Large Esempio\\
      \hline
      \endhead

      Prodotto di due polinomi &
      {
         \begin{align*}
            (a+b)(c+d)&=a(c+d)+b(c+d)\\
                        &=ac+ad+bc+bd 
         \end{align*}
      }&
      {
            \begin{align*}
               (2x+3)(3y-5)&=6xy-10x+9y-15
            \end{align*}
      }\\
   \end{longtable} 

\end{document}

结果是表格超出了右边距(见图)。代码有什么问题?

在此处输入图片描述

答案1

这是一个可能的解决方案,使用环境,将的xltabular功能带到,调整列间间距的值,改变对齐点:longtabletabularx

\documentclass{article}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}
\usepackage{longtable}
\usepackage{xltabular}
\usepackage{mathtools}

\title{Raccolta delle formule}
\author{Geppetto}
\date{}

\begin{document}
   \maketitle

\setlength{\tabcolsep}{4pt}
\setlength{\extrarowheight}{4pt}
\begin{xltabular}{\linewidth}{l|X|X}
      \Large Descrizione & \Large Formula & \Large Esempio\\
      \hline
      \endhead

      Prodotto di due polinomi
      & $ \begin{aligned}[t]
            (a&+b)(c+d) \\ & =a(c+d)+b(c+d)\\
                        &=ac+ad+bc+bd
         \end{aligned} $
      & $\begin{aligned}[t]
               &(2x +3)(3y-5)\\ & =6xy-10x+9y-15
            \end{aligned}$ \\
\end{xltabular}

\end{document} 

在此处输入图片描述

答案2

我发现了问题:列中的公式太宽,并且乳胶扩大了列的大小。

编辑 LaTeX 本身什么都不做,是你没有考虑到表格由什么组成。除了缩小公式范围外,请尝试以下前言:

\begin{longtable}{@{}
                 p{\dimexpr(\columnwidth)*33/100-\tabcolsep-(2\arrayrulewidth/3)\relax} | % First colum
                 p{\dimexpr(\columnwidth)*33/100-2\tabcolsep-(2\arrayrulewidth/3)\relax} |
                 p{\dimexpr(\columnwidth)*33/100-\tabcolsep-(2\arrayrulewidth/3)\relax}
                 @{}
     }

答案3

我推荐tabu(2011-2019),它还结合了longtabletabularx和其他表格功能。与上述相同的命令适用,仅在序言中有所更改:

\usepackage{tabu}
\begin{tabu} to \linewidth{l|X|X}
...
\end{tabu}

编辑:tabu现在仅发布紧急错误修复,并且存在长表和颜色问题,因此我不建议将其用于这些目的。

相关内容