如何处理XeLaTeX文档中的unicode字符串?

时间:2009-10-18 15:34:48

标签: linux unicode latex

之前的一个问题让我想到了XeLaTex(它是关于LaTeX和Unicode的)。所以我现在有了这份文件:

\documentclass[a4paper]{article}
\usepackage[cm-default]{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\setmainfont[Mapping=tex-text]{Arial}
\begin{document}
গ a ä ͷ 
\end{document}

使用字体“Arial”仅显示a和ä,其他两个字符每个只有一个框。如果我删除\ setmainfont-command,则只显示a。如果我将“Arial”更改为“Linux Libertine”,我会收到一条错误消息:

  

非法字体名称`Linux Libertine':   包含''

这很烦人,因为关于XeLaTeX的WikiPedia-Example有一个包含空格的字体名称。

如何让所有给定的字符显示在我的pdf文档中?

5 个答案:

答案 0 :(得分:1)

如果字体安装正确,它们应该按预期工作(至少它们适用于我)。但是,Arial和Linux Libertine都不包含所有四个字符。特别是第一个字符仅由少量字体支持(参见this list)。以下示例使用Code2000并正确显示所有字符:

\documentclass[a4paper]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\setmainfont{Code2000}
\begin{document}
গ a ä ͷ 
\end{document}

答案 1 :(得分:1)

啊,我明白了。我本来应该试过你的例子。字体的OpenType名称不是Linux Libertine,而是Linux Libertine O。或者,您可以使用PostScript名称:

\setmainfont{LinLibertineO}

但是,这个字体也没有这四个字符。你可能很难找到一个。

答案 2 :(得分:0)

显然你需要你的字体来支持你的Unicode字符。 TeX Gyre Pagella,正如here所建议的那样,对我来说是一些中欧变音字符和西里尔字母。

答案 3 :(得分:0)

很抱歉,这么晚才回答,但我确实做了我想要的事情:

http://www.julianmoritz.de/dl/poster.pdf

问候!

答案 4 :(得分:-1)

您可能无法使用XeTeX或XeLaTeX加载TeX Gyre Pagella。切换回常规LaTeX并在序言中执行此操作:

\usepackage[T1]{fontenc}
\usepackage{tgpagella}