我在 Apple Time Machine 上安装了 TeXLive 2011,在本地 MacBook 上安装了 TeXShop。
当我尝试从 TeXShop 排版 XeLaTeX 模板时,部分 Unicode 文本显示“未定义的控制序列”。
模板的相关部分如下:
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt]{scrartcl}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fontspec,xltxtra,xunicode}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont[Mapping=tex-text]{Hoefler Text}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Gill Sans}
\setmonofont[Scale=MatchLowercase]{Andale Mono}
\begin{document}
\newfontfamily{\A}{Geeza Pro}
\newfontfamily{\H}[Scale=0.9]{Lucida Grande}
\newfontfamily{\J}[Scale=0.85]{Osaka}
Here are some multilingual Unicode fonts: this is Arabic text: {\A السلام عليكم},
this is Hebrew: {\H שלום},
and here's some Japanese: {\J 今日は}.
\end{document}
当我排版此内容时,我得到:
./Untitled.tex:44: Undefined control sequence.
l.44 ...s: this is Arabic text: {\A \UTF
{0627}\UTF{0644}\UTF{0633}\UTF{0644}...
奇怪的是,这种情况只发生在阿拉伯语和希伯来语文本中,但是,如果我将这些文本注释掉并只保留日语部分,则文档的排版没有任何错误并且输出正确。
起初,我以为某些东西没有通过 shell 正确传递,但是 bash 和 tcsh(由 TeXShop 使用)都返回了locale
:
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL=
我甚至尝试添加setenv LC_CTYPE en_US.UTF-8
(参见这) 到 TeXShop 的 XeLaTeX 引擎但这也无济于事。
这是我通过发布的示例获得的日志。
希望您对这个问题有任何想法。
提前谢谢您。
答案1
我想说的是,您的编辑器在保存文件时使用此 \UTF 命令交换了 unicode 字符。在 TeXshop 论坛中搜索后,出现了以下建议:“请取消选中 TeXShop->Preferences->Misc->pTeX support-> utf export”。