使用 xelatex 等宽字体时显示错误符号

使用 xelatex 等宽字体时显示错误符号

我有以下文件:

\documentclass{article}
\usepackage{fontspec}
\setmonofont{Fira Mono}
\begin{document}

\ttfamily
◦ Fira Mono
\end{document}

它是 UTF-8 编码的,使用等宽字体中的一些 Unicode 符号。该字体似乎包含正确的字形,因为我将其用作 Emacs 中的默认字体,并且显示正确。但是,当我这样做时

xelatex test.tex

符号显示不正确:

测试.pdf

我究竟做错了什么?

答案1

你没有做错什么,但是 Fira Mono 字体缺少那个字形。

对于缺失的字形,您可以设置后备字体:

\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}

\setmonofont{Fira Mono}
\newfontfamily{\fallbackmono}{FreeMono}

\newunicodechar{◦}{%
  \texttt{\makebox[\fontcharwd\font`a]{\fallbackmono ◦}}%
}

\begin{document}

\ttfamily
◦ Fira Mono

Fira Mono x

\end{document}

假设该字符仅在等宽上下文中使用;其他情况下可以改进该定义。FreeMono 仅用作示例,可以使用任何具有字形的字体。

在此处输入图片描述

相关内容