XeLaTeX 中不显示半括号

XeLaTeX 中不显示半括号

我有一个 XeLaTeX 文档,其中有下半括号⸤⸥(U+2E24、U+2E25)和上半括号⸢⸣(U+2E22、U+2E23)。在日志文件中,我收到投诉,就像Missing character: There is no ⸤ in font...我使用 Gentium 或 FreeSerif 时一样。但是,在其他上下文中(Gnome Terminal、LibreOffice),这些字符会以这些字体显示。我该如何让这些字符出现在我的文档中?

\documentclass[12pt,letterpaper]{article}
\usepackage{xltxtra}
\setmainfont[Mapping=tex-text]{FreeSerif}
\begin{document}
\paragraph{} These are ⸤lower half-brackets⸥. These are ⸢upper half-brackets⸣.
It seems that other symbols work—such as ê.
\end{document}

结果

日志文件的相关部分:

Missing character: There is no ⸤ in font Free Serif/ICU:mapping=tex-text,!
Missing character: There is no ⸥ in font Free Serif/ICU:mapping=tex-text,!
Missing character: There is no ⸢ in font Free Serif/ICU:mapping=tex-text,!
Missing character: There is no ⸣ in font Free Serif/ICU:mapping=tex-text,!

答案1

不是为了劫持 Caramdir 的答案,而只是为了从用户输入的角度展示一个更简单的解决方案(从 TeXnical 的角度来看它是等效的):

\newfontfamily\fallbackfont{DejaVu Sans} % or any other font having the glyphs

\usepackage{newunicodechar}

\newunicodechar{⸤}{{\fallbackfont ⸤}}
\newunicodechar{⸥}{{\fallbackfont ⸥}}
\newunicodechar{⸢}{{\fallbackfont ⸢}}
\newunicodechar{⸣}{{\fallbackfont ⸣}}

答案2

以下内容改编自导入字体中缺失的字形。它使⸤⸥⸢⸣符号使用 DejaVu Sans。我对它的外观不是特别满意,因为 DejaVu Sans 与 Gentium 混合得不好。也许你可以找到更好的后备字体(尽管很少有文本字体似乎包含这些符号)。

\documentclass{article}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Gentium}

\newfontfamily\fallbackfont{DejaVu Sans}
\let\swbrackchar=⸤
\catcode`⸤=\active
\protected\def⸤{{\fallbackfont\swbrackchar}}
\let\sebrackchar=⸥
\catcode`⸥=\active
\protected\def⸥{{\fallbackfont\sebrackchar}}
\let\nwbrackchar=⸢
\catcode`⸢=\active
\protected\def⸢{{\fallbackfont\nwbrackchar}}
\let\nebrackchar=⸣
\catcode`⸣=\active
\protected\def⸣{{\fallbackfont\nebrackchar}}

\begin{document}
These are ⸤lower half-brackets⸥. These are ⸢upper half-brackets⸣.
\end{document}

结果

我有兴趣知道是否存在一种机制来指定全局后备字体,但这应该是一个单独的问题。

(顺便说一句,\paragraph{...}是一个分段命令,不需要开始一个段落。)

相关内容