【问题标题】:Greek letters in ggraph nodes in R MarkdownR Markdown中ggraph节点中的希腊字母
【发布时间】:2020-06-14 01:29:34
【问题描述】:

当我在 RStudio 中运行下面的 R 脚本时,theta 显示正确。

---
title: "test"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(tidygraph)
library(ggraph)
```

# Greek letters
```{r ggraph}
nodes<-data.frame(label=c("θ","S"))
edges<-data.frame(from=c(2),to=c(1))
graph<-tbl_graph(nodes=nodes,edges=edges)
ggraph::ggraph(graph,layout="fr")+
    ggraph::geom_edge_link()+
    ggraph::geom_node_label(mapping = aes(label=label))     
```

但是当我编织它时,我收到了这个错误信息(部分是丹麦语):

!包 inputenc 错误:Unicode 字符 θ (U+03B8) (inputenc) 未设置为与 LaTeX 一起使用。

如果您使用的是其他 LaTeX 引擎(例如 xelatex),请尝试使用 乳胶。对于 R Markdown 用户,请参阅 https://bookdown.org/yihui/rmarkdown/pdf-document.htmlFejl:LaTeX 无法编译 test.tex。见https://yihui.org/tinytex/r/#debugging 用于调试提示。有关更多信息,请参阅 test.log。此外: Advarselsbeskeder: 1: 我 grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 2: I grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 3: I grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 4: I grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 5: I grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 6: 我 grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 7: 我 grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for 8: 我 grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet for Kørsel 止动阀

我尝试使用表达式(θ)而不是字符本身,但这不起作用。有什么想法吗?

【问题讨论】:

    标签: r ggplot2 r-markdown ggraph


    【解决方案1】:

    可能有更好的方法来解决这个问题,但解决您的问题的一种方法是:

    1. 使用xelatexfontenc 包;
    2. 强制dev"jpeg""png" 或“cairo_pdf”生成数字(θ 可能会导致其他设备出现问题)。

    在我用过的 RMarkdown 文档下面

        ---
        title: "test"
        header_includes:
            - \usepackage[T1]{fontenc}
        output:
            pdf_document:
              latex_engine: xelatex
        ---
    
    
        ```{r setup, include=FALSE}
         knitr::opts_chunk$set(echo = TRUE, dev = "png", dpi = 300)
         library(tidygraph)
         library(ggraph)
         ```
    
        # Greek letters
    
        ```{r ggraph}
        library(ggraph)
        library(ggplot2)
        nodes<-data.frame(label=c("θ","S"))
        edges<-data.frame(from=c(2),to=c(1))
        graph<-tbl_graph(nodes=nodes,edges=edges)
        ggraph::ggraph(graph,layout="fr")+
            ggraph::geom_edge_link()+
            ggraph::geom_node_label(mapping = aes(label=label))
        ```
    

    【讨论】:

    • 非常感谢您提供这个简单的解决方案!我想找到一种方法让它独立于乳胶版本 - 我在我正在开发的包中的 ggraph 中使用希腊字母。但这会起作用,我可以在帮助文档中添加说明。
    • 我用“cairo_pdf”而不是“png”测试了您的解决方案,效果也很好。然后图中的文本就可以搜索了。
    • 我会在帖子中添加这个作为编辑!
    猜你喜欢
    • 2011-08-28
    • 2015-08-12
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2015-08-10
    • 2017-07-22
    相关资源
    最近更新 更多