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}

ここに画像の説明を入力してください

MenloをApple Symbolsに置き換えると、

ここに画像の説明を入力してください

私が間接的な処理をした理由がお分かりでしょう。ピースをベースラインの下ではなくベースライン上に移動し、フォント サイズを少し小さくしたいのです。

関連する行を次のように変更します

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

そして出力は次のようになる

ここに画像の説明を入力してください

関連情報