Мне нужно создать оглавление в формате таблицы с переносом текста в заголовках тем. Номер страницы в настоящее время находится вверху каждой ячейки. В строках, где заголовок переносится, мне нужно, чтобы номер страницы был выровнен по низу. Вот мой код:
\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}