您的位置首页百科问答

如何实现LaTex中英文混排行内下对齐?

如何实现LaTex中英文混排行内下对齐?

的有关信息介绍如下:

如何实现LaTex中英文混排行内下对齐?

这个问题不简单。牵涉到字体设计的很多问题,比如基线、字深、字框、字面等等。

用 FontForge 分别打开 Windows 系统中宋体(SimSun)和 Times New Roman,各自选取一个字符。比如:顽、B

可以看到字符外部有一个方框,这就是字框,简单来说字框高度决定了字符在某个字号(Size)下的实际大小。相同的字号下,字符的字框高度是相同。

可以看到在字框内下部有一条横线,称为基线(Baseline),基线到字框顶部距离称为字高(Ascent),基线到下部距离称为字深(Descent)。基线概念来自于西文字母(希腊、拉丁、西里尔等等),指字母的主体底部对齐的位置。对于大写字母来说,字母全部都位于基线之上,而小写字母 g、j、p、q、y 这几个字母有延伸到基线以下的部分。为了保证字母排布整齐,西文排版以基线作为对齐的基准,这就是 Baseline 名称的由来。

而东亚字符来是以正方形框架为基准,笔画在字框内居中并充满字框,本质上没有基线的概念。同时,也使得相同字号下中文的字面要比西文字母要大得多。

由于大陆、日本横排标点位置在左下,实际上可以分析出一条「汉字基线」,与西文字母一样,标点符号也都坐在汉字基线上。因此,东亚字符的基线相对位置与西文字符差异很大,东亚字符的基线要低得多。

在中西文混排中,必须考虑汉字和西文字母的纵向对齐。采用基线对齐是一个显然的选择。

绝大多数排版系统都采用了这一对齐原则,比如下图是 Word 中情形

TeX 排版也是如此

上部差距比下部明显要大,看起来就像是没有上下居中对齐。

可以说,这个问题几乎无解。中西文字符不是同种书写系统,其字形(glyph)排布的原则和方法是无法调和。也许可以通过尝试不同中英文字体组合,或者使用在设计时就考虑中西文字符对齐的某种字体,来达到较好的视觉效果。

下图是中西文字体都是思源宋体,中西文字符对齐的视觉效果略微好一些,上下差距要平衡一些。

而方正书宋还是一个鸟样