某些 Unicode 字符被跳过

某些 Unicode 字符被跳过
\documentclass{article}

\begin{document}
Test⁉
\end{document}

请注意,第五个字符是“⁉︎”(参见http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=%E2%81%89%EF%B8%8E&mode=char了解详情)。

其输出为“测试”,不包含“⁉︎”部分。

我怀疑该字符最终是 Mac 字符而不是正确的 UTF-8 字符,但我不知道如何修复或检查。有什么想法吗?

答案1

原因很简单,因为很少有字体具有这个特征;特别是Latin Modern没有它。

我只知道 4 种字体:DejaVu Sans、DejaVu Serif、Linux BioLinum O 和 Linux Libertine O。它们可以与 XeLaTeX 或 LuaLaTeX 一起使用。

\documentclass{article}
\usepackage{fontspec}
\usepackage{mathtools}
\setmainfont{Linux Libertine O}

\setsansfont{DejaVu Sans}

\begin{document}

\texttt{Linux Libertine O:} \quad Test⁉\smallskip

\texttt{Linux Biolinum: } \quad \fontspec{Linux Biolinum O}Test⁉\smallskip

\sffamily \texttt{DejaVu Sans: }\quad Test⁉

\end{document} 

在此处输入图片描述

答案2

您需要告诉 LaTeX 您正在使用 UTF-8 输入,然后告诉它如何排版该字符(这不在标准字体中,但可以近似如下)

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{2049}{!\kern-.1em?}
\begin{document}
Test⁉
\end{document}

相关内容