如何正确设置句间不间断空格?

如何正确设置句间不间断空格?

假设在文本的某处,我有以下两句话:

This is one sentence. Another sentence is this.

如果我们写“sentence.~Another”,空格就会太短。“sentence@.~Another”也是一样。

我怎样才能确保句号和“A”之间的线不会断开,但

  1. 句号和“A”之间的间距是正确的单词间距,包括其可拉伸性;
  2. LaTeX 能够对“句子”进行连字符连接,并在连字符处断行。“Another”也一样。

简而言之,我怎样才能得到一个像‘~’一样的领带,但它连接了一个句子的最后一个单词和下一个句子的第一个单词?

我猜应该\hspace*可以。比如

'This is one sentence.\hspace*{\StandardInterspace plus \StandardInterspacePlus minus \StandardInterspaceMinus}Another sentence is this.

只要对长度、和使用正确的\StandardInterspaceStandardInterspacePlus即可\StandardInterspaceMinus

这是正确的吗?如果正确,如何才能找出适合自己的 LaTeX 类和字体的正确值?(我想应该\StandardInterspace根据其中一个答案进行设置这里

答案1

在此处输入图片描述

使用普通空格,前缀为\nolinebreak{}

\documentclass{article}

\begin{document}

\hrule
\bigskip

\makebox[8cm][s]{This is one sentence. Another sentence is this.}

\makebox[8cm][s]{This is one sentence.~Another sentence is this.}

\makebox[8cm][s]{This is one sentence.\ Another sentence is this.}

\makebox[8cm][s]{This is one sentence.\nolinebreak{} Another sentence is this.}
\end{document}

该示例仅演示了句子空间,它实际上不能在框内换行。

答案2

(主动)~定义为给出\nobreakspace,进而是

\leavevmode\nobreak\ %

我使用 a%来强调最后一项是“control-space”。这是一个 TeX 原语,它做两件事:

  1. 它将空间因子重置为 1000;
  2. 它产生了一个空间。

以防\leavevmode万一您恰好~在段落开头使用;\nobreak是 的简写\penalty10000,禁止换行。

因此.~不是产生句末加宽空间(\nonfrenchspacing当然,当 有效时)。~首字母后的主要用法之一是:

D.~E.~Knuth

句号无论如何都不会是句子的结尾,但有些人使用缩写,例如“ie”,而后面没有逗号和换行符,这会很糟糕,应该编码为i.e.~something,因此在产生空格之前会重置空格因子(句号后为 3000)。

我不确定为什么要在句子结束后留一个不间断的空格,但现在很明显这~对工作不利。

定义

\newcommand{\st}{\nolinebreak\space}

对于这种罕见的情况。但在我看来,句末句号始终是换行的好地方。

\documentclass{article}

\newcommand{\st}{\nolinebreak\space}% sentence tie

\begin{document}

This is one sentence. Another sentence is this. (good)

This is one sentence.\st Another sentence is this. (good)

This is one sentence.~Another sentence is this. (bad)

\end{document}

在此处输入图片描述

或者直接\frenchspacing在序言中发出并忘记标点符号后老式的加宽空格,这样您就可以使用~

相关内容