niszetの日記

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

日本Pandocユーザ会に入りました

ちょっと前から加入していましたが…

先日の、技術書典で日本Pandocユーザ会の会長の藤原さんとつながり、日本Pandocユーザ会に興味があるんですと伝えたらSlackに招待していただきました。ので、これで私も日本Pandocユーザ会の会員のはず。

ユーザーガイドの翻訳をやるよ

ということで、最新のバージョンのユーザーガイドの翻訳を始めました。私もちょっとお手伝いをしています(邪魔をしているかもしれない)

元の英文はわかるし、直訳は出来るが日本語としては良くわからん文章になるか、日本語的にはそれっぽいんだけど英文ではそうは言ってない(意味はあってる)みたいな文章になりがちで、もっと勉強しよ…って思いながら私はチマチマとやっております。

いやー、このUG、めっちゃ長くて結構気が遠くなりますが、それでも書けば残りは減るので良いですね。やっていきましょう。

ということで、2018年の振り返りをあまりせずに、書いてなかったことを書いていく感じでした。

まだ色々あるね。書いていこう。

そして、来年に向けて色々仕込んでいきましょう。

視力が落ちてしまった…の話。

歳か…。

こんばんは。 私、裸眼で両目1.2あってここ20年以上安定していたのですが、先日の健康診断で一気に悪くなっていたことが発覚…。右が0.6、左が1.0くらい。ただ、両目で見ると1.5あるというよくわからん状況です。

最近、めまいと頭痛と肩こりがひどく、おそらく10中8、9眼精疲労が原因です。

いや、やっぱり年齢もあるのかなーって思いますね…。しばらくはあまり目を疲れさせないようにして、経過を見る感じになりました。ちょっとドライアイ気味らしい。

来年は健康を重視した1年にしたいなぁ…。

