4.12 複数の改行コードを維持する

Markdown ユーザは, verbatim 環境 (コードブロック) 以外の場所では空白 (改行コード含む) は大抵の場合意味を持たないことに気づき, 驚くでしょう. 2つ以上のスペースはスペース1つと同じであり, 改行1つはスペース1つと同じです. LaTeX や HTML を使ったことがあるなら, これらの言語と同じルールであるため驚くことはないかもしれません.

Markdown では, 空白行はしばしば段落などの要素の分離に使われます. 新しい段落に入らずに改行をするには, 末尾にスペース2つを追加しなければなりません. 特に詩や歌詞を引用したいときなど, 複数回改行したいときもあるかもしれません. 各行の末尾にスペース2つを手動で書き加えるのはうんざりする作業です. blogdown:::quote_poem() はこの作業を自動でやってくれます. 例えばこのように.

blogdown:::quote_poem(c("かたつむり", "そろそろ登れ",
  "富士の山"))
## [1] "> かたつむり  \nそろそろ登れ  \n富士の山"

RStudio IDE と blogdown パッケージ (Xie, Dervieux, and Presmanes Hill 2021) をインストールして使っているなら, 改行を維持したいテキストを選択し, ツールバーの “Addins” から RStudio アドインの “Quote Poem” をクリックすることができます. 例えば以下のテキスト (fenced code block 記法内) は末尾にスペースが付いていません.

田子の浦ゆ
うち出でてみれば
真白にそ
富士の高嶺に
雪は降りける

--- 山部赤人

上記の詩句を選択肢, RStudio アドインの “Quote Poem” をクリックすれば, こう出力されます.

田子の浦ゆ
うち出でてみれば
真白にそ
富士の高嶺に
雪は降りける

— 山部赤人

たまに「fenced code block は空白を維持するのに, 詩句をコードブロックに書くのはなぜですか」と質問があります. コードは詩的でありますが, 詩はコードではありません. コーディング中毒にならないようにしましょう.

:::{.infobox .caution data-latex”{caution}“}

訳注

上記の例では, 最終行の出典の右寄せが再現できません. 右寄せには Pandoc の fenced Div blocks の機能が使用されています (9.6節). 詳細はこの文書のソース (Rmd と CSSファイル) を確認してください. HTML 版をご覧ならば上部ツールバーの “Edit” ボタンからソースのURLを辿ることができます. :::

参考文献

Xie, Yihui, Christophe Dervieux, and Alison Presmanes Hill. 2021. Blogdown: Create Blogs and Websites with r Markdown.