代码:
% !TeX program = lualatex
\documentclass{article}
\usepackage{lmodern}
\usepackage{fontspec, newunicodechar}
\newfontfamily{\fallbackfont}{DejaVu Sans Mono}[Scale=MatchLowercase]
\DeclareTextFontCommand{\textfallback}{\fallbackfont}
\newunicodechar{✓}{\textfallback{✓}}
\newunicodechar{✗}{\textfallback{✗}}
\usepackage{siunitx}
\begin{document}
\ang{4} ✓ ✗
\end{document}
输出:
问题:
当我删除时\usepackage{lmodern}
,所有符号都起作用,但我想要lmodern
字体。
这部分定义了 lmodern 中不存在的后备字符:
\usepackage{fontspec, newunicodechar}
\newfontfamily{\fallbackfont}{DejaVu Sans Mono}[Scale=MatchLowercase]
\DeclareTextFontCommand{\textfallback}{\fallbackfont}
\newunicodechar{✓}{\textfallback{✓}}
\newunicodechar{✗}{\textfallback{✗}}
问题:
这两个东西为什么有冲突?明明lmodern
可以显示度数符号,怎么解决?
答案1
不要lmodern
一起加载fontspec
。
fontspec
加载默认字体时,是拉丁现代:
\documentclass{article}
\usepackage{fontspec, newunicodechar}
\newfontfamily{\fallbackfont}{DejaVu Sans Mono}[Scale=MatchLowercase]
\DeclareTextFontCommand{\textfallback}{\fallbackfont}
\newunicodechar{✓}{\textfallback{✓}}
\newunicodechar{✗}{\textfallback{✗}}
\usepackage{siunitx}
\begin{document}
\ang{4} ✓ ✗
\fontname\font
\end{document}