代码之家  ›  专栏  ›  技术社区  ›  ivo Welch

在macos上的R绘图中使用texlive字体

  •  0
  • ivo Welch  · 技术社区  · 6 年前

    我以前让它工作,但现在不工作了。以下是我尝试将texlive 2018 bera字体提供给R:

    $ R --no-init-file
    > options(texlive= "~/Documents/texlive/2018/")
    > options(texfonts= paste0(getOption("texlive"), "/texmf-dist/fonts/"))
    >
    > pdfFonts(Bera = Type1Font("Bera", paste0(getOption("texfonts"), "afm/public/bera/", c("fvsr8a","fvsb8a","fvsro8a","fvsbo8a"), ".afm")))
    > options(pfbdir = c(paste0(getOption("texfonts"), "type1/public/bera/")))
    > pdfFonts("Bera")
    $Bera
    $family
    [1] "Bera"
    
    $metrics
    [1] "~/Documents/texlive/2018//texmf-dist/fonts/afm/public/bera/fvsr8a.afm"
    [2] "~/Documents/texlive/2018//texmf-dist/fonts/afm/public/bera/fvsb8a.afm"
    [3] "~/Documents/texlive/2018//texmf-dist/fonts/afm/public/bera/fvsro8a.afm"
    [4] "~/Documents/texlive/2018//texmf-dist/fonts/afm/public/bera/fvsbo8a.afm"
    [5] "Symbol.afm"
    
    $encoding
    [1] "default"
    
    attr(,"class")
    [1] "Type1Font"
    
    > pdf(file="test.pdf")
    > plot( 1 )
    > dev.off()
    null device
              1
    
    $ pdffonts test.pdf  ## from brew poppler
    name                                 type              encoding         emb sub uni object ID
    ------------------------------------ ----------------- ---------------- --- --- --- ---------
    ZapfDingbats                         Type 1            ZapfDingbats     no  no  no      10  0
    Helvetica                            Type 1            Custom           no  no  no      11  0
    $ ls ~/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fv*
    /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fveb8a.afm   /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvmro8a.afm
    /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fver8a.afm   /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvsb8a.afm
    /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvmb8a.afm   /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvsbo8a.afm
    /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvmbo8a.afm  /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvsr8a.afm
    /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvmr8a.afm   /Users/ivo/Documents/texlive/2018/texmf-dist/fonts/afm/public/bera/fvsro8a.afm
    $ ls ~/Documents/texlive/2018/texmf-dist/fonts/type1/public/bera/
    fveb8a.pfb  fver8a.pfb  fvmb8a.pfb  fvmbo8a.pfb  fvmr8a.pfb  fvmro8a.pfb  fvsb8a.pfb  fvsbo8a.pfb  fvsr8a.pfb  fvsro8a.pfb
    

    也许pfb字体也需要安装在macos本身上,这过去很简单(需要双击字体名称,但最新的macos似乎不再喜欢这种字体了。或者其他什么地方出了问题?

    更新:我还尝试了showtext软件包(需要安装XQuartz)。同样的结果:

    n <- "~/Documents/texlive/2018//texmf-dist/fonts/type1/public/bera/"
    library( showtext )
    font_add("Bera", paste0(n,"fvsr8a.pfb"), bold=paste0(n,"fvsb8a.pfb"),italic=paste0(n,"fvsro8a.pfb"),bolditalic=paste0(n,"fvsbo8a.pfb"))
    showtext_auto()
    pdf(file="t.pdf")
    showtext_auto()
    plot(1:20)
    dev.off()
    

    同样的结果---我的texlive bera(pfb)字体对PDF不可见。

    一个指向一步一步文档的指针(如何处理和诊断问题)会很好。请帮忙。

    1 回复  |  直到 6 年前
        1
  •  0
  •   ivo Welch    4 年前

    我终于成功了。步骤:

    https://tex.stackexchange.com/questions/457922/making-texlive-bera-font-accessible-on-macos-r-etc

    brew tap homebrew/cask-fonts
    brew install --cask font-bitstream-vera  # after 2021
    

    brew search font- .

    [2] 按照中的说明操作 https://cran.r-project.org/web/packages/extrafont/README.html

    install.packages('extrafont')
    library(extrafont)
    font_import()
    loadfonts()
    

    [3] 使用它们

    > pdf("test.pdf", family="Bitstream Vera Serif")
    > plot(1:10)
    > dev.off()
    

    [4] 检查test.pdf文件是否使用字体(必须安装poppler):

    pdffonts test.pdf
    name                                 type              encoding         emb sub uni object ID
    ------------------------------------ ----------------- ---------------- --- --- --- ---------
    ZapfDingbats                         Type 1            ZapfDingbats     no  no  no      10  0
    BitstreamVeraSerif-Roman             Type 1            Custom           no  no  no      11  0