таблица для печати с частичным выделением полужирным шрифтом/курсивом внутри ячейки

Я ищу способ распечатать таблицу из R, но с форматированием внутри ячейки, например, чтобы часть текста в ячейке была выделена жирным шрифтом или курсивом. Обычно я сначала делаю соответствующие data.frame/tibble, а затем форматирую и печатаю их, используя такой пакет, как huxtable или kable. Просмотр документации для huxtable или kableExtra, кажется, что оба пакета рассматривают форматирование как свойства ячеек, подразумевая, что форматирование внутри ячейки либо не поддерживается, либо должно быть реализовано каким-то другим образом. путь.

Если бы я делал ggplot, я бы использовал expression для форматирования текста, например.

library(tidyverse)

ggplot(data=mtcars) +
  ggtitle(expression(paste(bold("bold part"), " not bold part")))

Я думал, что смогу быть умнее, поместив выражения в data.frame, но это, похоже, не поддерживается:

data.frame(var = c(expression(paste(bold("bold part"), "not bold part")),
                   expression(paste(bold("bold part"), "not bold part"))
))
#> Error in as.data.frame.default(x[[i]], optional = TRUE): cannot coerce class ""expression"" to a data.frame

person lost    schedule 11.12.2018    source источник
comment
Я думаю, вам будет полезен пакет gridtable: cran.r -project.org/web/packages/gridExtra/vinnettes/   -  person Pryore    schedule 12.12.2018


Ответы (2)


Re huxtable, вы правы, но это можно обойти. Вот пример с 1 строкой и 1 столбцом, если вы печатаете в HTML:

my_hux <- huxtable("<b>Bold part</b> Not bold part") escape_contents(my_hux)[1, 1] <- FALSE

Вы можете включить произвольный HTML. Что-то подобное будет работать для TeX, очевидно, с форматированием TeX.

person dash2    schedule 14.12.2018

Если вы хотите внести изменения в таблицы данных, я рекомендую вам использовать пакеты grid и gridExtra для построения таблицы, а затем внести изменения в параметры темы.

Без каких-либо данных для игры я не могу точно понять, что вы хотите, но вот общее представление о том, что вы можете сделать (см. Ниже). Я включил другие эстетические параметры для дальнейшего использования.

Затем вы можете сгенерировать вывод в формате PDF на диск C, который затем можно распечатать.

d <- data.frame(A = c(1,2,3,4,5),
                B = c(6,7,8,9,10),
                C = c(11,12,13,14,15))

pdf("Test.pdf", height = 11, width = 10)
grid.table(d, rows = NULL, theme = ttheme_minimal(
core=list(fg_params=list(
hjust=0, 
x=0.1, 
fontface=matrix(c(1,2,3)))))) 
dev.off()

введите здесь описание изображения

person Pryore    schedule 12.12.2018