【Rmarkdown】jlreqを使ったPDFレポート作成と注意点

Rmarkdown

Rでレポートを書くとき、RMarkdownはとても便利ですよね。

特段の制限がないときは良いのですが、文字数や行数の指定をされると、調整が面倒と感じませんか?

そんなときにおすすめなのが、日本語組版に特化したLaTeXクラス「jlreq」です。

この記事では、実際に試した導入方法をまとめます。

jlreqとは

jlreq

jlreq は、LaTeX向けの日本語文書クラスで、特に以下の点が優れています。

  • 行数・文字数の指定が簡単
  • 日本語として自然で美しい組版
  • A4レポートや論文に最適
  • 縦書き・横書き両対応

つまり一言でいうと、 「日本語レポートが簡単に作れる」クラスです。

RMarkdownでjlreqを使う方法

設定はとてもシンプルで、YAMLヘッダーでいつものdocumentclassから変更するだけです。

---
title: "レポート"
author: "著者名"
output:
  pdf_document:
    latex_engine: lualatex
    keep_tex: true
documentclass: jlreq
---

これだけでも十分美しいレポートになりますが、続けてclassoptionを設定していきます。

classoptionの設定

jlreqの強みは、classoptionで細かいレイアウト調整ができることですが、LaTeXとは少し違い、Rmarkdown特有の注意点があります。

例えば、次の方法でclassoptionを指定してみます。一見問題なさそうですが、実はエラーが発生します。

---
title: "レポート"
author: "著者名"
output:
  pdf_document:
    latex_engine: lualatex
    keep_tex: true
documentclass: jlreq
classoption: line_length=40zw
---

原因:Pandocの自動エスケープ

Pandocは内部で記法を処理する際に、

line_length

のようなアンダーバーを

line\_length

に変換してしまいます。

その結果、LaTeX側で解釈できずコンパイルエラーになります。

解決方法:Raw LaTeXを使う

この問題は、Pandocに「そのまま渡せ」と指示すれば解決できます。

classoption: "`line_length=40zw`{=latex}"
  • {=latex} を付けることでエスケープを回避
  • LaTeXにそのまま渡る

まとめ

  • jlreqはRMarkdownでも簡単に使える
  • classoptionの「_」はエラーの原因になる
  • Raw LaTeXで回避可能

実際に使ってみると、日本語組版に対応していることが一番メリットを感じやすいです。

特に、大学レポートや論文下書きなどにはかなりおすすめです。

この記事が少しでもお役に立てたら嬉しいです。

広告

Amazonアフィリエイトでブログ運営しています。
応援いただけると嬉しいです。


ネスカフェ 香味焙煎 ひとときの贅沢 スティック ブラック 20P,箱,レギュラー ソリュブル コーヒー,個包装


AHMAD TEA(アーマッドティー) クラシックセレクション ティーバッグ 20袋

タイトルとURLをコピーしました