我尝试使用 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
功能带到,调整列间间距的值,改变对齐点:longtable
tabularx
\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
我推荐(2011-2019),它还结合了tabu
longtable
、tabularx
和其他表格功能。与上述相同的命令适用,仅在序言中有所更改:
\usepackage{tabu}
\begin{tabu} to \linewidth{l|X|X}
...
\end{tabu}
编辑:tabu
现在仅发布紧急错误修复,并且存在长表和颜色问题,因此我不建议将其用于这些目的。