Формат xtable курсива для столбца

Мне нужно вставить названия видов в таблицу, созданную xtable в моем файле Rnw, и я хочу преобразовать относительный столбец в формат курсива. Возможно ли это без какого-либо ручного вмешательства?

Мой звонок:

xtable(cklist, caption="Checklist...", align='lllc',label = 'tab:ckzygo')

1 ответ

Чтобы набрать столбец курсивом (или любой другой нестандартный шрифт), вы должны использовать >{\cmd} синтаксис для спецификации столбца.

Назначение типа столбца >{\itshape}l генерирует выравнивание по левому краю курсивом.

Это лучшее решение, чем iris$Species <- paste0("\\textit{", iris$Species, "}") как предлагается в комментариях, потому что вам не нужно ни изменять свои данные, ни отключать очистку текста.

Маленькая иллюстрация:

\documentclass{article}
\usepackage{array}
\begin{document}
<<xtableItalics, results = "asis">>=
library(xtable)

print(xtable(head(iris), align = c(rep("l", 5), ">{\\itshape}l")))
@
\end{document}

PDF выглядит так:

Обратите внимание, что вам нужно использовать array пакет для этого на работу.

РЕДАКТИРОВАТЬ: чтобы показать гибкость этого подхода, еще два примера:

print(xtable(head(iris), align = c(rep("l", 5), ">{\\textit\\bgroup}l<{\\egroup}")))
print(xtable(head(iris), align = c(rep("l", 5), ">{\\textcolor{red}\\bgroup}l<{\\egroup}")))

Первая строка использует \textit{} вместо \itshape набирать курсивом. Как \textit{} требует изменения текста в качестве аргумента, нам нужен немного более сложный синтаксис. (Это описано в статье на wikibooks.org, ссылки на которую приведены выше.)

Этот синтаксис также можно использовать, например, для изменения цвета текста. В более сложных случаях lrbox требуется, как описано в связанной статье.

Другие вопросы по тегам