在RMarkdown中,有没有一种方法可以指定字体颜色?
Answers:
@Ben Bolker提供的链接给出的答案:
Roses are <span style="color:red">red</span>,
violets are <span style="color:blue">blue</span>.
如果选择HTML(幻灯片)作为输出格式,则可以正常工作。
但是,如果您选择pdf(光束)作为输出格式,则它不起作用。如果要创建pdf,请使用LaTeX语法:
Roses are \textcolor{red}{red}, violets are \textcolor{blue}{blue}.
undefined control sequence \textcolor
。命令是pandoc ./main.md -o ./main.pdf
。最主要的文字是最简单的\textcolor{red}{red}
。您使用什么翻译命令?
header-includes: \usepackage{xcolor}
在前言部分中添加
我创建一个像这样的函数:
#Color Format
colFmt = function(x,color){
outputFormat = knitr::opts_knit$get("rmarkdown.pandoc.to")
if(outputFormat == 'latex')
paste("\\textcolor{",color,"}{",x,"}",sep="")
else if(outputFormat == 'html')
paste("<font color='",color,"'>",x,"</font>",sep="")
else
x
}
然后,您可以像这样在内联中使用它:`r colFmt("MY RED TEXT",'red')`
,无论使用乳胶还是HTML文档,彩色文本都会呈现出来。
rmarkdown::render
pdf输出,可以将其转换为$\backslash$
tex文件。因此,从字面上打印字符串,而不是将其解释为乳胶。很烦人。你有什么想法?
xtable
按照我的回答。
<font>
标记现在已过时。它的支持可以随时由浏览器删除。
这似乎在pdf和html两种输出格式中都很好用:
Roses are $\color{red}{\text{beautiful red}}$,
violets are $\color{blue}{\text{lovely blue}}$.
希望能帮助到你。
其他人提供了Word以外的输出答案。对于Word,您可以使用Pandoc自定义样式的语法在参考Word文档的帮助下完成此操作。首先,在reference.docx模板中,使用简短的唯一名称创建一个新的Word样式。如果希望将字体颜色应用于整个段落,则可以使用默认的“链接的段落和字符”样式类型。如果只想用彩色强调段落中的某些单词,则需要选择“字符”样式类型。更改字体颜色(以及所需的其他样式),然后保存reference.docx文件。
然后,在您的.Rmd文件中,可以按以下方式使用标记:
<div custom-style=“DivCol”>Whole paragraph of colored text</div>
Just a <span custom-style=“SpanCol”>few words</span> of colored text
关于样式名称的一句话-由于我不明白的原因,此过程不适用于样式名称“ Span_Add”,但“ SpanAdd”很好。
我基本上使用了尼古拉斯·汉密尔顿(Nicholas Hamilton)的答案,但是因为我使用xtable
和print
,所以某些乳胶序列被转义时存在一些问题。即,\\textcolor
被转换为$\backslash$textcolor
。我可以通过以下方式避免进行消毒来纠正错误:
```{r results='asis'}
tbl = data.frame(a = letters[1:10], b = 1:10 / 10)
tbl$b = ifelse(tbl$b < 0.5, colFmt(tbl$b, "red"), colFmt(tbl$b, "green"))
print(xtable(tbl), sanitize.text.function = identity)
```
然后,我不得不手动清理一些字符,例如,%
但至少\textcolor
已正确应用。当然,可以通过扩展自己的清理功能来避免这种情况。
print(xtable(tbl), sanitize.text.function = identity)
sanitize.text.function = identity
省去了创建简单内联函数的麻烦
对于PDF和HTML,要获取彩色文本,可以使用markdown突出显示对其进行修改:请参阅rmarkdown书。Pandoc过滤器是最佳选择。
对于Microsoft word,必须首先创建具有自定义样式的Template_MS.docx。警告:请为段落着色(段落样式)和为几个单词着色(文字样式)创建不同的样式。制作新样式时,这是一个选项。
添加YAML:
---
output:
word_document:
reference_docx: Template_MS.docx
---
接下来:
For <span custom-style="Character1">few words</span> of colored text.
对于段落。
<div custom-style="Paragraph1">Paragraph of colored text. Blabla. Blabla.</div>
Nota Bene:
+不要将相同的样式用于“段落”和几句话,这很麻烦。
+如果不起作用,请检查您的样式是否适合MS中的ou字符。
+如果不起作用,请安装pandoc的更新版本。