在法语中,排版要求我们在各个位置(“Commaça!”)使用窄 不间断空间(U + 202F)。
显然,Windows上的每个浏览器均不支持该功能,而是显示奇怪的字符。这适用于Mac OS X和Linux上的大多数浏览器。
有谁知道如何使Windows浏览器正确呈现它?
(我假设这是Windows错误,而不是浏览器错误,因为Firefox和Safari都支持该错误,只要它不在Windows上即可)。
嗯...不如果唯一的问题是 
(U + 2009)仍在中断,我将更喜欢使用:
纠正断裂行为。为什么?
因为法式罚款实际上使用的是cadratin的六分之一到四分之一之间的几乎固定的宽度(标准空间为0.5 ca时为0.166 ca到0.25 ca)。宽度的选择取决于现有方法在给定字体定义的字形中。
字体用于调整其窄空间的宽度(U + 2009):如果这些字体是由法国打印机(用于渲染法语)制成的,则方法(或单词中字母之间的间隙)比为英语设计的字体要窄。 :这是因为法语文本通常比同等的英语文本包含更多的字母(例如打印的圣经),并且为避免增加打印的页数,法语字体的字形被缩小了一些,并且方法减少了;为了弥补这一减少,法国增加了罚款额。 (通常说U + 2009是cadratin的五分之一,即0.2ca。但这是错误的,因为该值只是一个合理的中值,应根据其设计有效地调整字体)。
在带有英文字体的英语中,字符间的间距已经足够大,足以证明以下事实:在大多数双标点符号附近的文本中使用了不占空间的空格。但是,如果法语是使用英文字体(具有较大的字符间距)来呈现的,则罚款应更窄,并应减少到1/6卡德拉丁。
是的,根据字体,U + 2009(SGML存储库中的 
)可以略微调整。
此外,它可能是部分对齐的(使用完全对齐时,不仅普通的单词间空格的宽度增加,而且字符与普通或“精细”空格之间的所有间隙也增加了(其他四边形空格也是如此)不得调整其宽度:它们确实是固定的。)
当呈现的文档的页面布局已经预先计算(使用已知的字体和精确的度量)时,精简空间(U + 2009)已经是您想要的(因为您不必担心中断行为)。
不幸的是,Unicode忘记为这些四边形空间U + 2000..U + 2006(以及瘦空间U + 2009)分配了断行属性中的不中断行为。
Unicode纠正它的唯一方法(仅适用于纯文本文档)是在Unicode 5.1中添加另一个字符,即U + 202F(NARROW NON-BREAKING SPACE),该字符后来被赋予SGML符号名称“nnbsp”,字符引用(但是此命名字符实体到U + 202F的映射不是任何HTML或XML标准的一部分,因此也不应使用该命名实体,除非您的文档在其嵌入式DTD中明确定义了它!)
但不幸的是,大多数浏览器都忘记了应用此附加功能以及为什么需要它:他们认为字符应为字体,但事实并非如此。
所有浏览器都应将U + 202F视为不间断的(即使不知道其内部UCD副本中的字符也是如此)。
但是,浏览器不应该依赖于字体中定义了U + 202F的事实,而是,每当未将U + 202F映射为当前字体时,浏览器就应在渲染时提供U + 2009的后备(细空间)。 ,但是U + 2009映射为相同的字体(通常是许多字体)。
因此,这是HTML渲染器(即浏览器)中的问题;我还认为,这不仅是字体问题,而且如果浏览器不提供空白的后备功能,那实际上是浏览器的BUG(而不是错误或字体限制)。当然,所有新字体都应将U + 202F映射到与U + 2009相同的字形。
鉴于薄字体(U + 2009或
 
)在许多字体中都得到了很好的支持,并且具有正确的宽度,以使用法文打印度量标准制作的字体呈现法文文本,或呈现法文打印度量标准制作的英文文本,因此每次没有狭窄的不间断空间时,应该真正使用正确的后备!
您只需使用U + 2009,并使用CSS的“white-space:nowrap”使其不间断,就可以完美地模拟HTML中的U + 202F所需的行为。总是比更改字体大小来显示伪半空格要好(因为这对于许多仍然太大的字体来说是不正确的,并且因为在某些文本范围内无法正常工作)具有彩色背景:更改字体大小会修改行高)。
因此,请在HTML或SVG文档中使用以下代码(仅对纯文本文档保留U + 202F):
您可以将该序列保存在可重用的模板中,例如,可以在MediaWiki中将其命名为
Template:nnbsp
,以便将其作为
{{nnbsp}}
包含在页面中。
请注意,还是最好将符号空间象征性地引用为
 
,而不是像
 
那样强制使用确切的Unicode代码点:渲染器可以重新命名命名的实体,也可以根据用户的喜好将其映射到另一个工作的空白。
请注意,MS字实际上使用U + 2009而不是U + 202F来表示自己的罚款。鉴于Word文档具有预先计算的布局,并且考虑到MS-Word在计算页面布局时在本地强制执行不间断的行为,因此是正确的。 Word文档不是纯文本文档。
渲染示例(使用背景颜色来显示行高未修改,但是不幸的是,此站点不允许设置背景颜色,但此处的<code>
部分使用等宽字体):
Exemple de « fine » insécable française correctement codée !
不含的相同,但<code>
容器不显示背景色,但使用正常的比例字体,因此稀疏空间有效地呈现为Thin:
«fine fr»不可侵犯的法国菜;纠正codée!
使用 
的示例(大多数字体通常不支持NNBSP,但是最终可能会与您当前的浏览器以及系统上安装的字体(例如DejaVu Sans)一起使用:
善良的法国式面包的典范;纠正codée!
使用 
的示例(CADRATIN的六分之一可能有效,但对于您的字体而言可能太窄了,可能没有不间断的属性):
不可抗拒的法语“fine fr”例子;纠正codée! (嗯...不是真的)
使用
(几乎总是太大)的示例:
不可侵犯的法国菜;纠正codée! (嗯...不是真的)
我是一名优秀的程序员,十分优秀!