Ответ 1
Лучший способ, который я нашел для этого, - указать столбец таблицы как столбец "фиксированной ширины", чтобы текст внутри него обертывался. С пакетом xtable
это можно сделать с помощью:
align( calqc_xtable ) <- c( 'l', 'p{1.5in}', rep('c',5) )
xtable
требует, чтобы вы предоставили выравнивание для столбца опций "rownames" - это начальная спецификация l
. Спецификация раздела p{1.5in}
используется для вашего первого заголовка столбца, который довольно длинный. Это ограничивает его шириной в 1,5 дюйма и заголовок наматывается на несколько строк, если это необходимо. Остальные пять столбцов центрируются с использованием спецификатора c
.
Одна из основных проблем с столбцами с фиксированной шириной, такими как p{1.5in}
, заключается в том, что они устанавливают текст с использованием выравнивания выравнивания. Это приводит к расширению интервала между словами в каждой строке, так что линия будет заполнять все выделенные 1,5 дюйма.
Честно говоря, в большинстве случаев это приводит к результатам, которые я не могу описать с использованием вежливого языка (я - любительский типографский орех, и такое поведение вызывает лицевые клещи).
Исправление состоит в том, чтобы предоставить команду выравнивания латекса путем добавления поля >{}
к спецификации столбца:
align( calqc_xtable ) <- c( 'l', '>{\\centering}p{1.5in}', rep('c',4) )
Другими полезными командами выравнивания являются:
- \raggedright → заставляет текст выравниваться по левому краю
- \raggedleft → вызывает выравнивание текста
Не забудьте удвоить обратную косую черту, чтобы избежать их в R-строках. Вам также может потребоваться отключить функцию очистки строки, которая по умолчанию используется xtable
.
Примечание
Этот метод выравнивания не удастся, если он используется в последнем столбце таблицы , если строки таблицы не заканчиваются \tabularnewline
вместо \\
, что, я думаю, не в случае с xtable
и не легко настраивается с помощью любого настраиваемого пользователем варианта.
Другая вещь, которую следует учитывать, - это то, что вам может не потребоваться, чтобы весь столбец был перенесен на 1,5 дюйма и центрирован - только заголовок. В этом случае отключите дезинфекцию строки xtable
и установите свой заголовок, используя ячейку \multicolumn
шириной 1:
names(calqc_table)[1]<-"\\multicolumn{1}{>{\\centering}p{1.5in}}{Identifier of the Run within the Study}"