CTeX-org / ctex-kit

Macro Packages and Scripts for Chinese TeX users
965 stars 124 forks source link

LuaLaTeX 下的 ctex #513

Open tanukihee opened 4 years ago

tanukihee commented 4 years ago

在研究 LuaTeX-ja 中的标点挤压时,发现其中也有几份中文的挤压规则,但似乎也有一些问题,主要在 banjiaokaiming 中。仅举一例如下

开明中

[0] = {
  glue = {
    --[1] = { 0.5 , 0.0, 0.5  },
    [3] = { 0.125, 0.0, 0.125 }
  }
},

汉字([0])与中点([3])之间的胶为 0.125\zw plus 0\zw minus 0.125\zw,但按开明式标点「行间标点占半宽」要求,其中插入的胶应该为 0\zw plus 0.25\zw minus 0\zw,即

glue = {
  [3] = {0, 0.25, 0}
}

同时,对于开标点([1]),汉字与其间的胶应该为 {0, 0.5, 0},但设置的是 {0.5, 0, 0.5},且将其注释掉了。

我有兴趣对此部分进行完善,但并不清楚是谁在维护这一部分,日语水平也不够高,只能先在此处反应了……

qinglee commented 4 years ago

这部分应该是 @clerkma 维护,你也可以直接报告给 LuaTeX-ja: https://osdn.net/projects/luatex-ja/ticket/

clerkma commented 4 years ago

收到,我这两天更新。

clerkma commented 4 years ago

修了,在下个版本里面应该就可以用了。有其他的改进可以在本帖继续附言。

tanukihee commented 4 years ago

仍然是关于标点挤压的一个问题想请教一下(也在 osdn 上发了)。

目前的 jfm.lua 似乎只能设置分别设置一个字符与后一个字符之间的间距,例如对于汉字中间夹杂的居中标点,前后的间距可以不同,这样可以更方便满足 JIS「中点处在行末时,中点前四分空,中点后密排」的规定。但是在中文中,中点前后的间距则需要相同了,也即行末密排时,中点前也应该密排。那么在设定好汉字与中点、中点与汉字间插入的胶都为 {0.25, 0, -0.25} 的前提下,行中最后一个中点与行末的间距为 0\zw,这时如何改变中点与倒数第二个汉字间的间距也为 0\zw 呢?换句话说,有没有办法在 jfm 中临时改变一个字符与前一个字符的间距呢?

更新: LuaTeX-ja 的 h7k さん(北川弘典)说要做到如下图中的行中 b1 行末 a2(即需要效果)较为困难……希望以后有机会再追加相关功能吧 image

clerkma commented 4 years ago

不过,一般实践中,间隔点不会出现在行末。 即使出现在行末,也一定会修改的,因为从语义上,间隔点不代表意思上的间断。

tanukihee commented 4 years ago

简中中只有间隔号,还有 luatexja-adjust 加成,但繁中中的标点都是居中的(括号除外),这个时候需要调整的话就有点麻烦了……

不过似乎繁中并不怎么搞行末半角……若要调整也是优先只抹掉右边的四分空,搞「四分之三角」,若是只有简中考虑这个问题的话,便也不是什么大问题了😂

tanukihee commented 3 years ago

在 8/8 与 8/9 的更新中,似乎中文的 jfm 并未修改?我参考 clreq 手写了几份 jfm(分别包括简中的全角、半角、开明的横排与竖排),上传上来(主要是不会在 OSDN 上 PR)

tanukihee commented 3 years ago

同时我在 jfm 里也使用了 priority 功能,设置标点挤压时,优先挤压括号间隔号等标号、再挤压逗号顿号冒号分号、最后挤压句号问号感叹号。也许 ctex 在调用 luatexja 时可以考虑同时调用 luatexja-adjust?

tanukihee commented 3 years ago

把繁中的 jfm 也写完了,简繁横竖全角半角开明共 12 种,一并打包发上来

仓库地址

全角 image

半角 image

开明 image (似乎无法做到 #511 中的「真・开明」

clerkma commented 3 years ago

clreq就不要看了,没什么用的。 繁体中文那个,其实写不写无所谓(写了的话,当然还涉及到比较大的测试量)。 从2012年至今,我没看见什么台湾的香港的的用户提到或者反馈上来。 所以是不是他们真有这些习惯,是不知道的。 中文字体的标点符号,不同厂商做出来的默认的outline的大致位置是不太一样的。 以至于,所有的JFM在使用上,都可能会出现一些小问题(也没完美的办法动态算出来)。 我是十分推荐用户直接使用JIS那个风格的标点处理。 国内的那些标点压缩实际上是历史包袱,搞成这样,只能说是工业化还没完成(我也不知道最后能不能完成)。

tanukihee commented 3 years ago

jis 确实好,但居中的冒号分号、全宽的问号叹号却不能很好地适用于简中——这几个还是中文常用标点呢(日文却不常用)

港台的标点挤压确实混乱,印刷品里多是全角中点+半角括号的组合

工业化还没完成,但也许最少得需要一个能模仿 word 的实现?