蒙古青年论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 451|回复: 4

蒙古文名义字符自动变化时断字的问题

[复制链接]
发表于 2006-7-7 15:12:39 | 显示全部楼层 |阅读模式
蒙古文名义字符自动变化时断字在应用系统中有断字的现象,只有在office2007和笔记本中显示正常。它的处理应该与字体有关。OpenType的变形显现描述与字模模型有关。
  蒙古文名义字符自动变化时断字的问题应该改动OpenType字体可解决,而且OpenType字体公开的,改动又不影响版权。
发表于 2006-7-10 09:59:28 | 显示全部楼层
有时间和机会的话,一定要和你交流一下。
有时候文字描述的总是说不清楚。(我的语文学的不好)

断字的现象是由个体软件造成的,不是系统不支持造成的。

字体只是一种规范,他应该是描述一种存储格式,还有存储那些元素。
只要在记事本中支持的字体,就表明操作系统是支持的。应该记事本是操作系统提供的
最基本的软件。而写字板软件就不是用操作系统的基本api做的。
因为很多软件在显示文字的时候需要改变大小或者与图片一起显示,这样他就不能使用操作系统的
基本编程接口。他们都是从字体中提取数据自己显示,而像汉字,英文字母都不需要考虑连写的问题。
所以他们在 显示文字的时候中间断开也没有问题,而这样的做法对显示蒙文将会出现致命的断字现象。

像写字板,qq,msn,word,wps等软件都是这样的。
在我写的输入法中就专门有个参数控制字母的竖向的间距,不同字体不同字号下这个参数不同。
这个参数不对了就出现断字现象。可能我对字体的格式了解不够,也许字体中有间距这个参数,
不用自己算,直接使用就行了。如果字体中有这个参数(就像你说的把这个数据改一下),但是
也要软件中支持这个参数才行。

不过文字处理软件像word这样应用非常广的软件,必须自己显示字符,否则好多文字特效功能不能实现。
所以主要还是等应用软件支持字体显示。

而仅仅是显示和阅读蒙文的话,记事本和 ie浏览器 足够了。

原帖由 雪花飞舞 于 2006-7-7 15:12 发表
蒙古文名义字符自动变化时断字在应用系统中有断字的现象,只有在office2007和笔记本中显示正常。它的处理应该与字体有关。OpenType的变形显现描述与字模模型有关。
  蒙古文名义字符自动变化时断字的问题应该改动 ...
 楼主| 发表于 2006-7-10 10:23:19 | 显示全部楼层
原帖由 ganjike 于 2006-7-10 09:59 发表
字体只是一种规范,他应该是描述一种存储格式,还有存储那些元素。


字体只是编码的显现形式,它是编码的显现图像的一种描述形式(点阵或矢量),文档中存储是编码和排版信息。排版信息包括字体,间距等等。

原帖由 ganjike 于 2006-7-10 09:59 发表
在我写的输入法中就专门有个参数控制字母的竖向的间距,不同字体不同字号下这个参数不同。
这个参数不对了就出现断字现象。可能我对字体的格式了解不够,也许字体中有间距这个参数,
不用自己算,直接使用就行了。如果字体中有这个参数(就像你说的把这个数据改一下),但是
也要软件中支持这个参数才行。


实际上windows 就是这样显示。所有的变成都一样。我是希望字体中有这个参数更合理一些或兼容一些。

原帖由 ganjike 于 2006-7-10 09:59 发表
他们都是从字体中提取数据自己显示,而像汉字,英文字母都不需要考虑连写的问题。


我不同意这个观点,word,WPS 等所有的编辑软件都会调整空格的宽度来控制断字和对付标点符号的跑位。

[ 本帖最后由 雪花飞舞 于 2006-7-10 10:28 编辑 ]
 楼主| 发表于 2006-7-10 10:39:27 | 显示全部楼层
原帖由 ganjike 于 2006-7-10 09:59 发表
而仅仅是显示和阅读蒙文的话,记事本和 ie浏览器 足够了


笔记本没事就是说 MFC的 CRichEdit 没有问题,从 CRichEdit 继承一个新类,能竖着显示蒙古文才行。
MFC的 CEdit ,CLable 类没有问题的话,那更好。

现在的软件都不巴不得都变成浏览器,浏览器中正确显示太重要了。

[ 本帖最后由 雪花飞舞 于 2006-7-10 10:56 编辑 ]
发表于 2006-7-10 11:28:36 | 显示全部楼层
原帖由 ganjike 于 2006-7-10 09:59 发表
他们都是从字体中提取数据自己显示,而像汉字,英文字母都不需要考虑连写的问题。

我不同意这个观点,word,WPS 等所有的编辑软件都会调整空格的宽度来控制断字和对付标点符号的跑位。


我说的连写是指两个字母之间的距离不影响字母的显示,只是影响美观(排版),而不会出现错误。
因为蒙文是连写的所以断字就表示文字错了。

笔记本没事就是说 MFC的 CRichEdit 没有问题,从 CRichEdit 继承一个新类,能竖着显示蒙古文才行。
MFC的 CEdit ,CLable 类没有问题的话,那更好。

现在的软件都不巴不得都变成浏览器,浏览器中正确显示太重要了。


没有具体些个程序试试。
但是估计 CEdit, CLable 等没有问题。 CRichedit肯定有问题。因为记事本可以认为是具有多行属性的cedit.
写字板是CRichedit 做的。

不过你可以自己写个CRichedit类。在OnPaint 里把每个蒙文词的信息(设置成不同的字体)保存起来。
在每个词显示的时候注意一下间距,保证他们连在一起就行了。还有如果到了竖行的尾部,
判断一下是否够长,不够的话,整个词移动到下一个竖行。这样就不会有行尾断字了。
这样做多了,就能实现简单的蒙文word软件了。要实现简单的这种软件技术上不难,但有一定的工作量,
和需要一定的这方面的经验。

但是要做好了,可困难了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|蒙古青年论坛

GMT+8, 2026-7-16 15:41 , Processed in 0.012956 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表