XeLaTex 不显示 unicode 符号

XeLaTex 不显示 unicode 符号

为什么使用 TexShop 并使用 XeLaTex 引擎排版时,我的 Unicode 国际象棋骑士符号没有显示在输出中?

在 TexShop 我有

\documentclass[12pt]{article}
\begin{document}
1.  ♘ df5 
\end{document}

当我使用引擎 XeLaTeX 单击排版按钮时,我没有收到任何错误消息,但 pdf 文件没有国际象棋骑士符号 ♘,只有“1. df5”。我正在使用 MacTex 2022。

答案1

xelatex 报告

Missing character: There is no ♘ (U+2658) in font [lmroman12-regular]:mapping=t
ex-text;!

因为拉丁现代没有这个特征。

 albatross U+2658

将列出您已安装的角色字体

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Segoe UI Symbol}
\begin{document}
1.  ♘ df5 
\end{document}

答案2

您可以使用您喜欢的字体,但不一定具有该字符的字体。

例如,该字符出现在 Menlo(一种 macOS 字体)中。

\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}

\setmainfont{Libertinus Serif} % or whatever font you like

\newfontface{\chesspiecesfont}{Menlo}
\NewDocumentCommand{\chesspiece}{m}{{\chesspiecesfont#1}}

\newunicodechar{♔}{\chesspiece{♔}}
\newunicodechar{♕}{\chesspiece{♕}}
\newunicodechar{♖}{\chesspiece{♖}}
\newunicodechar{♗}{\chesspiece{♗}}
\newunicodechar{♘}{\chesspiece{♘}}
\newunicodechar{♙}{\chesspiece{♙}}
\newunicodechar{♚}{\chesspiece{♚}}
\newunicodechar{♛}{\chesspiece{♛}}
\newunicodechar{♜}{\chesspiece{♜}}
\newunicodechar{♝}{\chesspiece{♝}}
\newunicodechar{♞}{\chesspiece{♞}}
\newunicodechar{♟}{\chesspiece{♟}}

\begin{document}

1. ♘ df5

2. ♚ df5

♔♕♖♗♘♙♚♛♜♝♞♟

\end{document}

在此处输入图片描述

如果你用 Apple Symbols 替换 Menlo,你会得到

在此处输入图片描述

你明白我为什么使用间接方式了。我们想将部件移动到基​​线上,而不是基线下方,这样字体大小会稍微减小一点。

将相关行更改为

\newfontface{\chesspiecesfont}{Apple Symbols}[Scale=0.9]
\NewDocumentCommand{\chesspiece}{m}{\raisebox{\depth}{\chesspiecesfont#1}}

输出将是

在此处输入图片描述

相关内容