2015-09-06 29 views
4

我需要在我的Rnw文件中的xtable創建的表中插入物種名稱,我想將相關列轉換爲斜體格式。沒有任何人工干預可能嗎?列的xtable斜體格式

我的電話是:

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

您可以將latex命令粘貼到需要斜體的列的周圍。因此,例如,'iris $ Species < - paste0(「\\ textit {」,iris $ Species,「}」); print(xtable(head(iris)),sanitize.text.function = identity)'(但我想這算作手動干預) – user20650

+0

,但它完美的工作!謝謝 – bioglp

+1

@ user20650解決方案的優點(在我的使用情況下)是,它將列格式應用於格式,但不將**應用於標題。即它給出了類似於下面答案中發佈的結果,除了列標題「種類」不是斜體。 –

回答

2

排版斜體一列(或任何其他非標準字體形狀),你應該使用>{\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看起來像: enter image description here

請注意,您需要使用array包這個工作。

EDIT:爲了顯示該方法的靈活性,兩個例子:

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,如鏈接文章中所述。

+0

(+1)很好的答案,我沒有意識到這一點。一些快速搜索,我看到你可以使用'bfseries'大膽。有沒有改變顏色的等效方法? (一個側面說明 - 輸出略有不同,因爲'itshape'不能糾正間距[這裏討論](http://tex.stackexchange.com/questions/41681/correct-way-to-bold-italicize-text/41684#41684) – user20650

+1

@ user20650是的,改變顏色也是可以的,我更新了我的答案以表明這一點,我也包括瞭如何使用'textit'而不是'itshape'在答案的第一個版本中,我避免了這個因爲語法有點複雜。 –