Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

标点位置异常 #24

Open
Man-Ting-Fang opened this issue Sep 21, 2017 · 5 comments
Open

标点位置异常 #24

Man-Ting-Fang opened this issue Sep 21, 2017 · 5 comments

Comments

@Man-Ting-Fang
Copy link

如果用dvipdfmx的方式设置字体,标点位置还是没问题的;但如果用ApTeX的ot::这样的方式设置字体,很多标点位置与用dvipdfmx方式时不一样,例如句号等。请问这是否是有意如此计算标点位置?

另外,在使用某些(但不是全部)字体时,引号之类的位置也会异常,造成左右不对称,例如使用思源黑体时:

% upTeX + dvipdfmx
\special{pdf:mapline upstht-h unicode SourceHanSansSC-Regular.otf}
\font\test=upschgt-h
% ApTeX
%\font\test=ot:SourceHanSansSC-Regular.otf:upschgt-h
%%%%%%%%%%
\test
文字“文字”文字
\bye

对比图,前upTeX,后ApTeX:
up
ap

@clerkma
Copy link
Owner

clerkma commented Sep 25, 2017

标点处理,最早是为了处理雅黑的错误标点。
在输出的时候会算字符的最小box,然后根据JFM宽度做一下校正(有个会做居中的操作)。
上面的校正,就是做了一个类似于VF的操作,JFM相关的VF主要做的就是为了处理标点的。

JFM的设计是类似于铅字的设计,所有的字符/标点都是最小的宽度,中间的间距使用铅空撑开
而OpenType的设计是把标点放在em框里面,做文字处理的时候会算前后相关会有多少空间压缩
我所做的就是把这个逻辑搞的复杂了一点,会算左右位移。
之所以会造成你觉得视觉不平衡,是因为我偷懒没有给标点加上位置属性去算位移(LuaTeX-ja做了)。

之后怎么做,我再想想。github我不常上,最近腰椎也开始疼,不知道什么时候能改啊。

@Man-Ting-Fang
Copy link
Author

Man-Ting-Fang commented Sep 26, 2017

非常感谢您详细的解释!不急不急,健康第一~~

@ShikiSuen
Copy link

雅黑的標點錯誤將會在今年十月份的 Windows 10 RS3 當中更正。

@clerkma
Copy link
Owner

clerkma commented Oct 19, 2017

@Man-Ting-Fang 雅黑的标点位置已经更新了,相关的代码我下周更新。下周更新的还有语法,原来的"ot:"语法会添加yaml格式支持,比如

\font\f="ot: {jfm: upjisr-h, file: demo.otf, baseline-shift: -100, color-emoji: true, engine: harfbuzz, features: ['dlig', 'jp90']}"

@Man-Ting-Fang
Copy link
Author

赞~~
下周更新应该会有新语法的完整说明吧?

还有一个问题,我自己写了一些jfm和jvf,用dvipdfmx方式时效果是正确的,但是用目前的“ot:”语法,标点位置就不对了。例如,我写了一些适用于港台式居中标点的jfm,使用标点居中的字体(例如Adobe明体)时,“ot:”语法得到的效果是标点竖直方向居中,但水平方向却是靠在一边的,dvipdfmx没这个问题。
不知这个问题在下周的新版本中是否会解决?

谢谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants