Offset a symbol without changing layout
You can use \smash
and \raisebox
:
Notes:
- The
\hlines
were added so as to be able to compare the before and after. - The
\raisebox
is used to lower the desired character, and the\smash
is used to ensure that the remainder of the environment is not affected by it.
Code:
\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}
A nested array
puts a c
over e
. This avoids that c
and e
are on different lines in the outer array
and the positioning becomes independent from the contents of the other cells that might increase the distances of the rows. The inner array
needs b
to put the e
on the baseline, see Peter Grill's comment.
Another trick is using \arraystretch
with meaning 0
. Then the struts are reset with nullified heights and depths that are inserted by environment array
.
As requested in the question, \smash
nullifies the height (and depth) of 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}