为什么使用 TexShop 并使用 XeLaTex 引擎排版时,我的 Unicode 国际象棋骑士符号没有显示在输出中?
在 TexShop 我有
\documentclass[12pt]{article}
\begin{document}
1. ♘ df5
\end{document}
当我使用引擎 XeLaTeX 单击排版按钮时,我没有收到任何错误消息,但 pdf 文件没有国际象棋骑士符号 ♘,只有“1. df5”。我正在使用 MacTex 2022。
答案1
答案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}}
输出将是