我一直在使用以下模式来允许 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
容易断裂。