我真的很喜欢这个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}
那么一切都会顺利进行......