gpt4 book ai didi

r - grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font width unknown for character 0x20) 中的警告

转载 作者:行者123 更新时间:2023-12-04 15:26:56 25 4
gpt4 key购买 nike

我想使用免费字体Latoggplot2图形,因为我的 R Markdown 文档的其余部分是用这种字体设置的。

该字体已安装在我的系统上并在 Font Book 中可用(仅一次)。

所有可用的字体都加载了 extrafont包并注册在extrafontdb .

当我将 Markdown 文档编织为 PDF 时,所有文本都在 Lato 中正确排版.但是,我的 ggPlots 的绘图标签没有显示。

我还收到以下警告消息:
Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font width unknown for character 0x20
extrafont::embed_fonts嵌入文档中包含的字体后使用 Lato 显示所有图形的绘图标签作为字体,但

  • 绘图标签在单词之间不包含任何空格,
  • 任何引用(内部链接、URL、引文)都不再起作用。

  • 下面提供了一个 MWE,包括带有和不带有 Lato 作为字体的 ggPlot 数字 ( Lato is freely available here)
    要在之后嵌入字体,需要运行 embed_fonts("TestRmd.pdf", outfile="TestRmd_embedded.pdf")
    任何帮助是极大的赞赏!

    MWE:
    ---
    title: "Embedding Fonts in PDF"
    output: pdf_document
    urlcolor: blue
    ---

    ```{r echo=FALSE}
    library(ggplot2)
    ```

    ### Plot with standard font {#standard}
    ```{r echo=FALSE, out.width = '30%'}
    ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
    ggtitle("Fuel Efficiency of 32 Cars") +
    xlab("Weight (x1000 lb)") + ylab("Miles per Gallon")
    ```

    ### Load fonts and set font for ggplots globally
    ```{r include=FALSE}
    # install.packages("extrafont") # see https://github.com/wch/extrafont/
    library(extrafont)
    # font_import() # run once
    loadfonts() # loadfonts

    # globally set ggplot2 theme and font ("Lato Light")
    theme_set(theme_minimal(base_size=12, base_family="Lato Light"))
    ```

    ### Plot with newly set standard font (= Lato) {#lato}
    ```{r echo=FALSE, out.width = '30%'}
    ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
    ggtitle("Fuel Efficiency of 32 Cars") +
    xlab("Weight (x1000 lb)") + ylab("Miles per Gallon")
    ```

    ### Plot with Impact font {#impact}
    ```{r echo=FALSE, out.width = '30%'}
    ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
    ggtitle("Fuel Efficiency of 32 Cars") +
    xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
    theme(text=element_text(size=16, family="Impact"))
    ```

    ### Run to embed fonts
    ```{r eval=FALSE, include=TRUE}
    embed_fonts("TestRmd.pdf", outfile="TestRmd_embedded.pdf")
    ```

    ### Links test

    Links test 1 (internal reference): [Headline standard](#standard)

    Links test 2 (URL): [RStudio has become a Public Benefit Corporation](https://blog.rstudio.com/2020/01/29/rstudio-pbc)

    添加在:

    一个更简单的问题,但可能与同一问题有关:
    library(extrafont)
    extrafont::font_import()
    p <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point() + theme_minimal(base_size=10, base_family="Lato Light")
    ggsave(p, filename = "iris.pdf")

    保存的 pdf 中的绘图不包含任何标签。使用 cairo_pdf正如在几个 SO(例如 12 )网站上推荐的那样,没有帮助并导致以下错误:
    ggsave(p, filename = "iris.pdf", device = cairo_pdf)
    # In dev(filename = filename, width = dim[1], height = dim[2], ...) :
    # failed to load cairo DLL

    最佳答案

    我尝试使用 extrafont 让它工作但没有成功。我仍然不太确定,但我认为这是一个错误。这是使用包 showtext 的解决方案:

    ---
    title: "Embedding Fonts in PDF"
    output: pdf_document
    urlcolor: blue
    ---

    ```{r include=FALSE}
    # notice the chunk option 'fig.showtext' that tells R to use the showtext
    # functionalities for each ne graphics device opened
    knitr::opts_chunk$set(dev = 'pdf', cache = FALSE, fig.showtext = TRUE)

    library(ggplot2)
    library(showtext)

    font_add(family = "Lato", regular = "/Users/martin/Library/Fonts/Lato-Light.ttf")
    ```


    ### Plot with newly set standard font (= Lato) {#lato}
    ```{r echo=FALSE, out.width = '100%'}
    ggplot(mtcars, aes(x=wt, y=mpg)) +
    geom_point() +
    ggtitle("Fuel Efficiency of 32 Cars") +
    xlab("Weight (x1000 lb)") +
    ylab("Miles per Gallon") +
    theme(text = element_text(family="Lato"))
    ```

    enter image description here

    关于r - grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font width unknown for character 0x20) 中的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62067139/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com