ctex-kit icon indicating copy to clipboard operation
ctex-kit copied to clipboard

xeCJK:增加 \CJKfontspec+ 等的功能

Open stone-zeng opened this issue 6 years ago • 4 comments

目前已有一些中/日文字体附带的西文部分质量足够高,在很多时候可以用作正文排版的任务(包括但不限于思源宋体/思源黑体)。现在在 xeCJK/CTeX 中,同时设置中西文字体虽然可行但稍有麻烦,可否考虑增加 \CJKfontspec+\setCJKmainfont+ 等的功能,以达到上述目的?

stone-zeng avatar Feb 02 '19 14:02 stone-zeng

不是很明白想要实现的效果是什么……

\documentclass{ctexart}
\setmainfont{SourceHanSerifSC-Regular.otf} % 缺省语言为英文
\setCJKmainfont{SourceHanSerifSC-Regular.otf}[
  Language=Chinese Simplified
]
\begin{document}
Hello, world! 你好,世界!
\end{document}

好像没什么问题啊?

RuixiZhang42 avatar Feb 16 '19 03:02 RuixiZhang42

就是要写两遍很麻烦啊……尤其是接上一堆选项、路径的时候。如果有 \setCJKmainfont+,就可以只写一遍了。

stone-zeng avatar Feb 16 '19 04:02 stone-zeng

现在有些中日韩字体的西文部分也很好是不假,但我简单想了一下,至少有两个问题:

一、斜体。这个对西文而言不可或缺,但中日韩字体至今恐怕少有单独的斜体(思源我记得是没有,注意思源中日韩的西文部分跟单独西文版本的 Source 字体是不一样的。以后会有吗?最近没怎么关注思源),当然有些字体会通过 OpenType 的 ital 特性将斜体跟正体都集成在一个字体文件里(这个思源已经明确是不可能了,因为内部空间早就不够用了),或者用 TTC/OTC 的形式集合在一起。对这几种可能都检测判断一下应该也没什么问题,但是……而且如果没有(意大利式)斜体(这恐怕仍然是多数情况),大概只能代以机械变形的伪斜体。(如果是高质量的西文字体,即使斜体采用(或增加)Oblique/Slanted 的方案,设计时也是调整过的,不是直接机械变形就可以的。)

二、如果对字体没什么细致要求倒也罢了(虽然这可能是多数情况),但若有的话,有很多细节确实是要分别对中日韩和西文部分分别设置的,合成一个命令无非是让用户可以换一种写法,但开发起来大概会比较麻烦,而且以后出问题的可能性也比较大。其实我想,专业或高质量的排版中,分别设置中西文字体(甚至中、日、韩三家(或再加上越,四家)之间也要分别设置),并不仅仅只是字体设计得好不好看的事情,而是这些文字/语言之间本来就有很多不同要求,本身就要分别处理的。

所以,我个人的想法就是,如果增加这种功能,不但实现、维护起来麻烦,而且更重要的是,很容易有意无意地「诱使」多数对字体不怎么了解的用户做出糟糕的效果来(除了上边写的,想想看:「某易宋体也有英文的吼,介还似伦家学校要求滴捏,揍用它啦~~」如果要在用户手册里建议 不 要用某些字体的话,那这个清单肯定拉得很长的,而且标准是什么?审美这个事情很难说的)。为有限的简便,而有这些副作用,洵宜审慎。(抱歉话说得可能很直……)

Man-Ting-Fang avatar Feb 24 '19 06:02 Man-Ting-Fang

西文字体如果缺少斜体的话,是不能用作正常排版的。思源系列的中文字体,内置的西文只有正体。同系列的纯英文字体 Source Serif Pro 与 Source Sans Pro 跟中文的字重是不一致的,配不上。感觉一旦挖坑,真的很容易排出很丑的效果……想想看 MS Word 的 default,07 年前是中易宋体 + Times New Roman,现在是中易宋体 + Calibri,怎么丑怎么配……

RuixiZhang42 avatar Mar 13 '19 20:03 RuixiZhang42