在尝试改进答案时另一个问题,我无法获得正确的水平对齐。对齐问题在第二列中很明显。它还显示为元素 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}