(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. なんか懐かしい感じのアレ。

(R) pagedownパッケージを使ってR言語でCSS組版を体験したい

これはR Advent Calendar 2018 12日目の記事です。

ちょっと先週末に時間が取れなかったので、内容が中途半端になっています…すみません。週末に加筆予定です。

先日、R MarkdownからWord文書を作成するといったことをしてみました1niszetkoubou.booth.pm

R界隈ではPandocを使用したhtmlやpdfの文書生成環境は不動の地位を保っていますが、組版ガチ?勢的には「Pandocを使って~」というのはあまり珍しいことではないようです2。とはいえ、別にツールがすごいから良い/悪いという話はなく、reproducibilityの高いドキュメントの生成環境があるということが大事なんですよね。

ただ、この話を始めると話がそれにそれてしまうので、おススメの書籍のリンクを貼って先に進みます。

www.kyoritsu-pub.co.jp

www.kyoritsu-pub.co.jp

CSS組版

世の中にはCSS組版3というものがあります。これは、文書の構造を書くhtmlに対して見栄えを定義するCSSファイルの機能を使い、通常は一枚の(区切りがなく、スクロールして下に下に…とずっと続く形の)ページから、Wordやpdfのようにページ区切りのhtmlを作ってしまう、というものです4

これはCSS側で定義されていて、これを実装しているブラウザ上で表示させればページごとに区切った表示で見ることが出来ます。また、印刷機能を使えばpdf化も出来、pdf化できるということは同人誌も作れるということです5

CSSのページ化まわりについて調べるにはこちらの日本語訳を見たほうが良いのではと思います。

CSS Paged Media Module Level 3 (日本語訳)

一般的(?)6CSS組版界隈ではVivliostyleを使うことが多いようです。私が参考にしているページをいくつか貼ります。

Markdown+CSS組版での技術系同人誌制作時の環境 | 吉川ウェブ

www.slideshare.net

blog.fieldnotes.jp

R言語でもCSS組版をしたい

さて、R言語でもCSS組版したいですよね?そんなパッケージあるのでしょうか?あります。pagedownパッケージです。

github.com

このパッケージの開発にはknitrパッケージなどで有名なYihui Xie氏が関わっていて、内部では先に挙げたVivliostyleではなく、Paged.jsという これまた新しいパッケージを使っています。Paged.jsは開発が継続中です。そのためか日本語の情報がまだほとんどありません…7

しかし、pagedownパッケージを使う分にはこの手の知識はなくても大丈夫です。良しなにやってくれてしまいます。

なお、Paged.jsはGitHubではなくGitLab上で開発が進んでいるようです。

gitlab.pagedmedia.org

Library – Paged Media

おそらくですが、pagedownパッケージの実装は今後大きく変わることも予想されます。そのため、この記事では「ちょっと動かしてみる程度」の解説をしてみます。いえこれは決して調べる時間がなかったからではなくてですね…ごにょごにょ。

実際のところ、ちゃんと理解するためにはR Markdown、Pandocの各種オプションを含めた仕様、HTMLとCSSの仕様、Luaフィルタの仕様(とそもそもLua言語の理解)、Paged.jsライブラリの理解・・・と要素技術がかなり複雑になっています。この辺りはいずれまた…。

pagedownパッケージで作られたページ化されたhtmlは公式のサイトを見るのが手っ取り早いです。

pagedown.rbind.io

また、pagedownパッケージは名刺、ページ化されたhtml、ポスター、レジュメなどいろんなアウトプットが定義されています。これはREADMEが整備されてきたので、そちらを参照すると良いと思います。すごいですね。

github.com

pagedown::html_letterのフォーマットを使って、実際に実行されたコマンドは R Markdownタブで見ることが出来るので見てみると下のようになっています。

"C:/Program Files/RStudio/bin/pandoc/pandoc"
+RTS
-K512m
-RTS
let.utf8.md
--to html4
--from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures+smart
--output let.html
--email-obfuscation none
--wrap preserve
--lua-filter
"C:/Users/niszet/Documents/R/win-library/3.5/pagedown/resources/lua/uri-to-fn.lua"
--lua-filter
"C:/Users/niszet/Documents/R/win-library/3.5/pagedown/resources/lua/loft.lua"
--lua-filter
"C:/Users/niszet/Documents/R/win-library/3.5/pagedown/resources/lua/footnotes.lua"
--standalone
--section-divs
--template
"C:\Users\niszet\Documents\R\win-library\3.5\pagedown\resources\html\paged.html"
--highlight-style
pygments
--number-sections
--include-in-header "C:\Users\niszet\AppData\Local\Temp\RtmpY9ZL5X\rmarkdown-str4a0c154d42a.html"
--mathjax

このように、Luaフィルターが3つも使われていることがわかります。Pandocで処理する際に、内部での取り扱いを変える必要があるためです。つまり、R側の処理としては実はあまり手を入れておらず、そのため、keep_md: trueとしてMarkdownの中間ファイルを見てもRのコードが評価されただけなのでCSS組版要素はあまり見れないと思います。

また、このPandocが内部でどのように解釈しているか?についてはバージョンによって大きく変わることがあります。そのため、Luaフィルタ内にPandocのバージョンの指定があったりします。pagedownパッケージのREADMEにあるように、

This package requires a recent version of Pandoc (>= 2.2.3). If you use RStudio, you are recommended to install the Preview version (>= 1.2.1070), which has bundled Pandoc 2.3.1, otherwise you need to install Pandoc separately.

と、Preview versionを使うことを推奨されています。

生成されたhtmlの中を見てみると、

<link href="let_files/paged-0.0.22/css/default.css" rel="stylesheet" />
<link href="let_files/paged-0.0.22/css/letter.css" rel="stylesheet" />
<script src="let_files/paged-0.0.22/js/config.js"></script>
<script src="let_files/paged-0.0.22/js/paged.js"></script>
<script src="let_files/paged-0.0.22/js/hooks.js"></script>

のように、ばっちりとpaged.jsが含まれていることがわかりますね。これもtemplateに仕込んであるから、なのですが…。

また、生成したhtmlファイルは、

pagedown::chrome_print()

を使ってpdf化することが出来ます。これ単体でも便利かもしれません(そうかな?)

しかしこのパッケージ、いったいどんな需要があって作られているのか、謎ですね…。

Enjoy!!


  1. 唐突の宣伝…^^;

  2. 技術書典に参加したniszetの感想です。

  3. くみはんと読みますね

  4. 間違ってたらマサカリを…

  5. ただし、フォントの埋め込みについては色々課題がありそうで、現在調査中…。

  6. CSS組版自体が一般的かどうかはさておいて…

  7. 自分で調べていくしかないのか…。

R MarkdownでWord文書を作ろうの再販が開始されました。

今更ですが、告知。

Twitterの方では適宜呟いていましたが、BOOTH様にて入庫処理が完了し、取り扱いが開始されました。

niszetkoubou.booth.pm

ネコポスでも送れるようにしてるので、うまいことやってみてください…。

あと、他の方のと合わせて複数冊でもある程度までなら送料一定とかあるはずなので、うまく使ってみてください(ちゃんと使ったことがないのでアドバイスできない…

あと、全然作れていないサポートページはこちら!

github.com

本書の文句はIssueで投げよう!

以上です!よろしくおねがいします!!

(R) 各地のRコミュニティに参加するという名目で旅に行きたい。

現在把握している分だけ、とりあえずぺたぺたとリンクを貼る。

SappoRo.R

SappoRo.R – 北海道を中心とした統計解析環境「R」の勉強会

はこだてでR

kokucheese.com

Tsukuba.R

数年振りに復活。1回目に参加。2回目は年明けにある予定(Tokyo.Rがない2月かな?)

www.meetup.com

github.com

公式アカウント twitter.com

Tokyo.R

tokyor.connpass.com

公式アカウント twitter.com

Japan.R

japanr.connpass.com

Nagoya.R

atnd.org

Kobe.R

Kobe.R | Doorkeeper

HiRoshima.R

(最近は活動していない)

hiroshimar.connpass.com

Hijiyama.R

(2017年11月にFinal) atnd.org

Fukuoka.R

fukuoka-r.connpass.com

ひとまずわかった分だけ。ちょっとこの記事はメンテしていきたい気持ち。

他にもこんなのがありまっせ!というのがあればご連絡いただけるとありがたいです~~

Enjoy!!

ノートPCのバッテリーの交換をした。

なんか膨らんでたんですよね…。

ちょっと前からノートPCの左手側がなんかもこって膨らんでいるのが気にはなっていたものの、何だろう?って思っていたのですが、どうやらバッテリーが膨らんでいたご様子。2年ちょっと使っていたのでまぁこういうこともありますね。

DELLのサポートサイトに従って作業したらバッテリー交換自体はうまくいきました。ネジの頭がなんか舐められてませんかねぇ…大丈夫ですかねぇ…。まぁ次交換する必要が出たら多分本体買い替えだからいいかな。

XPS 13 サービスマニュアル

今回、バッテリーはAmazonで売ってたのでそれを使ったんですが、一回全然違うやつ頼んでしまったので型番とかちゃんと調べようね(書いてありました。完全に私のミス)

あと、パソコン用の精密ドライバーセットが必要です。ネジ、なんでいろんな種類使ってるんだろう…って感じですが、まぁ組立作業時に間違った順序でやってしまうことを避けるためなのかな。知らないけど。

4種類くらいネジがあったので、対応するやつが必要です。私は↓のを使いましたが、これはDELLのXPS13に対応していることが書かれていたからですね。他のPCだと違うのだろうか。まぁ大体一緒かな。わからん…。

Amazon CAPTCHA

というわけで、もうしばらく現行のノートPCで過ごしそうですが、そろそろメモリが多いやつが欲しいなぁって気持ちなので、春ごろには買い替えたいですね。たくさん稼いでたくさん買おう。そんな感じ。