Make different font sizes in a table align at top, not bottom

I have a situation similar as to this MWE:

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{table}
\begin{tiny}
\begin{tabularx}{\textwidth}{|>{\normalsize}X|X|X|}
\hline
Foo & Bar & Baz\\
\hline
\end{tabularx}
\end{tiny}
\end{table}
\end{document}

I.e., I have a first column with a larger fontsize than the others.

The text is vertically aligned along the baseline, which leads to somewhat ugly whitespace at the top of the table cells. (In my real document, those cells hold multiple lines of text, which makes the effect even more ugly.)

How do I make the text align so that the normalsize and tiny cells have the same whitespace from the top of the table cell?

Google led me to raisebox, with which I did some experiments but somehow couldn’t get a satisfactory result…

Solutions Collecting From Web of "Make different font sizes in a table align at top, not bottom"

Inserting zero vertical space helps with aligning at the top:

\newcolumntype{V}{>{\vspace{0pt}}X}

Your complete example, with also \Huge text to see the effect:

\documentclass{article}
\usepackage{tabularx}
\newcolumntype{V}{>{\vspace{0pt}}X}
\begin{document}
\begin{table}
\tiny
\begin{tabularx}{\textwidth}{|>{\normalsize}V|V|>{\Huge}V|}
\hline
Foo & Bar & Baz\\
\hline
\end{tabularx}
\end{table}
\end{document}

vertically top aligned cells

You could give the tabu package a try.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tabu}

\setlength{\extrarowsep}{6pt}

\begin{document}
  \begin{table}[!ht]
    \tiny
    \begin{tabu} to \textwidth {|>{\normalsize}X[m]|X[m]|X[m]|}\hline
      Foo & Bar & Baz \\\hline
    \end{tabu}
  \end{table}
\end{document}

The package is not perfect (especially not its manual), but I think it is a good start.

\documentclass{article}
\usepackage{tabularx,lipsum}
\begin{document}
\begin{table}
\tiny
\begin{tabularx}{\textwidth}{
 |>{\normalsize\hrule height0pt\kern-2pt}X
 |>{\hrule height0pt\kern-2pt}X
 |>{\hrule height0pt\kern-2pt}X|}
\hline
Foo & \lipsum*[2] & \lipsum*[3]\\
\hline
\end{tabularx}
\end{table}
\end{document}

Adjust the dimension after the \kern command until you’re satisfied. The trick is to make the reference point of the cells the upper corner with the phantom rule.