Я немного озадачен тем, как работает установка ширины столбцов для таблиц в пакете R huxtable
. В документации говорится, что при вызове set_col_width
аргумент value
, если он числовой, задает ширину столбцов в виде пропорций от общей ширины (которая устанавливается set_width
). Но когда я записываю таблицу в Word, числовой вектор для value
, кажется, вместо этого указывает абсолютную ширину столбца (которая мне действительно нравится), по-видимому, в дюймах, независимо от значения, установленного в set_width
. Для вывода в формате PDF спецификации ширины столбца, кажется, не имеют никакого эффекта вообще.
Рассмотрим следующий пример.
library(dplyr)
library(huxtable)
test=data.frame(var1=1918:1925,var2=c(9009,1000:1006),var3 = 1100:1107)
HUX <- hux(test)
# add caption, borders, and colnames
HUX <- set_caption(HUX,"Example table") %>%
set_caption_pos("topleft") %>%
set_top_border(1,,1) %>%
set_bottom_border(final(1), , 1) %>%
set_align(,,"left") %>%
add_colnames()
number_format(HUX)[,2:3] <- list(function(x) prettyNum(x, big.mark=","))
Если я установлю ширину столбцов, они будут отражены в выводе Word, но не в выводе pdf, а, очевидно, как абсолютные, а не пропорциональные ширины.
HUX <- set_width(HUX,1) %>%
set_col_width(1:3, c(2,1,1))
quick_docx(HUX)
quick_pdf(HUX)
file.remove(c("huxtable-output.pdf","huxtable-output.docx"))
HUX <- set_width(HUX,1) %>%
set_col_width(1:3, c(2,3,1))
quick_docx(HUX)
quick_pdf(HUX)
Приведенный выше код изменяет ширину столбцов (и общую ширину таблицы, даже если ширина, заданная в set_width
, не изменяется), но только в Word, а не для вывода в формате PDF. Изменение аргумента в set_with
не имеет никакого эффекта в Word, но смещает таблицу в pdf (хотя внешний вид самой таблицы не изменяется), вероятно, потому, что «область построения таблицы» меньше, и, таким образом, край сдвигается и положение таблицы выравнивается по левому краю в этой «области».
file.remove(c("huxtable-output.pdf","huxtable-output.docx"))
HUX <- set_width(HUX,0.5) %>%
set_col_width(1:3, c(2,3,1))
quick_docx(HUX)
quick_pdf(HUX)
Теперь, когда я пытаюсь указать ширину столбца, используя действительные (я думаю) длины LaTex, это не имеет значения для pdf, и при этом он фактически не устанавливает ширину столбцов для вывода Word.
file.remove(c("huxtable-output.pdf","huxtable-output.docx"))
HUX <- set_width(HUX,1) %>%
set_col_width(1:3, paste0(c(2,3,1),"in"))
quick_docx(HUX)
quick_pdf(HUX)
Более того, теперь, попробовав спецификации длины LaTex, предыдущий код (выше), который сделал успешно установил ширину столбцов для вывода Word, больше не делает этого.
file.remove(c("huxtable-output.pdf","huxtable-output.docx"))
HUX <- set_width(HUX,1) %>%
set_col_width(1:3, c(2,3,1))
quick_docx(HUX)
quick_pdf(HUX)
Я извиняюсь, если упускаю что-то очевидное здесь, но я просто не могу заставить эту спецификацию ширины столбца работать так, как я ожидал. Огромное спасибо всем, кто может это прояснить для меня.
Суть в том, что я хотел бы иметь возможность явно устанавливать ширину столбцов независимо от содержимого ячеек таблицы (т. Е. Ширина столбцов не уменьшается до ширины содержимого ячеек), особенно для записи или вязание в pdf.
Было бы неплохо, чтобы Word работал, но, кроме того, запись в Word, похоже, не сохраняет заголовок таблицы (но я всегда мог добавить заголовок позже в Word).
Я использую huxtable
4.5.0.