文字始终位于右侧

文字始终位于右侧

我正在尝试创建一个宏,它总是将文本放在行右侧的参数中,然后该行应该结束。

例如:

Left-Text \mymacro{Right-Text} 

应该在左边有文本,然后当文本完成时$\box$应该放在右边,但在同一行上(只要适合)。

我努力了

\newcommand{\mymacro}[1]{\hfill \mbox{#1}}

只要右文本适合左文本的最后一行,就可以正常工作。

但是,如果右侧文本移动到新行,那么它会出现在左侧。

例如:

\documentclass{amsart}
\begin{document}
Doesn't work 

Left Text 0123456789 Left Text 0123456789 Left Text 0123456789
\mymacro{Right Text} 

Works

Left Text 0123456789 Left Text 0123456789 Left Text 0123456789 Left Text 0123456789
\mymacro{Right Text} 

Works

Left Text 0123456789 Left Text 0123456789
\mymacro{Right Text} 

\end{document}

答案1

星号形式\hspace可避免在新行开始时被取消:

\newcommand*{\mymacro}[1]{\hspace*{\fill}\mbox{#1}\penalty-9999\relax}

惩罚允许换行,但是\hbox如果段落在 之后结束,它不会强制换行(-10000)以避免出现未满警告\mymacro

相关内容