包含“CJK 后备系列字体”字符的垂直中文文本

包含“CJK 后备系列字体”字符的垂直中文文本

我在处理包含两种不同字体的垂直(即旋转)中文文本时遇到了问题。需要“CJK 后备系列字体”的稀有字符未显示在排版输出中,尽管字体(PMingLiU-ExtB)已正确安装,并且这些字符确实在其他应用程序中显示,甚至在安装了软件包xeCJK但没有字符旋转的 LaTeX 中也显示。我尝试了另一种包含其中一个有问题的字符的字体,结果相同。

这是一个 MWE,包含来自https://tex.stackexchange.com/a/38585/3935https://tex.stackexchange.com/a/16087/3935

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass{article}

\usepackage{xeCJK}
\newfontlanguage{Chinese}{CHN}
\setCJKmainfont[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun}
\setCJKfallbackfamilyfont{rm}{PMingLiU-ExtB}

\newcommand*\CJKmovesymbol[1]{\raise.35em\hbox{#1}}
\newcommand*\CJKmove{\punctstyle{plain}% do not modify the spacing between punctuations
  \let\CJKsymbol\CJKmovesymbol
  \let\CJKpunctsymbol\CJKsymbol}

\usepackage{everypage}
\AddEverypageHook{\CJKmove\special{pdf: put @thispage <</Rotate 90>>}}

\begin{document}
  秋夜思

旅夢何時盡、征途望每賖、晩秋淮上水、新月楚人家

答案1

较新的版本xeCJK默认禁用后备字体以提高性能。因此您应该手动启用它。

\documentclass{article}

\usepackage[AutoFallBack=true]{xeCJK}
\newfontlanguage{Chinese}{CHN}
\setCJKmainfont[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun}
\setCJKfallbackfamilyfont{rm}[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{PMingLiU-ExtB}

\newcommand*\CJKmovesymbol[1]{\raise.35em\hbox{#1}}
\newcommand*\CJKmove{\punctstyle{plain}% do not modify the spacing between punctuations
  \let\CJKsymbol\CJKmovesymbol
  \let\CJKpunctsymbol\CJKsymbol}

\usepackage{everypage}
\AddEverypageHook{\CJKmove\special{pdf: put @thispage <</Rotate 90>>}}

\begin{document}
  秋夜思

旅夢何時盡、征途望每賖、晩秋淮上水、新月楚人家

相关内容