Почему мой символ шахматного коня Unicode не отображается в выводе при использовании TexShop и наборе текста с помощью движка XeLaTex?
В 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}
Если заменить Menlo на символы Apple, то получится
и вы понимаете, почему я сделал косвенность. Мы хотели бы переместить части так, чтобы они располагались на базовой линии, а не под ней, и немного уменьшить размер шрифта.
Измените соответствующие строки на
\newfontface{\chesspiecesfont}{Apple Symbols}[Scale=0.9]
\NewDocumentCommand{\chesspiece}{m}{\raisebox{\depth}{\chesspiecesfont#1}}
и на выходе будет