tabular или tabularx: как выровнять первый столбец по верху?

tabular или tabularx: как выровнять первый столбец по верху?

В примере ниже я хотел бы, чтобы звезда была выровнена по самому верху (насколько это возможно). Возможно ли это и если да, то как это сделать?

Я ищу универсальное решение, поскольку я мог бы заменить интеграл другим содержимым, возможно, с большей высотой.

\documentclass{article}
\usepackage{amsmath}
\usepackage{tabularx}

\begin{document}
\begin{tabular}[t]{p{0mm}c}
$\star$ &
${\displaystyle \int_0^1 f(t) dt = 1}$
\end{tabular}
\end{document}

введите описание изображения здесь

решение1

ПОДХОД №1

Макрос \upstarсоздает строку только со звездочкой в ​​первом столбце, а затем выполняет искусственный сдвиг, чтобы разместить ее правильно относительно верхней части строки 2. Но в ваших входных данных она выглядит как часть строки 1.

\documentclass{article}
\usepackage{amsmath}
\usepackage{tabularx}
\newcommand\upstar{$\star$ \\[\dimexpr5pt-\normalbaselineskip]}
\begin{document}
\begin{tabular}[t]{p{0mm}c}
\upstar& ${\displaystyle \int_0^1 f(t) dt = 1}$
\end{tabular}
\end{document}

введите описание изображения здесь

ПОДХОД №2

Здесь я привожу \shiftdownмакрос, который может подойти для столбцов, не являющихся первыми:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tabularx}
\newcommand\shiftdown[1]{%
  \setbox0=\hbox{#1}%
  \raisebox{\dimexpr2pt-\ht0}{#1}
}
\begin{document}
\begin{tabular}[t]{p{0mm}c}
$\star$ &
\shiftdown{${\displaystyle \int_0^1 f(t) dt = 1}$}
\end{tabular}
\end{document}

введите описание изображения здесь

решение2

\documentclass{article}
\usepackage{amsmath,tabularx}
\def\RB#1{\raisebox{\dimexpr(-\height-\depth)/2}{#1}}

\begin{document}
\begin{tabular}{ll}
$\star$  & \RB{$\displaystyle \int_0^1 f(t) dt = 1$}
\end{tabular}
\end{document}

введите описание изображения здесь

Если вы хотите переместить звезду, то используйте \vphantomдля высоты интеграла. Тогда вам не нужны фиксированные значения для сдвига:

\documentclass{article}
\usepackage{amsmath}
\def\RBo#1{\raisebox{\dimexpr+\height+\depth}{#1}}

\begin{document}
\begin{tabular}{ll}
\RBo{$\star\vphantom{\int}$}  & $\displaystyle \int_0^1 f(t) dt = 1$
\end{tabular}
\end{document}

И, конечно же, с помощью package amsmathвы можете просто использовать:

$\displaystyle\sideset{^\star}{_0^1}\int f(t) dt = 1$

решение3

Это можно сделать либо с помощью хака (действительный интеграл в первом столбце, напечатанный белым цветом, с черной звездочкой в ​​качестве верхней границы), либо с помощью prescriptкоманды mathtools:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
 \usepackage{mathtools}
\usepackage{xcolor, tabularx}

\begin{document}

\begin{tabular}[t]{p{0mm}c}
$\color{white}\displaystyle\int^{\color{black}\star}$ &
$\displaystyle \int_0^1 f(t) dt = 1 $ \\[4ex]
 & $\displaystyle \prescript{\star\mkern-6mu}{}{\int_0^1} f(t) dt = 1$
\end{tabular}

\end{document} 

введите описание изображения здесь

Связанный контент