我\makebox
只需传递[r]
,但我该如何在 latex3 中做到这一点?无论我使用填充还是齐平/参差不齐等,内容都保持左对齐。我怀疑更新后的宽度不会调整内容(如果我之前设置了它,更新内容似乎会重新计算宽度)。
\documentclass{article}
\ExplSyntaxOn
\NewDocumentCommand{\test}{m m}
{
\dim_zero_new:N \l_width_dim
\dim_set:Nn \l_width_dim { #1 }
\meide_test:nnn { \l_tmpa_box } { \l_width_dim } { #2 }
\box_use:N \l_tmpa_box
}
\cs_new_protected:Npn \meide_test:nnn #1#2#3
{
\box_clear_new:N {#1}
\hbox_set:Nn {#1} { \hfill #3 } % also tried dotfill/flushright/raggedleft etc
\box_set_wd:Nn {#1} {#2}
}
\ExplSyntaxOff
\begin{document}
result should be aligned to the right: (\test{3em}{test})
\end{document}
答案1
\makebox
需要一个宽度,以便对齐有一个大小来对齐,为此你需要\hbox_to_wd:nn
或如果设置一个寄存器,\hbox_set_to_wd:Nnn