每当我在平方根内有分数时,平方根符号就会下降到线下并截取下一行的内容。我认为 savetrees 包可能是导致问题的原因。
平均能量损失
\[
\begin{array}{ll}
\sqrt{\frac{1}{x}} & \\
intercepted text & \\
\end{array}
\]
这些是我收到的警告
Typesetting problem in main.tex (line 36): Underfull \hbox (badness 10000) in paragraph at lines 36--41
Typesetting problem in main.tex (line 55): Overfull \hbox (16.36372pt too wide) in paragraph at lines 55--68
Typesetting problem in main.tex (line 53): Overfull \hbox (5.0pt too wide) in paragraph at lines 53--69
Typesetting problem in main.tex (line 87): Overfull \hbox (77.67256pt too wide) in paragraph at lines 87--97
Typesetting problem in main.tex: Overfull \vbox (27.9158pt too high) has occurred while \output is active []
答案1
在array
环境中,LaTeX 处于所谓的内联数学模式,这意味着(除其他事项外)行之间的垂直空间被刻意保持在最小。(顺便说一句,我无法仅根据您提供的代码片段复制您提供的屏幕截图的外观。当我将代码片段扩展为相当简约的可编译 LaTeX 文档时,平方根符号的底部实际上并没有与下一行的材料相交:TeX 添加了一些紧急垂直空间以防止这种情况发生。您(或序言中加载的包)是否摆弄过控制插入紧急垂直拉伸的参数?)
为了减少这种(近)交集的出现,您可以手动在包含术语 的行中添加一些垂直空间\sqrt{\frac{1}{x}}
。或者,为了考虑到 LaTeX 在 中处于内联数学模式array
,您可以选择切换到“内联分数外观”,即写入\sqrt{1/x}
而不是\sqrt{\frac{1}{x}}
。如果amsmath
已加载包,您可以通过写入 进一步压缩表达式\sqrt{\smash[b]{1/x}}
;该[b]
部分告诉 TeX 在决定平方根符号底部应设置多低时不要考虑任何低于基线的材料。
\documentclass{article}
\usepackage{amsmath} % for \text and \smash[b] macros
\begin{document}
\[
\begin{array}{lll}
\sqrt{\frac{1}{x}} & \sqrt{1/x} & \sqrt{\smash[b]{1/x}} \\
\text{Almost intersects} &\text{Doesn't intersect} & \text{Doesn't intersect} \\
\end{array}
\]
\end{document}
答案2
我提出了一个解决方案,cellspace
它允许您定义行顶部和上一行底部之间的最小垂直间距,以及行底部和下一行顶部之间的对称间距。对于表格,您所要做的就是在列限定符前加上字母 S(或 C,如果您加载siunitx
)。
对于数学,情况稍微复杂一些:首先,您必须选择选项math
;然后对于每一列,您必须要求进入数学模式。出于某种原因,S 限定符会退出数学模式。因此,我定义了一种新的列类型以节省一些输入。下面的代码说明了这一点。
请注意,基于增加值的解决方案会\arraystretch
导致行内容不垂直居中。
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, array}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage[math]{cellspace}
\setlength{\cellspacetoplimit}{4pt}
\setlength{\cellspacebottomlimit}{4pt}
\newcolumntype{M}{ >{$}Sl <{$}}
\begin{document}
\[ \begin{array}{ll}
\hline
\sqrt{\dfrac{1}{x}} & \\
\hline\addlinespace
\text{intercepted text} & \\
\hline
\end{array}
\qquad
\begin{array}{ MM}
\hline
\sqrt{\dfrac{1}{x}} & \\
\hline
\text{intercepted text} & \\
\hline
\end{array} \]
\end{document}