すずなTech-Memo#RRMarkdownにhighlight.jsのcssテーマを適用するhighlight.jsのcssテーマを用いてRMarkdownのコードハイライトを変更する方法を示します。以下の記事にあるように、RMarkdownはYAML部分のオプションを用いてコード部分のハイライトを変更することができます。設定できるコードハイライトのテーマはdefault,tango,pygments,kate,monochrome,espresso,zenburn,haddock,textmateの9個です。Markdownでコードハイライトのテーマ設定もっと多くのハイライトテーマを使うには、例えばhighlight.jsを用いる方法があります。2021年2月のバージョン10.5.0時点で97パターンあります。コードブロックに行番号をつけるを参考にしながら、highlight.jsのcssテーマをRMarkdownのコードハイライトに当てる方法を考えました。結論としては、以下のコードをRMarkdownのYAML部分の直下(=本文部分の先頭)に記載します。10.5px;}```@importで読み込むhighlight.jsのCDNのアドレスの最後の"rainbow.min.css"の"rainbow"は、highlight.jsのGitHubのリポジトリにある"テーマ名.css"の"テーマ名"です。highlight.jsのdemoで使いたいテーマを見つけたら、このリポジトリからテーマ名を探します。CDNで読み込むときはテーマ名に.minを付けます。9.5pxのpreという要素の中に、code.hljsという要素のコード部分が存在します。上のコードの最初の3行(style~/style部分)だけをRMarkdownに書いてcssを変更しないと、code.hljsはテーマの背景に変わっているのに、borderとpaddingはデフォルトのグレーのまま残ってしまいます。highlight.jsのcssはcode.hljsにかかるので、上のようにpreのborderとbackgroundをcode.hljsの透過としてpaddingをいじることで、見た目をうまく調節しています。上記ではborderをtransparentにしているので、背景が白系のテーマだと、コードとそれ以外のブロックの区別が付きません。transparent;を削除すると、枠線だけ残ります。おまけ(フォント変更)以下を追加することで、RMarkdownのコード部分のフォントをコード用のフォントに変えられます。インラインのコードのフォントも変わります。monospace;}```RStudioのデフォルトのフォントにする場合は以下です。monospace;}```環境Rは4.0.2、RMarkdownは2.7、highlight.jsは10.5.0のバージョンを使用しています。Anubis.suzuna。