考虑以下最小示例:
\documentclass{minimal}
\usepackage{fontspec}
\usepackage{unicode-math}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{TeX Gyre Pagella}
\setsansfont[Scale=MatchLowercase]{Tex Gyre Heros}
\setmonofont{Tex Gyre Cursor}
\setmathfont{TeX Gyre Pagella Math}
\begin{document}
$a \boxdiag b$
$a \boxbslash b$
\end{document}
如果使用编译lualatex minimal.tex
,输出结果如下
a b
a b
这意味着符号\boxdiag
和\boxbslash
没有被打印出来。为什么我甚至没有收到错误消息?符号是否丢失了,我需要为它们加载包?
答案1
正如日志中的警告所述,该字体没有这些字符。由于它们只是方框,因此您可以从任何字体中窃取它们,而无需太多的排版麻烦,xits 数学原理:
\documentclass{minimal}
\usepackage{fontspec}
\usepackage{unicode-math}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{TeX Gyre Pagella}
\setsansfont[Scale=MatchLowercase]{Tex Gyre Heros}
\setmonofont{Tex Gyre Cursor}
\setmathfont{TeX Gyre Pagella Math}
\setmathfont[range={\boxdiag,\boxbslash}]{XITS Math}
\begin{document}
$a \boxdiag b$
$a \boxbslash b$
\end{document}