ill-identified diary

所属組織の見解などとは一切関係なく小難しい話しかしません

[日報] knitr の公式ドキュメントの翻訳を公開した. R Markdown もそのうちやる.

この記事は最終更新日から3年以上が経過しています

概要

タイトルの通り. これから R Markdown で翻訳するつもりなのは R Markdown: Definitive なんちゃら, Bookdown: うんちゃら, R Markdown Cookbook の三部作. knitr のドキュメント含め, 原典が全て非営利ライセンスなので当然ながら一般無料公開する予定.

2021/3/28 追記: "R Markdown Cookbook" の翻訳版を公開した

2021/6/26 追記: TinyTeX (+ TeX Live) の使用法についてもネット上の日本語情報を見る限り正しく周知されていないようだったので TinyTeX のドキュメントの翻訳を公開した

詳細

knitr: Rによる美麗で柔軟そして高速な動的レポート生成

上記のように github pages で公開している. ただし, 元のテキストが著者である Yixui 氏のブログ等の断片的な記事を編纂したものなので, 内容が古く, 現在ではあまり活用できない情報もあるためそういう箇所は翻訳していない. しかし knitrオプション一覧, フック関数, そしてキャッシュの挙動の詳細な解説は日本語圏では出回っていない感じなので翻訳の価値があると思ってやった (実際, これまで R-wakalang でなされた質問の回答になる内容も散見された). 修正の指摘や改良の提案はリポジトリの issues とかでお願いする. そしてこれはあくまで knitr のドキュメントであり, R Markdown 自体にはあまり詳しくない. なので上記に挙げた三部作もそのうち翻訳して公開する.

以下, 日記帳

以前から折りに触れて R Markdown でめんどい設定をせずに楽して日本語文書を作るためのパッケージ rmdja を作っていると書いていた. R Markdown について紹介する日本語の資料はちらほら見えるが, 決して包括的ではない. そこで rmdjaのドキュメントにも簡単な使用法の解説を用意したのだが, 次のような考えが発生した: (統計学機械学習の理論なんかはそうコロコロ変わらないが, それと比べて) R に限らず人気のあるオープンソースソフトウェアはどんどん新機能が追加され更新が頻繁に起こるので, パッケージの我流使い方紹介記事なんて書いてもすぐ時代遅れになり, 初心者を惑わすネット上の「負のコード遺産」になるのではないか, と. (こんなことを書いたらかなり色んな人間に嫌われそうだが, ) しかし原因はむしろ初心者が英語の公式ドキュメントを読みたがらないことが多いからで, 読み手のことを考えるならいずれにせよ我流でパッケージ解説を書くよりも公式ドキュメントの日本語訳にコミットするのが先決でないかという考えに至ったのでとにかくやることにした. 自分でやってしまえば文句の出ようもないだろう (公式ドキュメントを翻訳しようがメンテできなければ同じことだが). なお, knitr のドキュメントを読み込んだことで実際知らなかった機能の存在を知った (コードチャンク内で ##コメントアウトすると勝手に折り返してくれるのは初めて知った).

しかし思ったより時間がかかる作業だ. そろそろまた主語の大きい話をしたい気分になってきた.

rmdja の開発状況としては, 素の rmarkdownbookdown に比べると, 特に PDF の出力がだいぶ楽になっていると思うが, まだまだ機能の抜けが多い (理想としては LaTeX のこと何も考えなくても洗練されたスタイルテンプレに則した PDF が出てくる). 卒論のために始めて R や LaTeX を触ったという人だと意図しない出力の対処法に慌てるかもしれない. 来年にはおすすめできるようになりたいが, 今年卒論を出す学生の土壇場のトラブルには対処できない可能性が高い.

あと, R Markdown がなんなのかと言う人のために客観的な (つもりの) 評価をする.

私が R Markdown にこだわっているのは単一のソースファイルから 同一のコンテンツを含む HTML と PDF の出力を両立できるからである. jupyter のような例もあるが, 文芸的プログラミングツールとしても, 再現可能性のあるプログラミングツールとしても機能が少なすぎる*1*2. とくに PDF の出力はほとんど選択肢がない. 一方で, Web 媒体のドキュメント作成に限定すれば Sphinx とかのほうがずっと普及しているしコード資産も多いはずだ.

そういうわけで, 「Rを使いたい」「HTML と PDF の両方 (あるいは epub) で楽して (Word みたいに手動で相互参照の数字を書いたりせずに) 洗練されたスタイルの文書を出力したい」の少なくとも1つが要件でないのなら, 強く推奨することはない.

*1:実際には私にとっては「文芸的である」ことより単にソースコードを埋め込んだ自己完結性の高いドキュメント作成がしたいだけ. 「再現可能性のある資料」のほうにより興味がある

*2:RStudio (reticulate) の Python の挙動も徐々に安定しつつあるのでいっそ全部 RStudio でやってしまおうか