• 岚山区拨付595 万元补助农村危房改造 2019-10-11
  • 烈日下挥汗如雨 看武警丽水支队“魔鬼周” 2019-10-11
  • 党的十九大最重大的理论成就 2019-09-19
  • 外国领导人祝贺我新一届领导人 2019-09-19
  • 西安启动唐长安城明德门遗址保护工程 2019-09-16
  • 博物馆需要高水平策展人 2019-09-11
  • 凯迪拉克:在高速公路上释放双手很安全 2019-09-11
  • 苗山脱贫影像志——父母在 不远行 2019-09-04
  • 96次航拍峨眉 换个角度看巴蜀名山 中国国家地理网 2019-08-31
  • 张一山恋情遭曝光,女友竟是她… 2019-08-21
  • 人民日报评论员:在党的引领下汇聚圆梦力量 2019-08-05
  • 长治职业技术学院“学习新思想千万师生同上一堂课活动”首场授课开讲 2019-08-05
  • 清华美院“毕业拍”作品被一抢而光 2019-07-31
  • “互联网+”开启乌鲁木齐智能环保时代 2019-07-05
  • 重大疾病贫困患者报销补偿比超90% 2019-06-25
  • 六合福星: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]。
        • 岚山区拨付595 万元补助农村危房改造 2019-10-11
        • 烈日下挥汗如雨 看武警丽水支队“魔鬼周” 2019-10-11
        • 党的十九大最重大的理论成就 2019-09-19
        • 外国领导人祝贺我新一届领导人 2019-09-19
        • 西安启动唐长安城明德门遗址保护工程 2019-09-16
        • 博物馆需要高水平策展人 2019-09-11
        • 凯迪拉克:在高速公路上释放双手很安全 2019-09-11
        • 苗山脱贫影像志——父母在 不远行 2019-09-04
        • 96次航拍峨眉 换个角度看巴蜀名山 中国国家地理网 2019-08-31
        • 张一山恋情遭曝光,女友竟是她… 2019-08-21
        • 人民日报评论员:在党的引领下汇聚圆梦力量 2019-08-05
        • 长治职业技术学院“学习新思想千万师生同上一堂课活动”首场授课开讲 2019-08-05
        • 清华美院“毕业拍”作品被一抢而光 2019-07-31
        • “互联网+”开启乌鲁木齐智能环保时代 2019-07-05
        • 重大疾病贫困患者报销补偿比超90% 2019-06-25
        • 斗牛明牌4张技巧概率 pk10视频技巧大全 赛车 彩票计划app有哪些 mg游戏官方网站mg账号中心 腾讯分分彩6码两期计划 幸运三分赛车 时时彩包胆怎么选 看牌抢庄斗牛规律 现在市场投资什么稳赚不赔 百人牛牛官网下载