• 崔永元骚扰范冰冰,怎么成了举报偷税漏税?他自己也不得不承认是在嫉妒之心嘛!(原创首发) 2020-01-17
  • 西部网(陕西新闻网)www.cnwest.com 2020-01-17
  • 统计局:一线城市房价同比持续下降 31个二线城市房价上涨 ——凤凰网房产重庆 2019-12-27
  • 官宣!女排四大功勋球员同时退役 没有两大前国手 2019-12-27
  • 徕卡M10限量版外观曝光-热门标签-华商网数码 2019-12-20
  • 70期:开创了中国人太空“开飞船”历史的刘旺 2019-12-03
  • 经济数字包括成本,经济数字好看,但其效益如何会是经济收入增加没有经济效益,那是成本增加比经济收入增加还多。 2019-11-30
  • 中方有力回击!美国多个行业喊痛:“加征关税就是对美国消费者征税” 2019-11-30
  • Le calendrier deux sessions de Xi Jinping 2019-11-28
  • 北京市房山区区长陈清拟任区委书记 2019-11-23
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-11-23
  • 多座跨江跨海大桥相继建成 粤港澳大湾区城市群将形成一小时经济圈 2019-11-16
  • 光明日报:不存在的补脑保健品,为何总有人趋之若鹜 2019-11-13
  • [微笑]科普:房屋价值的构成中,土地及建安成本只占很小的一部分,真正值钱的是位置,因为位置决定了关联资源的多寡! 2019-11-01
  • 乡贤们,台州发“英雄帖”了 2019-11-01
  • 千禧码王:LaTeX技巧928: 怎样在PdfLaTeX中使用fontawesome package?

    最老版特码诗 www.kdltu.tw 根据CTAN: Package fontawesome说明,4.4.0version的fontawesome package可以不依赖其他包在Pdf(La)TeX中直接使用,我用MiKTeX安装了v4.4.0的fontawesome package,然而经过测试使用PdfLaTeX无法通过,但使用XeLaTeX却可以通过(甚至不需要声明fontspec包),,如下源代码通过XeLaTeX编译可以成功出现一个哲♂学符号。

     类似问题在StackExchange上也有提问pdftex - fontawesome and pdflatex,检查了一下MiKTeX的安装路径发现文件是齐全的,MiKTeX也确实是最新的,但是AppData文件夹下没有MiKTeX的缓存文件。 测试代码如下:

    \documentclass{article}
    %\usepackage{fontspec}
    \usepackage{fontawesome}
    \begin{document}
    	\faMars
    \end{document}

    字体配置过程

    我在 TeX Live 2015 下面试了一下,代码没问题。 简单地说,代码没问题,不是你的错。问题可能是这个字体包当初安装时出现异常错误,此时你需要打开 MiKTeX 的 Package Manager,找到这个包,在里面删除(- 号)再重装(+ 号)fontawesome 包,应该就正常了。问题也可能是 MiKTeX 对字体包打包出错,此时你可能需要等待 MiKTeX 更新更正这个错误,你再跟着 Update。 我找到我的测试机上的 MiKTeX,重现了这个问题。查看了一下文件,确定应该是 MiKTeX 本身的错误。手工解决办法是:

    1. 在命令行运行下述命令:

    2. initexmf --edit-config-file updmap

      在弹出的记事本中增加下面一行并保存退出:

      Map fontawesome.map
    3. 在命令行运行下述命令:initexmf --mkmaps

    4. 或者 updmap  命令也可。

    上面的步骤会手工修复 fontawesome 字体的映射,并保存于用户目录中。 (按:如果从来没有生成过用户目录的字体映射,上面的命令加上 --admin 选项,则会修改系统目录的字体映射文件,也可以,对所有用户有效。但如果用户自己已经生成过字体映射,加 --admin 选项的设置会无效。) 当然,鉴于 TeX Live 没在这里出问题,改为使用 TeX Live 也是一种解决方案。个人以为出现这种问题,是 MiKTeX 处理管理员安装的系统宏包与用户安装宏包时,逻辑有问题造成的错误,还是换 TeX Live 省心。 ------------ 技术细节的分割线 ------------ 在 pdfLaTeX 要使用 fontawesome 字体的 \faMars 命令。顺利的话,这个过程是这样的:

    • LaTeX 从 fontawesome 宏包代码找到应该使用 U 编码的 fontawesomeone 字体族。

    • 为此,LaTeX 会首先查找 ufontawesomeone.fd 这个字体定义文件:

    • \DeclareFontFamily{U}{fontawesomeone}{}

    • \DeclareFontShape{U}{fontawesomeone}{m}{n}{<-> FontAwesome--fontawesomeone}{}

    • 这里字体定义文件将 U/fontawesomeone/m/n 这个 NFSS 字体坐标映射到了 FontAwesome--fontawesomeone 这个实际字体名。

    • 然后一方面,TeX 引擎查找 FontAwesome--fontawesomeone.tfm 文件,找到字体的 metrics 信息,为字符生成合适大小的盒子。

    • 另一方面,pdfTeX 会查找字体映射文件 pdftex.map,在其中找到对应的字体映射行:

    • FontAwesome--fontawesomeone FontAwesome " fontawesomeone ReEncodeFont " <[fontawesomeone.enc <FontAwesome.pfb
    • 于是知道使用文件 fontawesomeone.enc 来处理字符编码重映射,而实际的字符 glyph 则在字体文件 FontAwesome.pfb 中寻找。

    • 于是 pdfTeX 就从 pfb 字体文件中找到的 glyph 输出到最终的 PDF 文件中,这个符号占用的位置由 tfm 文件决定,而符号的编码由 enc 文件确定。

    那么现在,MiKTeX 出错了。问题出在哪个环节?如果对上面过程不够熟悉,可以看 tex-font-errors-cheatsheet 这个文档。就会知道这个错误信息出现在文档中的第 4 步,也就是说没有找到正确的字体映射(注意到 fontawesome 并没有使用 virtual font):文档已经给出了大致的解决思路,即为 pdfTeX 重建字体映射。对于这个问题,应该是:

    • 首先确定字体本身的字体映射文件存在。即应该有 fontawesome.map 文件,并在 TEXMF/fonts/map/dvips/fontawesome/ 目录下,其中 TEXMF 是 MiKTeX 的包安装根路径。如果不在或者位置不对,说明宏包安装时出错,或者 MiKTeX 打包有问题。

    • 然后使用字体映射更新工具 updmap,将 fontawesome.map 文件加入其配置文件。图里面给的是 Linux 下 TeX Live 的命令,MiKTeX 应该用 initexmf --edit-config-file 修改配置文件,加入 fontawesome.map,并用 updmap 更新。

    上面做完应该就好了。 

     作者:刘海洋 

    链接:https://www.zhihu.com/question/27589739/answer/37255728

    来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    分享到:
    未经允许不得转载:LaTeX技巧928: 怎样在PdfLaTeX中使用fontawesome package?
    已有 条意见

      最新文章

      加载中...
        本站提供专业LaTeX排版、咨询、定制服务,请点击下图咨询详情


        全国首个精品的LaTeX视频教程,大牛带着你入门,让LaTeX学习不再纠结,请点击下图咨询详情

        热门评论

          联系我们

          交流QQ群:91940767
          本站QQ号:343083553
          邮箱联系[email protected]
          淘宝店铺https://shop240512713.taobao.com/ 提供排版,模板定制,培训,图片处理,视频教程等LaTeX服务。

          关注我们微信公众号

          如果您投稿或者希望加入我们团队,请发送您的简历到[email protected]。
        • 崔永元骚扰范冰冰,怎么成了举报偷税漏税?他自己也不得不承认是在嫉妒之心嘛!(原创首发) 2020-01-17
        • 西部网(陕西新闻网)www.cnwest.com 2020-01-17
        • 统计局:一线城市房价同比持续下降 31个二线城市房价上涨 ——凤凰网房产重庆 2019-12-27
        • 官宣!女排四大功勋球员同时退役 没有两大前国手 2019-12-27
        • 徕卡M10限量版外观曝光-热门标签-华商网数码 2019-12-20
        • 70期:开创了中国人太空“开飞船”历史的刘旺 2019-12-03
        • 经济数字包括成本,经济数字好看,但其效益如何会是经济收入增加没有经济效益,那是成本增加比经济收入增加还多。 2019-11-30
        • 中方有力回击!美国多个行业喊痛:“加征关税就是对美国消费者征税” 2019-11-30
        • Le calendrier deux sessions de Xi Jinping 2019-11-28
        • 北京市房山区区长陈清拟任区委书记 2019-11-23
        • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-11-23
        • 多座跨江跨海大桥相继建成 粤港澳大湾区城市群将形成一小时经济圈 2019-11-16
        • 光明日报:不存在的补脑保健品,为何总有人趋之若鹜 2019-11-13
        • [微笑]科普:房屋价值的构成中,土地及建安成本只占很小的一部分,真正值钱的是位置,因为位置决定了关联资源的多寡! 2019-11-01
        • 乡贤们,台州发“英雄帖”了 2019-11-01
        • 360uu游戏娱乐平台 捕鱼达人2免费版 江西快三开奖走势图 河南11选5开奖软件 六合小天才 江西新时时彩开奖数据 内蒙古时时彩 wx哪里可以赚钱 燕赵福彩20选5开奖 河南貔喜脉动棋牌下载