【问题标题】:xtable italics format for a column列的 xtable 斜体格式
【发布时间】:2015-09-06 20:59:06
【问题描述】:

我需要在我的 Rnw 文件中由xtable 创建的表中插入物种名称,并且我想将相对列转换为斜体格式。是否可以在没有任何人工干预的情况下进行?

我的电话是:

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

【问题讨论】:

  • 您可以将 latex 命令粘贴到您想要的斜体列周围。所以,例如,iris$Species <- paste0("\\textit{", iris$Species, "}") ; print(xtable(head(iris)), sanitize.text.function = identity)(但我猜这算人工干预)
  • 但效果很好!谢谢
  • @user20650 解决方案的优点(在我的用例中)是它将格式应用于列条目,但 应用于标题。即它给出的结果类似于下面答案中发布的结果,除了列标题“物种”没有斜体。

标签: r knitr sweave xtable


【解决方案1】:

要以斜体(或任何其他非标准字体)排版列,您应该使用>{\cmd} 语法来指定列。

分配列类型>{\itshape}l 会生成一个斜体左对齐列。

这是比 cmets 中建议的 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 是必需的,如链接文章中所述。

【讨论】:

  • (+1)很好的答案,我不知道这种方式。一些快速搜索,我看到你可以使用bfseriessto 加粗。有没有等效的方法来改变颜色? (附注 - 输出略有不同,因为 itshape 没有更正间距 discussed here
  • @user20650 是的,也可以更改颜色。我更新了我的答案以显示这一点。我还包括如何使用textit 而不是itshape。在答案的第一个版本中,我避免了这个,因为语法有点复杂。
猜你喜欢
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 2020-06-02
相关资源
最近更新 更多