有没有办法使用 fontspec(在 XeLaTeX 中)手动调整字体的垂直位置?
在排版亚洲文本时,这样的功能非常有用,因为不同的字体供应商通常会将亚洲字符放在不同的垂直位置。
答案1
我不确定在 中实现它是否容易(和必要)fontspec
。错误的基线位置似乎是由当前设计不良的(但几乎所有)中文字体造成的。但是,我仍然想知道其他程序(如 Microsoft Word)如何正确排版中文竖排文本。(但 XeTeX 不能。)
使用xeCJK
包(通过 XeLaTeX 排版中文时应始终使用该包),固定 CJK 符号的基线并不困难。
% coding:utf-8
\documentclass{article}
\usepackage{xeCJK}
\newfontlanguage{Chinese}{CHN}
\setCJKfamilyfont{songvert}% It is important to set these features
[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun}
\def\CJKmovesymbol#1{\raise.35em\hbox{#1}}
\def\CJKmove{\let\CJKsymbol\CJKmovesymbol
\let\CJKpunctsymbol\CJKmovesymbol}
\begin{document}
\begin{tabular}{|ll|}
\hline
Original baseline:&
{\Huge\CJKfamily{songvert}文字 text 文字 text}\\
\hline
Fixed baseline:&
{\Huge\CJKmove\CJKfamily{songvert}文字 text 文字 text}\\
\hline
\end{tabular}
\end{document}