如何修复表格单元格的对齐方式?

如何修复表格单元格的对齐方式?

在尝试改进答案时另一个问题,我无法获得正确的水平对齐。对齐问题在第二列中很明显。它还显示为元素 16 和 12(或 26)与箭头的间距差异。为什么会发生这种情况?我该如何解决?

对齐不正确

\documentclass{standalone}

\usepackage{amsmath}
\usepackage{array}

    \newsavebox{\boxname}
    \newcolumntype{B}{@{}>{\begin{lrbox}{\boxname}}c%
                         <{\end{lrbox}{\fbox{\unhbox\boxname}}}}
    \newcommand{\dummy}{\phantom{01}}
    \newcommand{\lastelem}[1]{\multicolumn{1}{B}{#1}}

\begin{document}

\begin{tabular}{c @{ } B *2{ @{$\to$} B }}
    1 & \lastelem{\dummy}                                     \\
    2 & \dummy              & \lastelem{16}                   \\
    4 & \lastelem{\dummy}                                     \\
    5 & \dummy              & 12             & \lastelem{26}  \\
\end{tabular}

\end{document}

有趣的是,当我尝试时,问题就出现了,

\begin{tabular}{c}
    \lastelem{\dummy} \\
    \fbox{\dummy} \\
\end{tabular}

这会给出与上表相比“反向”的缩进。但是下面的方法可以正常工作。

\begin{tabular}{B}
    \lastelem{\dummy} \\
    \dummy \\
\end{tabular}

其他案例的输出,

另一个例子

答案1

你需要保持你的@表情大小不变,在不同的点上,你没有{}单词空间{ }和箭头{$\to$}

在此处输入图片描述

\documentclass{standalone}

\usepackage{amsmath}
\usepackage{array}

    \newsavebox{\boxname}
    \newcolumntype{B}{@{}>{\begin{lrbox}{\boxname}}c%
                         <{\end{lrbox}{\fbox{\unhbox\boxname}}}}
    \newcommand{\dummy}{\phantom{01}}
    \newcommand{\lastelem}[1]{\multicolumn{1}{B@{$\phantom{\to}$}}{#1}\ignorespaces}

\begin{document}

\begin{tabular}{c @{} B *2{ @{$\to$} B }}
    1 & \lastelem{\dummy}                                     \\
    2 & \dummy              & \lastelem{16}                   \\
    4 & \lastelem{\dummy}                                     \\
    5 & \dummy              & 12             & \lastelem{26}  \\
\end{tabular}

\end{document}

相关内容