![我们如何处理混合的中文字形/字体?](https://linux22.com/image/459578/%E6%88%91%E4%BB%AC%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E6%B7%B7%E5%90%88%E7%9A%84%E4%B8%AD%E6%96%87%E5%AD%97%E5%BD%A2%2F%E5%AD%97%E4%BD%93%EF%BC%9F.png)
我们有几个包含中文段落的 Word (docx) 文档。对于中文部分,文档主要使用“MS Mincho”和“MS Gothic”字体。但对于某些字形,文本会更改为“Microsoft JhengHei”字体。
我们如何转换这些文档才能正确显示所有中文字形?
当将文档转换为“tex”(通过 pandoc)时,我们得到以下看似正常的结果:
\documentclass[12pt]{article}
\usepackage{xeCJK}
\setCJKmainfont[]{IPAMincho}
\begin{document}
他向前走了一步,摸了一把脸上的雨水和泪水,等呜咽声从喉咙里咽下去以后,才继续说:
这些年来,我给大家办的事太少了,许多乡亲们直到现在还少吃没穿的,我对不起乡亲们!
\end{document}
但是当转换为“PDF”时(通过 xelatex),某些字符(Microsoft JhengHei)不会显示(黄色)。PDF 如下:
这些(已标记)是更改为“Microsoft JhengHei”且未在 PDF 中打印的字形:
他向前走了一步,摸了一把脸上的雨水和泪水,等呜咽声从喉咙里咽下去以后,才继续说:
---------------------^----------------^-------^----------------^^^
这些年来,我给大家办的事太少了,许多乡亲们直到现在还少吃没穿的,我对不起乡亲们!
^----------^----^-----------^--^^^^-----^--^-------------^----^^^
我们XeTeX 3.14159265-2.6-0.999992 (TeX Live 2020/Debian)
在 Debian 11 上使用。
答案1
TeX(及其变体,这里是 XeTeX)旨在排版,而不只是在屏幕上显示某些内容。
因此绝不替换字体系列。在 LaTeX 中,可能会替换缺失的形状或粗细,但始终遵循一些规则。处理文档时,您会得到
Missing character: There is no 脸 (U+8138) in font IPAMincho/OT:script=hani;language=dflt;!
以及其他缺失字符的类似信息。
如果我albatross -b 3 脸
在我的机器上运行,我会得到
__ __ __
.---.-.| | |--.---.-.| |_.----.-----.-----.-----.
| _ || | _ | _ || _| _| _ |__ --|__ --|
|___._||__|_____|___._||____|__| |_____|_____|_____|
Unicode code point [4EEC] mapping to 们
Font name
.Hiragino Sans GB Interface
.LastResort
.PingFang HK,.蘋方\-港,.苹方\-港
.PingFang SC,.蘋方\-簡,.苹方\-简
.PingFang TC,.蘋方\-繁,.苹方\-繁
AR PL KaitiM GB,文鼎PL简中楷
AR PL SungtiL GB,文鼎PL简报宋
Arial Unicode MS
FandolFang,FandolFang R
FandolHei
FandolKai
FandolSong
GB18030 Bitmap
Heiti SC,黑體\-簡,黒体\-簡,Heiti\-간체,黑体\-简
Heiti TC,黑體\-繁,黒体\-繁,Heiti\-번체,黑体\-繁
Hiragino Sans GB,冬青黑體簡體中文,ヒラギノ角ゴ
簡体中文,冬青黑体简体中文,Hiragino Sans GB W3,冬青黑體簡體中文
W3,ヒラギノ角ゴ 簡体中文 W3,冬青黑体简体中文 W3
Hiragino Sans GB,冬青黑體簡體中文,ヒラギノ角ゴ
簡体中文,冬青黑体简体中文,Hiragino Sans GB W6,冬青黑體簡體中文
W6,ヒラギノ角ゴ 簡体中文 W6,冬青黑体简体中文 W6
PingFang HK,蘋方\-港,苹方\-港
PingFang SC,蘋方\-簡,苹方\-简
PingFang TC,蘋方\-繁,苹方\-繁
Songti SC,宋體\-簡,宋体\-简
Songti TC,宋體\-繁,宋体\-繁
STSong
如果我替换IPAMincho
为FandolFang
,我会得到
下面的输出FandolSong
改为
确保中文字体涵盖所需的字符。