用其他文本填充 \phantom 创建的空间

用其他文本填充 \phantom 创建的空间

我正在寻找一个我很确定以前使用过但我记不起来的命令(我确实搜索过它):

我想创建一定长度的(水平)空间,例如使用 创建\phantom{text},其中包含一些其他(较短)文本。它应该只是填充替换文本所到达的空白处,即它不需要拉伸来填充整个空间。

我希望我已经充分解释了这一点,因为如果不知道答案的话,提供 MWE 是很困难的......

答案1

您可以将短文本放在零宽度的框中,然后按如下方式放置幻像

\makebox[0pt][l]{short}\phantom{my long text}

示例输出

\documentclass{article}

\begin{document}

XX\makebox[0pt][l]{short}\phantom{my long text}XX

XXmy long textXX

\end{document}

答案2

有了这些calc包,你就可以简单地说

\makebox[\widthof{my long text}][l]{short}

个人命令似乎是合适的:

\documentclass{article}
\usepackage{calc}

\newcommand{\textover}[3][l]{%
 % #1 is the alignment, default l
 % #2 is the text to be printed
 % #3 is the text for setting the width
 \makebox[\widthof{#3}][#1]{#2}%
 }

\begin{document}

XXmy long textXX

XX\textover{short}{my long text}XX

XX\textover[c]{short}{my long text}XX

XX\textover[r]{short}{my long text}XX

XX\textover[s]{s h o r t}{my long text}XX

\end{document}

在此处输入图片描述

答案3

如果只是一种用途,我不会费心去定义:

XXmy long textXX

XX\rlap{short}\phantom{my long text}XX

示例代码的输出

当然,它使用“普通”命令,而不是乳胶。如果您真的愿意,它可以很容易地变成宏,尽管只是针对“简单”的情况。

相关内容