I am wanting the ability to vertically align any cell within a table. This appears possible but only on a per column or row basis. At the moment I can horizontally align the contents of individual cells with the help of the \raggedleft and \centering commands. However, \multicolumn applies vertical alignment for the whole row and the longtabu environment can only specify the alignment type per column.

The following is an example of the table I want to create where both horizontal and vertical alignments need to be set for each cell instead of per row or column:


\newcolumntype{M}{m{\dimexpr 1\tabucolX+1\tabcolsep+\arrayrulewidth\relax}}
\newcolumntype{P}{p{\dimexpr 1\tabucolX+1\tabcolsep+\arrayrulewidth\relax}}
\newcolumntype{B}{b{\dimexpr 1\tabucolX+1\tabcolsep+\arrayrulewidth\relax}}



\begin{longtabu} to 150mm [l] {|X[l]|X[l]|X[l]|}
\multicolumn{1}{|P|}{ \lipsum[1]} & \multicolumn{1}{H|}{\centering H: Center, V:Center} & \multicolumn{1}{B|}{\raggedleft \multirow{1}{*}[-2\baselineskip]{H:Right, V:Bottom}} \tabularnewline
\multicolumn{1}{|P|}{\lipsum[1]} & \multicolumn{1}{P|}{H: Left, V:Top} & \multicolumn{1}{M|}{\centering H:Center, V:Center} \tabularnewline
\multicolumn{1}{|P|}{\lipsum[1]} & \multicolumn{1}{M|}{\raggedleft H: Right, V:Center} & \multicolumn{1}{B|}{H:Left, V:Bottom} \tabularnewline



Attempting the solutions presented in "Move tabular entry to bottom of row" won't work.

The first solution I believe simply adjusts the entire column by creating a new column type:


This doesn't help my problem where I need the vertical alignment applied to individual cells, not a whole column. Applying this column type to \multicolumn doesn't appear to work.

The second solution places a \baselineskip into the optional parameter of \multirow which works initially but seems to become vertically centred as soon as the cell becomes a certain height.

I have updated my example above to show how it breaks.


  • Sorry when I say "vertically align" I am not referring to the state of being vertically centred in the middle but the ability to be positioned vertically e.g. Top, Middle or Bottom. Commented Feb 16, 2014 at 23:47
  • You can use m or b columns from array package.
    – user11232
    Commented Feb 16, 2014 at 23:56
  • As I mention in my question I am looking to apply vertical positioning at the cell level instead of per column. For \multicolumn only one column-spec is allowed. Commented Feb 17, 2014 at 1:12
  • My recommendation: stay away from longtabu. The developer has already said that he is going to make some major changes and it is not going to be backward compatible. You can find more about this in this question: tex.stackexchange.com/questions/106452/… Commented Mar 6, 2014 at 11:06
  • David Carlisle's answer at tex.stackexchange.com/questions/166808/… can address this problem. Commented Apr 2, 2014 at 2:19

1 Answer 1


David Carlisle's answer doesn't appear to be working for me.


Works for me:

enter image description here






\smash{\raisebox{\dimexpr(\csname PDFSAVEe#1\endcsname sp-
                         \csname PDFSAVEb#1\endcsname sp)/2\relax}{\box0}}}
\smash{\raisebox{\dimexpr\csname PDFSAVEe#1\endcsname sp-
                         \csname PDFSAVEb#1\endcsname sp\relax}{\box0}}}

\expandafter\ifx\csname PDFSAVE#1\endcsname\relax
\expandafter\gdef\csname PDFSAVE#1\endcsname{0}%


\foo{ba}\lipsum*[1]\foo{ea} &
\zc{a}{\centering H: Center, V:Center} &
\zb{a}{\raggedleft H:Right, V:Bottom} \tabularnewline
\foo{bb}\lipsum*[1]\foo{eb} & 
{H: Left, V:Top} &
\zc{b}{\centering H:Center, V:Center} \tabularnewline
\foo{bc}\lipsum*[1]\foo{ec} &
\zc{c}{\raggedleft H: Right, V:Center} & 
\zb{c}{H:Left, V:Bottom} \tabularnewline

  • That quote... :) Commented Jun 7, 2014 at 10:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .