创建表格时,Latex 有时不能很好地适应行高,导致内容与边框相交,如下所示:
请注意,第一行太短,而第二行看起来不错。
这是由以下代码生成的:
\begin{tabular} { | c | c | }
\hline
$\left(\frac{1}{2},\frac{1}{2}\right)$ & $(1,1)$ \\ \hline
$(1,1)$ & $\left(\frac{1}{1+c},\frac{1}{1+c}\right)$ \\ \hline
\end{tabular}
关于如何在没有明确命令的情况下让 Latex 为行分配足够的空间,有什么想法吗?
也许问题不在于表格,而在于括号,因此解决这个问题(使第一个单元格内容周围的括号更大)也会有所帮助。
答案1
您有三个主要解决方案:
- 使用
cellspace
包,它定义了minimal
单元格内容与上方或下方单元格之间的垂直间距(\cellspacetoplimit
和\cellspacebottomlimit
)。您必须在列说明符前加上字母前缀S
,或者C
如果您使用siunitx
。 - 使用
makecell
包和命令对\setcellgapes{some length}
(在序言中)和\setcellgapes
(针对特定表格) - 使用
booktabs
包及其toprule
、\(c)midrule
和\bottomrule
命令,在它们周围添加一些垂直(可调整)间距。在这种情况下没有垂直规则。
这是包含您特定代码的演示。请参阅软件包文档中的详细信息:
\documentclass{article}
\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\usepackage{makecell}
\setcellgapes{4pt}
\usepackage{booktabs}
\begin{document}
\begin{tabular} { | c | c | }
\hline
$\left(\frac{1}{2},\frac{1}{2}\right)$ & $(1,1)$ \\ \hline
$(1,1)$ & $\left(\frac{1}{1+c},\frac{1}{1+c}\right)$ \\ \hline
\end{tabular}
\qquad
\begin{tabular} { | Sc | Sc | }
\hline
$\left(\frac{1}{2},\frac{1}{2}\right)$ & $(1,1)$ \\
\hline
$(1,1)$ & $\left(\frac{1}{1+c},\frac{1}{1+c}\right)$ \\
\hline
\end{tabular}
\qquad
{\makegapedcells\begin{tabular} { | c | c | }
\hline
$\left(\frac{1}{2},\frac{1}{2}\right)$ & $(1,1)$ \\ \hline
$(1,1)$ & $\left(\frac{1}{1+c},\frac{1}{1+c}\right)$ \\ \hline
\end{tabular}}
\vskip1cm
\begin{tabular} {cc}
\toprule
$\left(\frac{1}{2},\frac{1}{2}\right)$ & $(1,1)$ \\
\midrule
$(1,1)$ & $\left(\frac{1}{1+c},\frac{1}{1+c}\right)$ \\
\bottomrule
\end{tabular}
\end{document}
答案2
这是一个巧妙的技巧。我比 \arraystretch 更喜欢这个结果。
\documentclass{article}
\begin{document}
\fboxrule=0pt
\begin{tabular} { | c | c | }
\hline
\fbox{$\left(\frac{1}{2},\frac{1}{2}\right)$} & $(1,1)$ \\ \hline
$(1,1)$ & \fbox{$\left(\frac{1}{1+c},\frac{1}{1+c}\right)$} \\ \hline
\end{tabular}
\medskip
\end{document}