OS X 上的 XeLaTeX 无法识别某些变音符号

OS X 上的 XeLaTeX 无法识别某些变音符号

我刚刚从 Ubuntu 转到 OS X 10.8.2。我猜 TeX 是从 tug.org 上安装的,但我不确定,因为它不是我安装的。我在 Ubuntu 上创建的所有文件都编译成功,但有一个问题除外:变音符号 \b{h} 在 XeLaTeX 中找不到(而在 LaTeX 中可以找到),日志文件中有一个警告:

缺少字符:字体 [lmroman10-regular]:mapping=tex-text 中没有 ẖ!

更新

以下是文档的一部分:

documentclass[openany]{book}

\usepackage{setspace}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{indentfirst}
\setlength{\parindent}{0in}

\setmainlanguage{polish}
\setotherlanguage[locale=mashriq]{arabic}
\setromanfont[Mapping=tex-text]{Latin Modern Mono}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.3,Mapping=arabicdigits]{Scheherazade}

\begin{document}

\b{h}ur\=u\v g

 \end{document}

所有其他变音符号均已找到。

我已将我在 Ubuntu(Linux Libertine O)下使用的字体更改为 Latin Modern,但它对变音符号没有帮助。

谢谢。

答案1

Latin Modern 字体没有 U+1E96 字符(“带下划线的拉丁小写字母 H”),这就是您收到的警告的含义。其他字体(例如 Linux Libertine)有该字符。

如果你被困在一个没有那个特征的字体里,一个解决方法就是进行调整我的答案解决当前的问题。

\documentclass{article}

\usepackage{fontspec}
\usepackage{newunicodechar}

\UndeclareUTFcomposite[\UTFencname]{x1E96}{\b}{h}
\makeatletter
\DeclareRobustCommand{\b}[1]
   {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}%
     \vbox to.2ex{\hbox{\char"AF}\vss}\hidewidth}\egroup}
\makeatother

\newunicodechar{ẖ}{\b{h}}

\begin{document}

\b{h}ur\=u\v g

ẖurūǧ

\end{document}

这还显示了如何直接输入带有变音符号的字符(前提是您将文件保存为 UTF-8)。

在此处输入图片描述


注意。\setromanfont[Mapping=tex-text]{Latin Modern Mono}以下三个方面说明不好

  1. \setromanfont已弃用,\setmainfont应使用
  2. Mapping=tex-text现在更好地表达为Ligatures=TeX
  3. Latin Modern Mono 是等宽字体,不适合正文

相关内容