web-dev-qa-db-ja.com

フォントの色を変更するには?

RMarkdownでは、フォントの色を指定する方法はありますか?

chunk options をブラウズする際にオプションはないようです

62
xiaodai

@Ben Bolkerが提供するリンクで提供される回答:

Roses are <span style="color:red">red</span>, 
violets are <span style="color:blue">blue</span>.

出力形式としてHTML(ioslides)を選択すると機能します。

ただし、出力形式としてpdf(beamer)を選択した場合は機能しません。 PDFを作成する場合は、LaTeX構文を使用します。

    Roses are \textcolor{red}{red}, violets are \textcolor{blue}{blue}.
80
Nadja Simons

次のような関数を作成します。

#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ドキュメントのどちらで作業しているかに関係なく、色付きのテキストがレンダリングされます。

36

これは、PDFとHTMLの両方の出力形式で非常にうまく機能するようです:

Roses are $\color{red}{\text{beautiful red}}$, 
violets are $\color{blue}{\text{lovely blue}}$.

それが役に立てば幸い。

10
amanas

基本的にニコラス・ハミルトンの答えを使用しましたが、xtableprintを使用したため、特定のラテックスシーケンスがエスケープされるという問題がありました。つまり、\\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が正しく適用されました。もちろん、これは独自のサニタイズ機能を拡張することで回避できます。

4
Midnighter

他の人は、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」は問題ありませんでした。

3
ErinMcJ

出力形式に依存しないソリューションは、kableExtraパッケージの専用のtext_spec()関数を使用することです。

Roses are `r kableExtra::text_spec("red", color = "red")`,

violets are `r kableExtra::text_spec("blue", color = "blue")`
3
Droplet