首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TeX字体映射

TeX字体映射
EN

Stack Overflow用户
提问于 2009-10-06 17:49:14
回答 4查看 6.5K关注 0票数 4

我使用的是一个在XeLaTeX上编写的包。这个软件包使用fontspec为您的文本的不同部分指定字体:拉丁语,非拉丁语,数学模式,...

该包附带了几个示例文件。我能够xelatex大多数依赖于常规ttf或otf文件的文件。然而,其中一个试图在数学模式下将数字的字体设置为某种字体,比如"NonLatin Digits“。但是,字体似乎不是常规字体。在同一个目录中有两个名为"nonlatindigits.map“和"nonlatindigits.tec”的文件。TECkit使用这些映射文件来生成TeX字体。但是,由于某些原因,它无法创建文件,并且xelatex会发出以下错误消息。

代码语言:javascript
复制
 kpathsea: Invalid fontname `NonLatin Digits', contains ' '

 ! Font \zf@basefont="NonLatin Digits" at 10.0pt not loadable: Metric (TFM) file or
 installed font not found.

kpathsea程序抱怨空格,但是删除空格确实解决了加载TFM文件的问题。

有什么线索我做错了什么吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-06 18:18:17

实际的字体文件名是什么?最近在Windows list上有关于一个bug的讨论,该bug阻止在XeTeX上加载名称中带有空格的字体文件(在the archives中查找它)。如果更改文件名对您有效,那么您可能会遇到此错误。

您看到的kpathsea调用只是一个副作用:它表明XeTeX在TeX的默认字体查找系统上使用的系统库还没有找到该字体,而XeTeX回退到查找TFM文件,这是最基本的文件格式。

TECkit与字体无关,它可以动态地转换字符;在您的例子中,我猜您可以使用映射将阿拉伯数字转换为印度数字(这样您就不需要在源文件中直接输入后者)。但它不会以任何方式生成字体。

票数 5
EN

Stack Overflow用户

发布于 2010-04-24 08:13:29

正如其他人所提到的,您应该尝试使用XeTeX,并且应该确保安装了正确的字体。使用命令xelatex代替,以允许在.tex文件中使用非拉丁字符。

你没有说你想要哪种字体编码,但以下两种应该可以很好地工作: Linux Libertine和Computer现代Unicode。unicode包的名称是LinuxLibertinecm-unicode;希望它在其他系统上也类似。

在您的文档中添加以下内容作为第一个导入:

代码语言:javascript
复制
\usepackage{xunicode,fontspec,xltxtra}
\usepackage[english]{polyglossia}
% EXAMPLE: \setotherlanguages{russian} % set as "other" so English hyphenation active

并在所有其他导入之后添加以下内容(这样它就不会被较旧的包导入覆盖),

代码语言:javascript
复制
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setromanfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont[Scale=0.9]{Courier New}

或者,如果你想要计算机现代字体,

代码语言:javascript
复制
\setromanfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
票数 1
EN

Stack Overflow用户

发布于 2009-10-06 18:28:02

使用xetex或xelatex,问题是你不必指定tex字体,你应该使用你的系统字体。

你应该发布你收到错误的部分的代码和前导。与html+css非常相似,不同的tex发行版可以呈现彼此略有不同的内容。

至少,你的前言应该看起来像这样:

代码语言:javascript
复制
 \documentclass[12pt,letterpaper]{article}

 \usepackage{fontspec}% provides font selecting commands
 \usepackage{xunicode}% provides unicode character macros
 \usepackage{xltxtra} % provides some fixes/extras

 \setromanfont[Mapping=tex-text]{Font Name}

在加载字体时,Mapping=tex-text特别重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1527071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档