Как вставить греческую букву дельта (∆) в заголовок гибкого объекта? - PullRequest
0 голосов
/ 10 сентября 2018

Я использую RMarkdown для создания текстового документа (мне нужен вывод в формате .docx).

Я хотел бы использовать flextable (или любой другой пакет)правильно отформатировать мои заголовки.

Я пытаюсь заставить греческий символ дельта (∆) отображаться правильно ... кажется возможным, потому что на страницах справки здесь (https://davidgohel.github.io/flextable/articles/format.html#display-function) автор успешноиспользует \ u03BC для вставки символа "μ" (и я тоже могу, если я использую его код ниже), но я не могу заставить его работать для дельты, используя \ u2206 или \ u0394, если я заменю \ u03BC на любой из приведенных ниже кодов. Код, который я использую, создает эту таблицу, но я хочу заменить выделенный бит на дельта.

enter image description here

Это то, что я получаю, когда пытаюсь, например, \u2206.

enter image description here

Есть предложения?

library(flextable)
if( require("xtable") ){
  mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4)
  mat <- xtable(mat)
  ft <- xtable_to_flextable(x = mat, NA.string = "-")
  print(ft$col_keys)
  ft <- flextable::display(ft, i = 1, col_key = "X1", 
    pattern = "{{val}}{{pow}}", part = "header",
    formatters = list(val ~ as.character("R"), pow ~ as.character("2") ),
    fprops = list(pow = fp_text(vertical.align = "superscript", font.size = 8))
    )
  ft <- flextable::display(ft, i = 1, col_key = "X2", 
    pattern = "{{val}}{{pow}}", part = "header",
    formatters = list(val ~ as.character("\u03BC"), pow ~ as.character("x") ),
    fprops = list(pow = fp_text(vertical.align = "superscript", font.size = 8))
    )
  ft <- flextable::display(ft, i = 1, col_key = "rowname", 
    pattern = "{{val}}{{pow}}", part = "body",
    formatters = list(val ~ as.character("y"), pow ~ as.character("t-1") ),
    fprops = list(pow = fp_text(vertical.align = "subscript", font.size = 8))
    )
  ft <- set_header_labels(ft, X3 = "F-stat", X4 = "S.E.E", X5 = "DW", rowname = "")
  ft <- autofit(ft)
  ft
}

Обновление

Я становлюсь ближе благодаря полезному предложению Дэвида, но (не очень хорошо разбираясь с flextable), я получаю странное поведение, когда пытаюсь изменить заголовок так, как это было предложено:

library(magrittr)
library(flextable)
library(officer)
AICtable <- data.frame(Model = "test", Parameters = 9, AICc = 4000, dAICc = 0, w = 1)
v.epi.aic <- flextable(AICtable) %>% 
font(fontname = "Times New Roman", part = "all") %>% 
flextable::display(col_key = "dAICc", part = "header",
                                pattern = "{{D}}{{A}}{{cbit}}", 
                                formatters = list(D ~ as.character("D"),
                                                  A ~ as.character("AIC"),
                                cbit ~ as.character("c") ),
                                fprops = list(D = fp_text(font.family = "Symbol"),
                                              A = fp_text(font.family = "Times New Roman"),
                                cbit = fp_text(vertical.align = "subscript")))

v.epi.aic

Обратите внимание, что заголовки столбцов теперь дублируются, и перед символом «∆» появляется «AIC».Значение будет:

Модель, параметры, AICc, ∆AICc, w (и «c» в ∆AICc должно быть индексом).

enter image description here

...