我正在开发带有重音标记的西里尔文字的网页。要放置重音标记,我使用utf8字符U0301 (结合尖锐重音)。在我已经使用过的每一个编辑器和每一个与西里尔相关的网页上,我已经看到这个重音标记显示在文字中这个字符前面的字母上面。我的问题是,在我的页面上,这个字符显示在字母上面,字母放在文字的标记后面。更重要的是,这种不正确的行为只能在西里尔词上观察到。用通常的拉丁语正确地显示它。
我设置了每个与编码相关的标头。
编辑
这个问题似乎只出现在Firefox上(我使用13.0.1版本)。当我使用Chrome时,重音标记将被正确显示。
发布于 2012-07-15 13:39:51
根据对不同字体的实验,最好是在不同的平台上,或者在不同的浏览器上,选择一个合适的字体列表,用于文本的font-family
规则。您可以使用不同的字体设置在您最喜欢的文字处理程序(或编辑器)中测试字体;结果不一定与在web浏览器中相同,但通常相似。例如,卡利布里和阿里尔看上去还行,而衬线一侧的寒武纪也一样(新罗马时代的U+0301没有问题,但除非分辨率相当高,否则一般渲染得不好)。
还可以考虑使用一些合适的字体作为web字体(通过@font face
)。
这听起来很麻烦,但这确实是一种实用的方法。问题有三个方面:
我不知道为什么在Firefox上得到的结果与Chrome上的结果不同,除非您将字体留给默认设置,并且浏览器使用不同的默认值。
当U+0301与拉丁字母结合时,U+0301与西里尔字母组合失败的原因可能是完全不同的处理方法。浏览器可以(而且经常)将字母和组合符号的组合呈现为单个字形,对应于所谓的预组合字符。因此,如果浏览器看到ó
( o
是拉丁字母),它会将其内部映射到单个字符“ó”U+00F3,该字符包含在最常用的字体中。
作为一个排版细节,当以非常好的质量(我们通常买不起.)为目标时,像a,e,o,y这样的拉丁字母应该与相同文本中的西里尔字母(按形状)完全一样。这些设计在任何体面的字体中都是相同的。但不幸的是,当添加口音时,这种情况可能会发生变化。例如,在卡里布里语中,о́(西里尔语与急性语)的口音与ó(拉丁语为急性语)的口音不同。这是字体中的一个设计缺陷。(但在典型的复制文本大小中,这种差异几乎不明显。)
发布于 2012-07-15 12:14:49
可能与您在每个浏览器上设置的默认字体和/或浏览器本身的默认样式有关?我试过这款JS小提琴 --在带有时代色彩的火狐中,它的口音是完全一致的,但与Arial的搭配不错,但有点偏右。
另一方面,Chrome可以与Arial一起使用,但“时代”( Times )却非常向右移动。
您是否尝试过调整字体系列、线条高度、字体大小等以查看这是否会影响问题?
编辑:--另外,只需阅读关于宾州州立大学网站的建议
像Times和乔治亚这样的字体在Windows中包含西里尔字母,但在Macintosh上,它们可能只包含在苹果的"CY“Cyrillic字体中,比如"Times”。 .serifcyr {字体-家族:“时代CY",”时代新罗马“,.noserifcyr }.noserifcyr{字体-家族:”日内瓦CY","Helvetica CY","Arial",sans-serif }
发布于 2015-08-05 21:11:26
我使用过谷歌字体服务的字体机器人,它也有同样的问题--重音放置是错误的。
为了解决这个问题,我已经下载了这个字体(ttf版本)到我的电脑,安装,打开照片软管,并确保实际口音是正确的!然后我上传字体到fontsquirrel.com服务,并转换成我自己的网页字体,然后重音是固定的!除了上面的і字母。但是,这总比什么都没有好。
提示--如果您有几个字体权重,那么在fontsquirrel.com上选择expert.并检查样式链接--它将组成css,这样您将有一个具有不同权重的字体名。
https://stackoverflow.com/questions/11491642
复制相似问题