在 LaTeX 中安装 TTF 字体

在 LaTeX 中安装 TTF 字体

LaTeX 令人讨厌的方面之一是默认字体数量有限,而且制作新字体“LaTeX”非常麻烦。我有一组 TrueType 字体想要准备使用,而且我肯定想确保我有这些字体的矢量版本(即不是 Type 3/位图版本)。有没有相对轻松的方法来做到这一点?

答案1

一个解决方案是使用西拉特克斯,它可以让您(大部分)轻松使用系统字体。

答案2

最简单的方法是使用 XeTeX 或 LuaTeX 和fontspec软件包。它们可以使用系统上安装的任何 TTF 字体。对于 Linux,这意味着系统范围的字体和您输入的任何字体~/.fonts/(例如通过 Nautilus 安装它们)。

要使用字体,您只需加载fontspec包并设置字体:

\documentclass{article}

\usepackage{fontspec}
\setmainfont{Arial}

\begin{document}
Lorem ipsum...
\end{document}

xelatex然后使用或编译该文档lualatexfontspec文档描述了改变字体的所有可能性。

唯一的缺点(据我所知)是您只能生成 .pdf 文件,并且需要足够新的 TeX 发行版(TeX Live 2009 应该适用于 XeTeX,而 Tex Live 2010 应该适用于 LuaTeX)。

答案3

PdfTeX 的流程如下(有点取决于你的发行版):

  1. 从 CPAN 的 Fontools 获取 autoinst.pl
  2. 从 lcdf-typetools 获取 otf2tfm
  3. 在所有 ttfs 上运行 autoinst.pl(使用 Perl)
  4. 添加生成的 PdfTeX 字体映射(例如在 MikTeX 中)initexmf --edit-config-file updmap,添加Map yourmap.map并运行initexmf --mkmaps

您也可以手动完成整个过程(autoinst.pl 只是一个智能包装器):

  1. 使用以下方法创建 tfm 指标和 ttfonts.mapttf2tfm
  2. 使用创建虚拟字体表vptovf
  3. 使用以下方式创建 afm 指标ttf2afm
  4. 使用以下方式创建 pdf 字体映射afm2tfm
  5. 将*.tfm, *.afm, *.ttf, *.vf 放入fonts/tfm/等中。
  6. 添加字体映射
  7. 创建一个包/sty,将各种字体拉入一个字体系列(这是我遇到的问题)

我的运行命令的 ruby​​ 脚本如下所示:

require 'fileutils'  

basename = "Nexus"

open("#{basename}.map", 'a') { |pdfFontMap|

    Dir["#{basename}*.ttf"].each{ |file|

        file.sub!(/\.ttf$/, "")

        ttf = "#{file}.ttf"

        file.gsub!(/_/,"") # Remove underscores

        puts `ttf2tfm #{ttf} -q -T T1-WGL4.enc -v ec#{file}.vpl rec#{file}.tfm >> ttfonts.map`

        puts `vptovf ec#{file}.vpl ec#{file}.vf rec#{file}.tfm`

        puts `ttf2afm -e T1-WGL4.enc -o rec#{file}.afm #{ttf}`

        pdfFontMap.puts `afm2tfm rec#{file}.afm -T T1-WGL4.enc rec#{file}.tfm`.gsub(/\r|\n/, "") + " <#{ttf}"
    }
}

您可以在以下位置找到有关手动方式的更多详细信息:

http://www.radamir.com/tex/ttf-tex.htm

附言:

  • initexmf --update-fndb每次将新文件放入某处时运行

答案4

LuaTeX 带来了 TTF 支持,但我不知道它现在有多成熟。

相关内容