使几个 ​​tabularx 环境对应的列内容齐平

使几个 ​​tabularx 环境对应的列内容齐平

我目前的情况是,似乎最好使用多个tabularx环境来假装一个环境。但我希望它们最右侧列的内容彼此对齐。也就是说,有没有办法调整下面的代码,以便在单词“Yessir”、“Yessirino”和“Ya-huh”中自动选择宽度最大的单词(即“Yessirino”)来为三个环境中最右侧列建立一个共同的宽度tabularx

\documentclass{article}
\usepackage{tabularx}
\usepackage{showframe}

\begin{document}

\centering

\begin{tabularx}{\linewidth}{r >$r<$ @{} >{\raggedright${}}X<{$} l}

Yes & Yes & Yes & Yessir

\end{tabularx}

\begin{tabularx}{\linewidth}{r >$r<$ @{} >{\raggedright${}}X<{$} l}

Yes & Yes & Yes & Yessirino

\end{tabularx}

\begin{tabularx}{\linewidth}{r >$r<$ @{} >{\raggedright${}}X<{$} l}

Yes & Yes & Yes & Ya-huh

\end{tabularx}

\end{document}

(注:如果你想了解我为什么想使用多个tabularx environments to feign a single one, see David Carlisle's answer to a previous question of mine at https://tex.stackexchange.com/a/693585/277990。然而,这可能不是我的问题的关键。)

答案1

您是否遵循以下做法:

在此处输入图片描述

在最后一列前添加了垂直线,以便更好地显示所有表格中最后一列的宽度相等。在实际文档中,您可以将其删除。

\documentclass{article}
\usepackage{tabularx}
\newlength\colwidth
\usepackage{showframe}

\begin{document}

    \begingroup
\centering
\settowidth\colwidth{Yessirino} % <--- select the longest text in the last columns
\begin{tabularx}{\linewidth}{r >{$}r<{$} @{} >{\raggedright${}}X<{$} | p{\colwidth}}
Yes & Yes & Yes & Yessir
\end{tabularx}

\begin{tabularx}{\linewidth}{r >{$}r<{$} @{} >{\raggedright${}}X<{$} | p{\colwidth}}
Yes & Yes & Yes & Yessirino
\end{tabularx}

\begin{tabularx}{\linewidth}{r >{$}r<{$} @{} >{\raggedright${}}X<{$} | p{\colwidth}}
Yes & Yes & Yes & Ya-huh
\end{tabularx}
    \endgroup

\end{document}

相关内容