英语法语西班牙语

Ad


OnWorks 网站图标

ttf2tfm - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 ttf2tfm

这是 ttf2tfm 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


ttf2tfm - 从 TrueType 字体构建 TeX 度量文件

概要


ttf2tfm 文件[FTT。|.ttc[-c 大写高度因素[-e 扩展因子[-E 编码 ID]
[-f 字体索引[-l[-L 连字文件[.sfd]][-n[-N[-O[-p 文件[恩奇。]]
[-P 平台ID[-q[-r 旧字形名称 新字形名称[-R 替换文件[.rpl]]
[-s 倾斜因子[-t 输出文件[恩奇。]][-T 输入文件[恩奇。]][-u]
[-v vpl文件[.vpl]][-V scvpl文件[.vpl]][-w[-x[-y 垂直移位因子]
[文件[.tfm]]
ttf2tfm - 版 | - 帮帮我

商品描述


该程序提取 TrueType 字体的度量和字距调整信息并转换
将其转换为 TeX 可用的度量文件(非常类似于 AFFM2TFM 这是 会员
包裹; 有关各种参数的更多详细信息,请查阅其信息文件
(尤其是编码文件)。

由于 TrueType 字体通常包含超过 256 个字形,因此需要一些方法来映射
将 TrueType 字形的子集放到 TeX 字体上。 为此,两个映射表是
需要:第一个(称为“输入”或“原始”编码)将 TrueType 字体映射到原始 TeX
字体(这个映射表被两个 ttf2tfmttf2pk),第二个(称为
“输出”或“虚拟”编码)将原始 TeX 字体映射到另一种(虚拟)TeX 字体,
提供 TeX 所需的所有字距调整和连字信息。

这种两阶段映射的优点是可以通过多种方式访问​​一种原始字体。
LaTeX 编码(例如 T1 和 OT1)通过虚拟字体机制,并且只有一个 PK 文件
必要。

对于 CJKV(中文/日文/韩文/旧越南文)字体,提供了不同的机制
(见 子字体 定义 FILES 下文)。

有无库存


大多数命令行开关名称与 AFFM2TFM 为了方便。 一个或
选项与其值之间的更多空格字符是强制性的; 选项不能
串联。 由于历史原因,第一个参数可以 不能 是一个开关,但必须是
字体名称。

-c 大写高度因素
-V 转变。 这个实数的默认值
number 是大写字形高度的 0.8 倍。

在子字体模式下将被忽略。

-e 扩展因子
水平拉伸字符的扩展因子。 这个的默认值
实数是1.0; 如果小于 1.0,你会得到一个压缩字体。

-E 编码 ID
TrueType 编码 ID。 此非负整数的默认值为 1。

将被忽略,如果 -N 用来。

-f 字体索引
TrueType 集合中的字体索引。 默认是第一种字体(索引 0)。
[TrueType 集合通常可以在一些 CJK 字体中找到; 例如第一个字体
index 指定水平书写的字形和度量,以及第二个字体
index 对垂直书写也有同样的作用。 TrueType 集合通常具有
扩展名`.ttc'。]

对于普通 TrueType 字体将被忽略。

-l 在所有原始的第一个和第二个字节之间的子字体中创建连字
字符代码。 示例:字符代码 0xABCD 映射到字符位置 123
子字体 45。然后在位置 45xAB 和 0xCD 之间的子字体 0 中的连字指向
到字符 123 将产生。 韩文HLaTeX包的字体就用这个
特征。 请注意,此选项仅为 TrueType 字体生成正确的连字
其中输入 cmap 与输出编码相同。 在 HLaTeX 的情况下,TTF
必须具有平台 ID 3 和编码 ID 5。

如果不在子字体模式下将被忽略。

-L 连字文件
与...一样 -l, 但连字的字符代码在 连字文件。 对于
例如,`-L KS-HLaTeX' 为韩文 HLaTeX 包生成正确的连字
无论使用的 TrueType 字体(文件 KS-
HLaTeX.sfd 是 ttf2pk 包的一部分)。

连字文件与 SFD 文件具有相同的格式和扩展名。 此选项将
如果不是子字体模式,则被忽略。

-n 使用 TrueType 字体的 PS 名称(字形)。 仅具有有效条目的字形
使用选定的 cmap。

在子字体模式下将被忽略。

-N 仅使用 TrueType 字体的 PS 名称。 没有使用 cmap,因此开关 -E
-P 没有效果,导致出现警告信息。

在子字体模式下将被忽略。

-O 对 VPL 文件中的所有字符代码使用八进制值而不是名称; 这是
对于符号或 CJK 字体很有用,其中字符名称(例如“A”)毫无意义。

-p 文件
TTF→raw TeX 映射的输入编码文件名。 这个参数必须是
在 ttf2pk.cfg 中记录的地图文件(默认:ttfonts.map)中指定,用于
连续 ttf2pk 调用。

在子字体模式下将被忽略。

-P 平台ID
TrueType 平台 ID。 此非负整数的默认值为 3。

将被忽略,如果 -N 用来。

-q 他们成为 ttf2tfm 安静的。 它禁止任何信息输出,除了警告和
错误信息。 对于 CJK 字体,如果不指定,输出会变得非常大
这个开关。

-r 旧字形名称 新字形名称
替换 旧字形名称 新字形名称. 如果你想,这个开关很有用
给出一个未命名的字形(即可以用“.gXXX”或
仅`.cXXX')一个名称,或者如果您想重命名一个已经存在的字形名称。 你
不能使用 `.gXXX' 或 `.cXXX' 字形名称结构 新字形名称; 多
的发生 -r 是可能的。

如果处于子字体模式或未指定编码文件,则忽略此开关。

-R 替换文件
如果您有很多替换对,请使用此开关; 它们可以收集在一个
文件应该以“.rpl”作为扩展名。 这种替换中使用的语法
文件很简单:每个非空行必须包含一对`旧字形名称
新字形名称' 由空格分隔(不带引号)。 一个百分比
符号开始一行注释; 你可以在下一行继续一行
反斜杠作为最后一个字符。

如果处于子字体模式或未指定编码文件,则忽略此开关。

-s 倾斜因子
倾斜字体的倾斜系数,通常远小于 1。默认为
这个实数是 0.0; 如果该值大于零,则字符倾斜到
右边,否则左边。

-t 输出文件
虚拟字体的输出编码文件名。 只有原始字符
使用 TeX 字体。

在子字体模式下将被忽略。

-T 输入文件
这相当于`-p 输入文件 -t 输入文件'.

在子字体模式下将被忽略。

-u 仅使用输出编码中指定的那些字符,不要使用其他字符。 经过
默认, ttf2tfm 尝试在虚拟字体中包含所有字符,即使是那些
不存在于虚拟字体的编码中(它将它们放入否则 -
未使用的位置,而随意)。

在子字体模式下将被忽略。

-v vpl文件
除 TFM 文件外,还输出 VPL 文件。 如果没有输出编码文件
指定的, ttf2tfm 使用默认字体编码 (cmtt10)。 请注意: 小心使用
虚拟字体和原始字体的不同名称!

在子字体模式下将被忽略。

-V scvpl文件
与...一样 -v,但生成的虚拟字体是通过获得的伪小写字体
按 0.8 缩放大写字母(分别使用指定的值 -c) 排版
小写。 这种字体处理重音字母并保留适当的字距调整。

在子字体模式下将被忽略。

-w 生成包含字形索引的 PostScript 编码向量,主要用于
在 pdfTeX 中嵌入 TrueType 字体。 ttf2tfm 采用 TFM 名称并替换
后缀为.enc; 也就是说,对于文件 foo01.tfm, foo02.tfm, ... 它创建
foo01.enc, foo02.enc, ... 在同一个地方。

如果不在子字体模式下将被忽略。

-x 将所有字形逆时针旋转 90 度。 如果不 -y 给定参数,
旋转后的字形垂直向下移动 0.25em。

如果不在子字体模式下将被忽略。

-y 垂直移位因子
将旋转的字形向下移动给定的量(单位是 em).

如果不在子字体模式下或字形不旋转,则忽略。

- 版
显示当前版本 ttf2tfm 和使用的文件搜索库(例如
凯帕西).

- 帮帮我 显示使用信息。

如果没有给出 TFM 文件名,则使用 TTF 文件的名称,包括完整路径
并用“.tfm”替换扩展名。

地图管理系统


与 Type 1 PostScript 字体相反(但类似于新的 CID PostScript 字体格式),
大多数 TrueType 字体有多个本地映射表,也称为“cmap”,它
将(内部)TTF 字形索引映射到(外部)TTF 字符代码。 常见的
示例是到 Unicode 编码字符位置的映射表,以及标准
Macintosh 映射。

要指定 TrueType 映射表,请使用选项 -P-E。 同 -P 你指定
平台标识; 定义的值是:

平台 平台 ID (PID)
────────────────────────────────────
苹果 Unicode 0
麦金塔 1
ISO 2
微软3

编码 ID 取决于平台。 对于 pid=0,我们忽略 -E 参数(设置
它为零),因为映射表始终是 Unicode 2.0 版。 对于 pid=1,
下表列出了定义的值:

平台 ID = 1

脚本 编码 ID (开斋节)
────────────────────────────────────
罗马0
日语1
中文2
韩文3
阿拉伯语4
希伯来语 5
希腊文6
俄语7
罗马符号 8
梵文 9
古尔穆基语 10
古吉拉特语 11
奥里亚 12
孟加拉语 13
泰米尔语14
泰卢固语 15
卡纳达语 16
马拉雅拉姆语 17
僧伽罗语 18
缅甸语 19
高棉20
泰语21
老挝22
格鲁吉亚 23
亚美尼亚语 24
马尔代夫 25
藏族26
蒙古语 27
天哪 28
斯拉夫语 29
越南语 30
信德省31
未解释 32

以下是 ISO 编码 ID:

平台 ID = 2

编码 编码 ID (开斋节)
0 位编码
ISO 10646 1
ISO 8859-1 2

最后,Microsoft 编码 ID:

平台 ID = 3

编码 编码 ID (开斋节)
符号0
统一码 2.0 1
移位 JIS 2
国标2312(1980)3
大5 4
KS X 1001 (万盛) 5
KS X 1001(约哈布)6
UCS-4 10

如果您指定无效的平台/编码 ID 对,程序将中止。 然后它会
显示可能的 pid/eid 对。 请注意,大多数字体最多只有两个或三个
cmaps,通常对应于拉丁语的 pid/eid 对 (1,0)、(3,0) 或 (3,1)
基于字体。 有效的 Microsoft 字体应具有 (3,1) 映射表,但某些字体
存在(主要是亚洲字体),它们的 (3,1) cmap 不是以 Unicode 编码的。 的原因
这种奇怪的行为是一些旧的 MS Windows 版本会拒绝字体
具有非 (3,1) cmap(因为所有非 Unicode Microsoft 编码 ID 都用于亚洲
MS Windows 版本)。

-P-E 选项 ttf2tfm 必须同样指定 ttf2pk; 相应的
映射文件中的参数分别是“Pid”和“Eid”。

默认的 pid/eid 对是 (3,1)。

同样,一个 -f 选项必须在地图文件中指定为 `Fontindex' 参数。

如果使用 -N 开关,所有 cmap 都被忽略,只使用 PostScript 名称
TrueType 字体。 映射文件中的相应选项是“PS=Only”。 如果您使用 -n
开关,内置的默认字形名称 ttf2tfm 替换为 PS 字形名称
在字体中找到。 在许多情况下,这不是您想要的,因为
字体通常不正确或不标准。 地图文件中的相应选项是
`PS=是'。

指定的单个替换字形名称 -r 必须直接给出`旧字形名称
新字形名称' 在地图文件中; -R 等效于“替换”选项。

INPUT AND OUTPUT 编码


您必须指定从 TrueType 字体到原始 TeX 字体以及从
原始 TeX 字体到虚拟 TeX 字体完全一样 AFFM2TFM,但你有更多
解决字符代码的可能性。 [带有‘编码向量’的映射表
256 个条目以 PostScript 向量的形式表示; 请参阅此文件的 T1-WGL4.enc
包为例。] 与 AFFM2TFM,您必须使用其 Adob​​e 字形访问每个字形
名称,例如“/quotedsingle”或“/Acircumflex”。 这已扩展为 ttf2tfm; 现在
您可以(有时必须)直接访问代码点和/或字形,使用
以下用于以十进制、八进制或十六进制指定字符位置的语法
符号:`/.c',`/.c0', 或 '/.c0x'.
示例:`/.c72'、`/.c0646'、`/.c0x48'。 要直接访问字形索引,请使用
字符“g”而不是刚刚引入的符号中的“c”。 示例:`/.g0x32'。 [笔记:
`.cXXX' 符号没有意义,如果 -N 用来。]

对于 pid/eid 对 (1,0) 和 (3,1), ttf2tfmttf2pk 识别内置默认值
Adobe 字形名称; 前者遵循“Inside”一书附录 E 中给出的名称
Macintosh',第 6 卷,后者使用 TrueType 规范 (WGL4,
Unicode 子集)。 请注意,给定字形的 Adob​​e 名称通常不是唯一的
有时会有所不同,例如,许多 PS 字体都有字形“mu”,而这个字形被称为
WGL1 字符集中的 `mu4' 以区别于真正的希腊字母 mu。 也是
意识到 OpenType(即 TrueType 2.0)字体使用更新的 WGL4 表; 我们使用数据
来自最新发布的 TrueType 规范 (1.66)。 你可以找到那些映射
源代码文件 ttfenc.c 中的表格。

另一方面,开关 -n-N & ttf2tfm 读入并使用 PostScript
TrueType 字体本身的名称(存储在“post”表中)而不是默认的
Adobe 字形名称。

使用 -r 切换到重新映射单个字形名称和 -R 指定包含的文件
替换字形名称对。

如果不选择输入编码,TrueType 字体的前 256 个字形带有
所选 cmap 中的有效条目将被映射到 TeX 原始字体(没有 -q
选项, ttf2tfm 将此映射表打印到标准输出),然后是所有未显示的字形
尚未在选定的 cmap 中解决。 但是,(1,0) pid/eid 对的一些代码点
被省略,因为它们不代表对 TeX 有用的字形:0x00 (null), 0x08
(退格)、0x09(水平列表)、0x0d(回车)和 0x1d(组
分隔器)。 字形索引为 0 的“无效字符”也将被省略。

如果你选择了 -N 开关,TrueType 字体的前 256 个字形具有有效的
如果未指定输入编码,将使用 PostScript 名称。 再次,一些字形
被省略:`.notdef'、`.null'和`nonmarkingreturn'。

如果不选择输出编码, ttf2tfm 使用相同的映射表 AFFM2TFM
会使用(您可以在源代码文件 texenc.c 中找到它); 它对应于 TeX
打字机文本。 未使用的位置(由映射中的空代码点引起)
表或 TrueType 字体中缺失的字形)将被(相当任意地)填充
输入编码中存在但未在输出编码中指定的字符(没有
-q 选项 ttf2tfm 将最终输出编码打印到标准输出)。 使用 -u
选项,如果您只想要输出中定义的虚拟字体中的字形
编码文件,仅此而已。

缺少一项功能 AFFM2TFM 已添加 LaTeX 的 T1 编码所需的:
ttf2tfm 将构造字形“Germandbls”(通过简单地连接两个“S”字形)
如果可能的话,即使是普通字体。 它作为最后一项出现在字形列表中,标记为
带星号。 由于这不是真正的字形,因此只能在虚拟中使用
字体。

对于输入和输出编码,空代码位置由字形表示
名称`/.notdef'。

在编码文件中,您可以使用“\”作为一行的最后一个字符来表示
下一行继续输入。 反斜杠和以下换行符
将被删除。

子字体 定义 FILES


CJKV(中文/日文/韩文/古越南文)字体通常包含数千种
字形; 要将它们与 TeX 一起使用,必须将如此大的字体拆分为子字体。
子字体定义文件(通常具有扩展名“.sfd”)是一种简单的方法
这顺利。

子字体文件名通常由前缀、子字体中缀和后缀(即
大多数情况下为空),例如

ntukai23 → 前缀:ntukai,中缀:23,后缀:(空)

这里是 SFD 文件中一行的语法,描述了一种子字体:



:=
除了空格之外的任何东西。 最好只使用字母数字字符。

:=
空格、换页、回车、水平和垂直制表符——无换行符
字符。

:=
|
|


:=


:=
'_'

:=
`:'

:=
十六进制(前缀为“0x”)、十进制或八进制(前缀为“0”)

一行可以在下一行继续,并以反斜杠结束该行。 范围
不得重叠; 偏移量必须在 0-255 的范围内。

示例:

线

03 10: 0x2349 0x2345_0x2347

分配给具有中缀“10”的子字体的代码位置 11、12、13 和 03
字符代码分别为 0x2349、0x2345、0x2346 和 0x2347。

发行版中的 SFD 文件是为 LaTeX 的 CJK 包定制的。

您必须将 SFD 文件名嵌入到 TFM 字体名称中(在中缀
将出现)被两个“@”符号包围,分别在命令行上。 地图文件; 两个都
ttf2tfmttf2pk 然后切换到子字体模式。

通过用逗号分隔它们,可以使用多个 SFD 文件,没有
空格; 对于给定的子字体,扫描第一个文件中的条目,然后扫描下一个
文件等。 较晚的条目会覆盖较早发现的条目(可能只是部分)。
例如,第一个SFD文件设置范围0x10-0xA0,下一个修改条目
0x12 和 0x25。 很容易看出,这个算法允许添加和替换,但是
不是为了删除条目。

子字体模式禁用选项 -n, -N, -p, -r, -R, -t, -T, -u, -v, -V-w
ttf2tfm; 同样,映射文件中不允许使用“编码”或“替换”参数。
单个替换字形名称也被忽略。

ttf2tfm 将创建 SFD 文件中指定的所有子字体 TFM 文件(提供子字体
在一次运行中包含字形)。

示例:

通话

ttf2tfm ntukai.ttf ntukai@Big5,Big5-supp@

将使用 Big5.sfd 和 Big5-supp.sfd,产生 所有 子字体文件 ntukai01.tfm,
ntukai02.tfm等

返回 VALUE


ttf2tfm 成功返回 0,错误返回 1; 警告和错误消息被写入
标准错误。

一些 附注 ON 文件 正在搜索


以上皆是 ttf2pkttf2tfm 使用 凯帕西, emtex 目录MIKTEX 搜索库
文件 (emtex 目录 仅适用于具有 MS-DOSish 背景的操作系统,
即 MS-DOS、OS/2、Windows; 米克特克斯 特定于 MS Windows)。

作为最后的手段,可以在没有搜索库的情况下编译这两个程序; 被搜查的
文件必须在当前目录中或指定路径。 默认扩展
也将被附加(除了只附加“.ttf”而不是“.ttc”)。

凯帕西
如果您调用其中任何一个,kpathsea 的实际版本将显示在屏幕上 ttf2pk or ttf2tfm
- 版 命令行开关。

这是文件类型和对应的表 凯帕西 变量。 TTF2PKINPUTS
和 TTF2TFMINPUTS 是程序特定的环境变量 凯帕西
版本3.2:

.ttf 和 .ttc TTFONTS
ttf2pk.cfg TTF2PKINPUTS 文件
.map TTF2PKINPUTS
.enc TTF2PKINPUTS、TTF2TFMINPUTS
.rpl TTF2PKINPUTS,TTF2TFMINPUTS
.tfm TFM 字体
.sfd TTF2PKINPUTS,TTF2TFMINPUTS

请查阅信息文件 凯帕西 有关这些变量的详细信息。

您应该将 TEXMFCNF 变量设置为 texmf.cnf 配置所在的目录
文件驻留。

这是找出 a 的值的正确命令 凯帕西 变量已设置(我们使用
TTFONTS 为例)。 如果没有在 texmf.cnf 或
在环境中,从而指向硬编码到
凯帕西 图书馆。

kpsewhich -progname=ttf2tfm -expand-var='$TTFONTS'

我们也选择程序名称,因为可以指定变量
仅搜索某个程序——在我们的示例中,它将是 TTFONTS.ttf2tfm。

一种类似但不完全相同的方法是说

kpsewhich -progname=ttf2tfm -show-path='truetype 字体'

[格式类型的完整列表可以通过在命令上说“kpsewhich --help”来获得
行提示。] 这正是 ttf2tfm (和 ttf2pk) 搜索文件; 这
缺点是所有变量都被扩展,这会导致很长的字符串。

emtex 目录
这里的后缀列表及其要设置的相关环境变量
autoexec.bat(对应于 OS/2 的 config.sys):

.ttf 和 .ttc TTFONTS
ttf2pk.cfg TTFCFG 文件
.map TTFCFG
.enc TTFCFG
.rpl TTFCFG
.tfm 文本文件
.sfd TTFCFG

如果未设置其中一个变量,则会发出警告消息。 当前目录
将永远被搜索。 像往常一样,一个感叹号附加到目录路径
导致搜索一级深的子目录,两个感叹号导致所有
要搜索的子目录。 例子:

TTFONTS=c:\fonts\truetype!!;d:\myfonts\truetype!

像 `c:\fonts!!\truetype' 这样的结构是不可能的。

MIKTEX
以上皆是 ttf2tfmttf2pk 已经完全融入 MIKTEX。 请参考
的文件 MIKTEX 有关文件搜索的更多详细信息。

问题


更多来自Google的 虚拟机 实现只允许 100 字节的 TFM 标头(限制为 1024 in
TFM 文件格式本身):8 个字节用于校验和和设计大小,40 个字节用于系列
名称,20 个字节用于编码,4 个字节用于面部字节。 只剩下 28 个字节
对于一些使用的附加信息 ttf2tfm 用于识别字符串
(本质上是命令行的副本),并且总是超出此限制。

最佳解决方案是增加值 最大标头字节数 在文件 vptovf.web 中
(也可能是 pltotf.web)到 400 并重新编译 虚拟机 (和 托特夫)。 除此以外
你会得到一些(无害的)错误信息,比如

这个 HEADER 索引对于我目前的表大小来说太大了

可以安全地忽略。

使用 onworks.net 服务在线使用 ttf2tfm


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad