我刚刚从 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}
以下三个方面说明不好
\setromanfont
已弃用,\setmainfont
应使用Mapping=tex-text
现在更好地表达为Ligatures=TeX
- Latin Modern Mono 是等宽字体,不适合正文