![如果在换行符处,则使添加的 hspace 消失](https://linux22.com/image/307951/%E5%A6%82%E6%9E%9C%E5%9C%A8%E6%8D%A2%E8%A1%8C%E7%AC%A6%E5%A4%84%EF%BC%8C%E5%88%99%E4%BD%BF%E6%B7%BB%E5%8A%A0%E7%9A%84%20hspace%20%E6%B6%88%E5%A4%B1.png)
考虑以下示例
\documentclass[a4paper]{memoir}
\pagestyle{showlocs}
\usepackage{amsmath,amssymb}
\begin{document}
\hspace*{8cm} text text text $\{ x\in X \, \vert \, \allowbreak x > 0\}$
\hspace*{8cm} text text text $\{ x\in X \, \vert \allowbreak x > 0\}$
\end{document}
正如我们在第一个例子中看到的,\,
在之后仍然存在\vert
,并且\vert
看起来从右侧略微缩进。
有没有一种方法,我们可以使用,这样\,
只有当换行符不是紧随其后?
我一直尝试使用 \discretionary{}{}{\,}
但失败了。
有任何想法吗?
答案1
在 之后添加细空格\allowbreak
不会将其粘在行尾,而会将其吸收在行首。当它位于行中间时,它会明显地出现。在我的 MWE 的第 3 段中,我将其显示在行中间( 之后有细空格\vert
),以及行尾( 被\,
吸收在下一行的开头)。
作为参考,前两段来自您的 MWE。在第一段中,行末的细空格没有被吸收。在第二段中,后面的细空格\vert
被完全省略了。
正如 egreg 在他的评论中指出的那样,\mid
他建议用 来代替\,\vert\,
。当然,添加的空格与细空格不同。为了进行比较,我在第 4 段中\mid
展示了 的用法\mid
\documentclass[a4paper]{memoir}
\pagestyle{showlocs}
\usepackage{amsmath,amssymb}
\begin{document}
\hspace*{8cm} text text text $\{ x\in X \, \vert \, \allowbreak x > 0\}$
\hspace*{8cm} text text text $\{ x\in X \, \vert \allowbreak x > 0\}$
\makebox[8cm]{$\{ x\in X \, \vert \allowbreak \, x > 0\}$}
text text text $\{ x\in X \, \vert \allowbreak \, x > 0\}$
\end{document}