\hspace 创建的空间何时会扩大?

\hspace 创建的空间何时会扩大?

我一直在使用以下模式来允许 MM/DD/YYYY 格式的日期在每个斜线之后被打破。

01/\hspace{0pt}/01\hspace{0pt}/2001

我从来不想在斜线后有多余的空格;我希望它被翻译成换行符或什么都没有(我相信这相当于 MS Word 中应用的“无宽度可选换行符”)。但是TeX系统是否允许插入额外的空格?我是否应该使用不同的模式来允许可选的换行符?

如果我输入日期为

01/01/2001

有时候,其渲染形式会违反边距。

答案1

如果周围的框没有足够的内容来填充其宽度,则具有任何拉伸量的跳过(水平空间)都会过度拉伸,这就是臭名昭著的“水平框未满”警告。但是,如您的示例所示,没有拉伸或收缩组件的跳过永远不会拉伸。

也就是说,你不想在这里留有空格,所以使用\hspace仅仅允许换行作为副作用并不是最好的标记,你可以使用

01/\linebreak[0]01

添加 0 的惩罚,允许,但不鼓励或阻止中断,或使用提供的宏

01\slash 01

它使用与明确连字符相同的惩罚,在大多数类别中,明确连字符允许但稍微不鼓励在那里中断。

或者你可以使用url包和

 \DeclareUrlCommand\mydate{\urlstyle{relax}}
 \mydate{01/01/2017}

因为该包允许换行/relax只是说不要对切换字体做任何操作)

答案2

尝试这个: 01/\penalty0{}01/\penalty0{}2001

\penalty0容易断裂。

相关内容