Переместить табличную запись в конец строки

Переместить табличную запись в конец строки

Как сделать так, чтобы текст последнего столбца оказался внизу строки?

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

То есть я хочу, XXXчтобы он был выровнен с линией, содержащей стрелку.

Я пробовал поиграться с \multirow{3}{-3ex}{XXX}, но, очевидно, я не понимаю \multirow.

Код:

\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}

\begin{document}
    \begin{tabularx}{\linewidth}[t]{l X p{1.3cm}}
        & Header & Title \\\cmidrule(lr){2-2}\cmidrule(lr){3-3}
        a. & Some text text text text text text text text text text text text text text 
            text text text text text text text text text text 
            Want XXX on this line $\rightarrow$%
         & XXX\\
    \end{tabularx}
\end{document}

решение1

(Отредактированный ответ, с использованием другого механизма)

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

\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}

\makeatletter
\def\foo#1{\leavevmode
\expandafter\ifx\csname PDFSAVE#1\endcsname\relax
\expandafter\gdef\csname PDFSAVE#1\endcsname{0sp}%
\fi
\pdfsavepos\write\@auxout{\gdef\string\PDFSAVE#1{\the\pdflastypos}}}
\makeatother
\begin{document}
    \noindent
    \begin{tabularx}{\linewidth}[t]{l X p{1.3cm}}
        & Header & Title \\\cmidrule(lr){2-2}\cmidrule(lr){3-3}
        a. & \foo{a}Some text text text text text text text text text text text text text text 
            text text text text text text text text text text 
            Want XXX on this line $\rightarrow$\foo{b}%
         & \smash{\raisebox{\dimexpr\PDFSAVEb sp-\PDFSAVEa sp\relax}{XXX}}\\
    \end{tabularx}
\end{document}

Исходный ответ переместил базовую линию столбца X вниз с помощью

\renewcommand\tabularxcolumn[1]{b{#1}}

Но это влияет на все Xстолбцы, а также делает a.выравнивание по нижнему ряду. Последняя проблема может быть исправлена ​​перемещением a.во второй столбец (с висячим отступом)

Если вы хотите изменить выравнивание только некоторых столбцов X в таблице, то вы можете использовать:

>{\begin{minipage}[b]{\hsize}}X<{\end{minipage}} :-) 

решение2

Если вы хотите поиграться с \multirow, вы можете использовать второй необязательный аргумент, который называется «fixup» — длина для точной настройки положения.

В вашем случае это должно быть-2\baselineskip

МВЭ:

\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}

\begin{document}
    \noindent
    \begin{tabularx}{\linewidth}[t]{l X p{1.3cm}}
        & Header & Title \\\cmidrule(lr){2-2}\cmidrule(lr){3-3}
        a. & Some text text text text text text text text text text text text text text
            text text text text text text text text text text
            Want XXX on this line $\rightarrow$%
         & \multirow{1}{*}[-2\baselineskip]{XXX}\\
    \end{tabularx}
\end{document} 

Выход:

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

решение3

В зависимости от типа содержимого, связанного с XXX, ниже представлен простой способ выравнивания по нижнему краю, не требующий знания предыдущих записей столбцов:

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

\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}

\noindent
\begin{tabularx}{\linewidth}[t]{l X p{1.3cm}}
  & Header & Title \\\cmidrule(lr){2-2}\cmidrule(lr){3-3}
  a. & Some text text text text text text text text text text text text text text 
      text text text text text text text text text text 
      Want XXX on this line $\rightarrow$
   & \\[-\normalbaselineskip] && XXX
\end{tabularx}
\end{document}

Идея: разместить XXXна отдельной строке, но наложить на нижнюю часть предыдущей строки с помощью \\[-\normalbaselineskip].

решение4

Вот решение с использованием {NiceTabularX}of nicematrixи его встроенной команды \Block.

\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}

\begin{document}
\begin{NiceTabularX}{\linewidth}[t]{l X p{1.3cm}}
    & Header & Title \\\cmidrule(lr){2-2}\cmidrule(lr){3-3}
    a. & Some text text text text text text text text text text text text text text 
        text text text text text text text text text text 
        Want XXX on this line $\rightarrow$%
     & \Block[B]{}{XXX \strut} 
\end{NiceTabularX}
\end{document}

Вам нужно несколько компиляций (т.к. nicematrixпод капотом используются узлы PGF/TikZ).

Вывод кода выше

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