niszetの日記

細かい情報を載せていくブログ

(Pandoc)PowerPointのソースコードのフォントをmonofont変数で指定できる

結構前から出来ますが。

マニュアルの対応する箇所はこちら。

pandoc.org

他の形式にもあるのですが、変数を設定することによって出力を制御できます。PowerPointは現在はmonofontだけのようですが、これを使うとスライド中のコードのフォントを指定することが出来ます。

これはPandocで使える機能なのですが、手元で試すにはRMarkdownが丁度良かったのでそちらでやります。

RStudio IDEを使用している場合、ツールバーのFile->New File->R Markdown... の順に選択、以下の画面でPresentationを選択して、PowerPointを選択します(出力されたテンプレートのoutputを修正してもいいです)

YAMLに以下のようにトップレベルにmonofontを指定します。フォント名は使えるフォント名を適当に。今回は変化が分かりやすいのでAlegerianを指定していますが、"Lucida Console"とかがいいんじゃないかな。

ちなみに、存在しないフォント名を指定することも出来てしまうので、意図した表示になっているかは出来上がりのスライドをみて確認した方が良いでしょう(これはこの件に限りませんが)

title: "Untitled"
author: "Author"
date: '2022-04-26'
output: powerpoint_presentation
monofont: "Algerian"

さて、この状態でknitします。

すると、

{r cars, echo = TRUE}
summary(cars)

はコードを実行してそのコードも表示するので、その表示されたコードはmonofontで指定したフォントになるわけです。結果として、4ページ目は

のように、Alegerianが反映されていることがわかります。

なお、Pandocとしては以下のように実行しています(RMarkdownはmarkdownに変更までをknitr/rmarkdownが実行し、その後Pandocが実行しているので)

pandoc +RTS -K512m -RTS pptx.knit.md --to pptx --from markdown+autolink_bare_uris+tex_math_single_backslash --output pptx.pptx 

何かの参考になるかもということでメモを残しておきます。