是否可以将 fontawesome 包移植到 pdflatex?

是否可以将 fontawesome 包移植到 pdflatex?

我真的很喜欢这个fontawesome包,它几乎包含了我文档中需要的所有奇特符号。

现在我正在处理必须使用 pdflatex 的第三方文档,我真的很怀念 fontawesome 符号。

将现有软件包移植到 pdflatex 需要做些什么?这是一项简单的任务还是需要进行大量重写?

答案1

正如一些评论者指出的那样,这并不是一件小事,但由于 ,也不是那么复杂lcdf-tools

实际上fontawesome从 4.3.0 版本开始就已经完成了,下面是其完成方式的综合:

  • 识别原始字体中的字形。对于 OpenType 字体,otfinfo -g将为您提供字体中每个字形的内部名称;
  • 为字体生成一个编码(.enc)文件,按内部名称列出每个字形;
  • 将原始字体转换为 Type1 (Printer Font Binary, .pfb) + TeX Font Metric ( .tfm)。对于 OpenType 字体,otftotfm结合您生成的编码文件将自动完成工作;
  • 将映射信息行添加到您的文档/样式/类中以告知dvips以及pdftex如何dvipdfm使用转换后的字体:

    \pdfmapline{+FontAwesome--fontawesome FontAwesome "fontawesome ReEncodeFont" <[fontawesome.enc <FontAwesome.pfb}
    \font\FA=FontAwesome--fontawesome.enc
    

    其中FontAwesome--fontawesome(.tfm)是 TeX Font Metric 文件的文件名、FontAwesome(.pfb)Type1 转换的文件名和fontawesome(.enc)编码文件的文件名。第二行创建字体快捷方式 ( \FA);并且

  • 或者,如果您不想通过编码文件中的字形等级来访问它们,则可以创建特定命令来访问您的字形(例如\symbol{13})。

如果您的符号字体有超过 256 个字形,您将需要重复此过程(并创建多个 TeX 字体),因为每个编码文件只能引用 256 个字形。

如果你想知道细节,用于fontawesome可以在 Github 上找到

答案2

正如解释的那样这个问题以及对此的回答,该软件包已经支持 pdfTeX,但字体未正确配置为 LaTeX。将以下内容(或来自另一个答案的等效代码)添加到您的序言中以更正此问题:

\usepackage{fontawesome}
\DeclareFontFamily{U}{FontAwesomeOne}{}
\DeclareFontShape{U}{FontAwesomeOne}{m}{n}{<-> FontAwesome--fontawesomeone}{}
\DeclareRobustCommand\FAone{\fontencoding{U}\fontfamily{FontAwesomeOne}\fontseries{m}\fontshape{n}\selectfont}
\DeclareFontFamily{U}{FontAwesomeTwo}{}
\DeclareFontShape{U}{FontAwesomeTwo}{m}{n}{<-> FontAwesome--fontawesometwo}{}
\DeclareRobustCommand\FAtwo{\fontencoding{U}\fontfamily{FontAwesomeTwo}\fontseries{m}\fontshape{n}\selectfont}
\DeclareFontFamily{U}{FontAwesomeThree}{}
\DeclareFontShape{U}{FontAwesomeThree}{m}{n}{<-> FontAwesome--fontawesomethree}{}
\DeclareRobustCommand\FAthree{\fontencoding{U}\fontfamily{FontAwesomeThree}\fontseries{m}\fontshape{n}\selectfont}

那么一切都会顺利进行......

相关内容