Греческие буквы в узлах ggraph в R Markdown - PullRequest
2 голосов
/ 01 марта 2020

Когда я запускаю скрипт R ниже в RStudio, тэта отображается правильно.

---
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))     
```

Но когда я вяжу его, я получаю это сообщение об ошибке (частично в Dani sh):

! Inputen пакета c Ошибка: символ Unicode θ (U + 03B8) (inputen c) не настроен для использования с LaTeX.

Вместо этого попробуйте другие движки LaTeX (например, xelatex), если вы используете pdflatex , Для пользователей R Markdown см. https://bookdown.org/yihui/rmarkdown/pdf-document.html Fejl: LaTeX не удалось скомпилировать test.tex. См. https://yihui.org/tinytex/r/#debugging для подсказок отладки. Смотрите test.log для получения дополнительной информации. Кроме того: Advarselsbeskeder: 1: I grid.Call (C_textBounds, as.graphicsAnnot (x $ label), x $ x, x $ y,: konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet для сетки 2: I). Вызов (C_textBounds, as.graphicsAnnot (метка x $), x $ x, x $ y,: konverteringsfejl på 'θ' i 'mbcsToSbcs': punktum erstattet для сетки 3: I. Вызов (C_textBounds, as.graphicsAnnot (x $) label), x $ x, x $ y,: konverteringsfejl på 'θ' i 'mbcsToSbcs': пункт назначения для 4: I grid.Call (C_textBounds, as.graphicsAnnot (x $ label), x $ x, x $ y ,: konverteringsfejl på 'θ' i 'mbcsToSbcs': пункт оценки для 5: I grid.Call.graphics (C_text, as.graphicsAnnot (метка x $), x $ x, x $ y,:
konverteringsfejl på ' θ 'i' mbcsToSbcs ': пункт оценки для 6: I grid.Call.graphics (C_text, as.graphicsAnnot (метка x $), x $ x, x $ y,:
конвертированиеfejl på' θ 'i' mbcsToSbcs ': punktum erstattet для 7: I grid.Call.graphics (C_text, as.graphicsAnnot (x $ label), x $ x, x $ y,:
konverteringsfejl på' θ 'i' mbcsToSbcs ': punktum erstattet для 8: я решетка. Call.graphics (C_text, as.graphicsAnnot (метка x $), x $ x, x $ y,:
конвертированиеfejl på 'θ' i 'mbcsToSbcs': punktum erstattet для стопки Кёрселя

Я пытался использовать выражение (тета) вместо самого персонажа, но это не работает. Есть идеи?

1 Ответ

1 голос
/ 01 марта 2020

Возможно, есть лучший способ решить эту проблему, но один из способов - это решить следующие проблемы:

  1. Использовать xelatex и пакет fontenc;
  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))
    ```
...