我正在使用某个符号,我想将其向下移动而不影响它的布局(更改周围标记的位置):
测试用例是:
$\begin{array}{ccc}
a & b & c\\
a & b & e\\
\end{array}$
我想将 c 向下移动到 e 的正上方,这样 c 的底部就会接触到 e 的顶部,甚至与 e 的顶部重叠,而不会对布局产生任何影响(c 除外)。除了 c 的变化方式外,这两个矩阵看起来应该完全相同。
(答案应该相对通用,因为以上只是一个测试用例)
答案1
您可以使用\smash
和\raisebox
:
笔记:
- 添加它们
\hlines
是为了能够比较前后情况。 - 用于
\raisebox
降低所需特性,而 用于\smash
确保环境的其余部分不受影响。
代码:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\begin{array}{ccc}\hline
a & b & c\\
a & b & e\\\hline
\end{array}$
$\begin{array}{ccc}\hline
a & b & \smash{\raisebox{-1.75ex}{c}}\\
a & b & e\\\hline
\end{array}$
\end{document}
答案2
嵌套array
将 放在c
上方e
。这样可以避免c
和e
在外部位于不同的行上array
,并且定位变得独立于其他单元格的内容,这可能会增加行距。内部array
需要b
将 放在e
基线上,请参阅 Peter Grill 的评论。
另一个技巧是\arraystretch
有意义地使用0
。然后使用环境插入的无效高度和深度重置支柱array
。
根据问题的要求,\smash
使的高度(和深度)无效c
。
\documentclass{article}
\begin{document}
$\begin{array}{ccc}
a & b & \\
a & b &
\renewcommand*{\arraystretch}{0}%
\begin{array}[b]{@{}c@{}}\smash{c}\\e\end{array}\\
\end{array}$
\end{document}