С тех пор я нашел решение этой проблемы. Как указывает @ dash2 выше, это не та возможность, которая встроена в сам huxtable - но с некоторыми незначительными изменениями она достижима.
Один из способов - настроить встроенные функции quick_rtf
Huxtables (расположенные в R / quick-functions.R в упаковке). Эта функция дополнительно записывает код, окружающий таблицу RTF, включая таблицы шрифтов и цветов. Сразу после этих таблиц вы можете вставить код RTF для управления некоторыми свойствами документа.
Фактическое ключевое слово (ссылающееся на спецификацию RTF ), которое вы хотите использовать для альбомной ориентации: \ lndscpsxn.
- \ marglN - левый край (где N - твипс - 1440 твипов = 1 дюйм)
- \ margr - правый
- \ margt is top
- \ margb - снизу
- \ paperw - ширина
- \ paperh - высота
- \ headery - высота заголовка
- \ footery - это высота нижнего колонтитула
Так что, если вы соберете все это вместе (с несколькими другими вещами), если вы хотите документ с 1 "полями, .5" в верхнем и нижнем колонтитулах, 8.5 "X Для 11-дюймового документа в альбомной ориентации вам понадобится строка после таблиц шрифтов и цветов, которая выглядит следующим образом:
\paperw15840\paperh12240\widowctrl\ftnbj\fet0\sectd\linex0\lndscpsxn
\margl1440\margr1440\margt1440\margb1440
\headery720\footery720
Эта строка следует после таблицы шрифтов и цветов, но до начала кода таблицы. , Так что в quick_rtf
вы можете добавить опцию для ориентации. Если для параметра задано значение landscape, вы сохраняете указанную выше строку (вы можете исключить информацию о полях и нижнем колонтитуле, чтобы сохранить ее простоту, но это другие свойства, которыми вы можете управлять), и добавить ее в раздел, записывая файл:
landscape_str <- "\\paperw15840\\paperh12240\\widowctrl\\ftnbj\\fet0\\sectd\\lndscpsxn\\linex0"
sink(file)
tryCatch({
cat("{\\rtf1\\ansi\\deff0\n")
print(fc_tbls)
# Write landscape orientation string if selected
if (orientation == "landscape") cat(landscape_str)
cat("\n\n\n")
lapply(hts, print_rtf)
cat("\n\n\n}")
},
error = identity,
finally = {sink()}
)