Offset a symbol without changing layout

You can use \smash and \raisebox:

enter image description here

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}

Result

Tags:

Positioning