將表格條目移至行底部

將表格條目移至行底部

如何使最後一列文字位於行的底部?

在此輸入影像描述

也就是說,我希望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}ofnicematrix及其內建指令的解決方案\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 節點)。

上述程式碼的輸出

相關內容