niszetの日記

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

(R) pagedownパッケージで名刺を作ってみる

取り急ぎの記事。

さて、pagedownパッケージでcss組版の記事の続きが書けていませんが、色々お察しください…(年末進行だよ)

その中でも、名刺を作るやつは別にcssの知識とか不要なので、やってみましょう。

まず、New FileからR Markdownを選び、From Templateで Businesses Cardを選びます。

f:id:niszet:20181218231057p:plain
テンプレートを選ぼう

すると、こんなかんじに新しくファイルが出来るので、適当な名前を付けて保存。Knitを実行する。

f:id:niszet:20181218231203p:plain
テンプレートを使用して新しいファイルが出来る。

すると、こんな感じの名刺が出来るのでした。

f:id:niszet:20181218231338p:plain
名刺だ!

やりました!完!!

あぁっ!石を投げないで…!1

で、これだけだと何にもならないので、実行時のコマンドを見てみます。

"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS 
aaa.utf8.md 
--to html4 
--from markdown 
--output aaa.html 
--template "C:\Users\niszet\Documents\R\win-library\3.5\pagedown\resources\html\card.html" 
--variable "logo=https://www.rstudio.com/wp-content/uploads/2016/09/RStudio-Logo-Blue-Gray-250.png" 
--variable googlefonts=Montserrat 
--variable mainfont=Montserrat 
--variable pagewidth=2in 
--variable pageheight=3in 

これを見ると、テンプレートとして、card.htmlを使用していること、変数としてlogo、googlefonts、mainfont、pagewidth、pageheightを指定していることがわかりますね。

そこで、先のファイルをこんな感じに書き換えてみます。

---
author: "にすぜっと"
title: "にすぜっと工房"
output:
  pagedown::business_card:
#    logo: "https://www.rstudio.com/wp-content/uploads/2016/09/RStudio-Logo-Blue-Gray-250.png"
    width: "3.58in"
    height: "2.17in"
    googlefonts: "Kosugi" # feel free to try other fonts at https://fonts.google.com
---

+X XX-XXXX-XXXX\
niszet_hogehoge_hogehoge@hogehoge.com

https://niszet.hatenablog.com/

@niszet0


<!-- if you prefer black text on white background, set eval=TRUE on the chunk below -->

 ```{css, eval=TRUE}
.wrapper {
  color: #919198;
  background-color: #276DC2;
}
.coordinates {
  color: #BFC2C5;
}
 ```

で、実行すると・・・

f:id:niszet:20181218232212p:plain
日本風の、横長の名刺。

こんな感じに。pagedown::business_cardに与える引数をYAMLフロントマター中に書いてしまうのですね。logoは今回は消してみました。というのも、サイズの調整が出来なさそうなので、最初に良い感じのサイズのLogoを書かねばならなかったためです。ちょっとここは工夫の余地がありそう。あと、テンプレートもいじれば良さそう。

cssのブロック、evalをTRUEにしてあげると文字色を変えられます。これを使って、Rのロゴの色にしてみましたが…とても見づらいですね。改善の余地あり、です。

あと1点ポイントとして、電話番号の後のバックスラッシュです。これはMarkdownの段落変更なしの改行をするには行末に空白文字2文字以上あるいはバックスラッシュの記法によって、段落の変更なしで改行されていることを示しています。他の行は段落がわかれているので、このテンプレート(なのか、pagedownの仕様なのかはまだわかっていませんが)では行間に空行が挟まる形になっています。

もし、logoを入れたい場合はhtmlファイルが作成される場所からの相対パスの形で書いてあげてください。Windows上のファイルの絶対パスでは表示されませんでした。

この辺りはいじりがいがあるので、時間があれば色々やりたいのですが…いずれ、また。

追記

しかし、生成されたhtmlファイルをpagedown::chrome_print("aaa.html")のようにpdf化しようとしてもうまくいきません。これはpaged.jsによるページサイズの設定が入っていないからだと思うのですが、正直まだよくわかっていません。いずれ解決させます。

Enjoy!!


  1. なんか懐かしい感じのアレ。