如果在换行符处,则使添加的 hspace 消失

如果在换行符处,则使添加的 hspace 消失

考虑以下示例

\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}

在此处输入图片描述

在此处输入图片描述

相关内容