Выровнять текст по нижнему краю ячейки таблицы

Выровнять текст по нижнему краю ячейки таблицы

Мне нужно создать оглавление в формате таблицы с переносом текста в заголовках тем. Номер страницы в настоящее время находится вверху каждой ячейки. В строках, где заголовок переносится, мне нужно, чтобы номер страницы был выровнен по низу. Вот мой код:

\begin{tabularx}{\linewidth}{ l X l }

  Figure & & Page \\

  1.1.1  &  test text text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  \dotfill &  10 \\
  1.1.2 & line \dotfill & 12 \\

\end{tabularx}

решение1

Это может быть решением, которое вы ищете, хотя оно немного неуклюжее. Вам нужно включить arrayпакет, чтобы получить опцию b{}для выравнивания таблицы.

\documentclass{article}
\usepackage{array}

\begin{document}

\begin{tabular}{b{0.1\linewidth}b{0.8\linewidth}p{0.1\linewidth}}

  Figure & & Page \\

  1.1.1 & test text text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  \dotfill & 10 \\
  1.1.2 & line \dotfill & 12 \\
  1.1.3  &  a lot of text text text text text text text text text text text text text text text text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  \dotfill &  15 \\

\end{tabular}

\end{document}

Все, что вам нужно сделать, это скомпилировать код выше и найти строки, где средний столбец находится на нескольких строках:

Первая компиляция

Затем вставьте \newlineпосле номера рисунка, чтобы он переместился на строку выше. В этом случае таблица будет выглядеть так:

\begin{tabular}{b{0.1\linewidth}b{0.8\linewidth}p{0.1\linewidth}}

  Figure & & Page \\

  1.1.1\newline & test text text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  \dotfill & 10 \\
  1.1.2 & line \dotfill & 12 \\
  1.1.3\newline\newline  &  a lot of text text text text text text text text text text text text text text text text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  \dotfill &  15 \\

\end{tabular}

И конечный результат:

Финал

решение2

таблица с номерами страниц

\documentclass{article}
\usepackage{tabularx}

\newcommand\DotsPage [1]{\dotfill\rlap{\kern2\tabcolsep #1}&}

\begin{document}
\begin{tabularx}{\linewidth}{ l X l }

  Figure & & Page \\

  1.1.1  &  test text text  text  text  text  text  text  text  text  text
  text  text  text  text  text  text  text  text\DotsPage{10}\\
  1.1.2 & line test text text  text  text  text  text  text  text  text  text
  text  text  text  text  text  text  text  text\DotsPage {12}\\
  1.1.3 & line for comparison\dotfill & 13 
\end{tabularx}
\end{document}

решение3

Такие вещи почти всегда лучше задавать в виде списка, чем в виде таблицы, здесь просто используется, enumerateно вам может понадобиться пользовательский формат списка ( enumitemпакет может помочь)

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

\documentclass{article}

\begin{document}
\def\Dotfill{{\def\hfill{\hskip4em plus 1fill}\dotfill}}



\begin{enumerate}

  \item[1.1.1] test text text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  text  \Dotfill  10 
  \item[1.1.2] line \Dotfill  12 
\end{enumerate}

\end{document}

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