Created
June 24, 2014 09:00
-
-
Save uribo/508816037e36e91515b7 to your computer and use it in GitHub Desktop.
RStudioを使ったPDF文書の作成
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} | |
$if(fontfamily)$ | |
\usepackage{$fontfamily$} | |
$else$ | |
\usepackage{lmodern} | |
$endif$ | |
$if(linestretch)$ | |
\usepackage{setspace} | |
\setstretch{$linestretch$} | |
$endif$ | |
\usepackage{amssymb,amsmath} | |
\usepackage{ifxetex,ifluatex} | |
\usepackage{fixltx2e} % provides \textsubscript | |
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |
\usepackage[T1]{fontenc} | |
\usepackage[utf8]{inputenc} | |
$if(euro)$ | |
\usepackage{eurosym} | |
$endif$ | |
\else % if luatex or xelatex | |
\ifxetex | |
\usepackage{mathspec} | |
\usepackage{xltxtra,xunicode} | |
\else | |
\usepackage{fontspec} | |
\usepackage{luatexja} | |
\fi | |
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} | |
\newcommand{\euro}{\UTF{20AC}} | |
$if(mainfont)$ | |
\setmainfont{$mainfont$} | |
$endif$ | |
$if(sansfont)$ | |
\setsansfont{$sansfont$} | |
$endif$ | |
$if(monofont)$ | |
\setmonofont[Mapping=tex-ansi]{$monofont$} | |
$endif$ | |
$if(mathfont)$ | |
\setmathfont(Digits,Latin,Greek){$mathfont$} | |
$endif$ | |
\fi | |
% use upquote if available, for straight quotes in verbatim environments | |
\IfFileExists{upquote.sty}{\usepackage{upquote}}{} | |
% use microtype if available | |
\IfFileExists{microtype.sty}{\usepackage{microtype}}{} | |
$if(geometry)$ | |
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} | |
$endif$ | |
$if(natbib)$ | |
\usepackage{natbib} | |
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} | |
$endif$ | |
$if(biblatex)$ | |
\usepackage{biblatex} | |
$if(biblio-files)$ | |
\bibliography{$biblio-files$} | |
$endif$ | |
$endif$ | |
$if(listings)$ | |
\usepackage{listings} | |
$endif$ | |
$if(lhs)$ | |
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} | |
$endif$ | |
$if(highlighting-macros)$ | |
$highlighting-macros$ | |
$endif$ | |
$if(verbatim-in-note)$ | |
\usepackage{fancyvrb} | |
$endif$ | |
$if(tables)$ | |
\usepackage{longtable,booktabs} | |
$endif$ | |
$if(graphics)$ | |
\usepackage{graphicx} | |
\makeatletter | |
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} | |
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} | |
\makeatother | |
% Scale images if necessary, so that they will not overflow the page | |
% margins by default, and it is still possible to overwrite the defaults | |
% using explicit options in \includegraphics[width, height, ...]{} | |
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} | |
$endif$ | |
\ifxetex | |
\usepackage[setpagesize=false, % page size defined by xetex | |
unicode=false, % unicode breaks when used with xetex | |
xetex]{hyperref} | |
\else | |
\usepackage[unicode=true]{hyperref} | |
\fi | |
\hypersetup{breaklinks=true, | |
bookmarks=true, | |
pdfauthor={$author-meta$}, | |
pdftitle={$title-meta$}, | |
colorlinks=true, | |
citecolor=$if(citecolor)$$citecolor$$else$blue$endif$, | |
urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, | |
linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, | |
pdfborder={0 0 0}} | |
\urlstyle{same} % don't use monospace font for urls | |
$if(links-as-notes)$ | |
% Make links footnotes instead of hotlinks: | |
\renewcommand{\href}[2]{#2\footnote{\url{#1}}} | |
$endif$ | |
$if(strikeout)$ | |
\usepackage[normalem]{ulem} | |
% avoid problems with \sout in headers with hyperref: | |
\pdfstringdefDisableCommands{\renewcommand{\sout}{}} | |
$endif$ | |
\setlength{\parindent}{0pt} | |
\setlength{\parskip}{6pt plus 2pt minus 1pt} | |
\setlength{\emergencystretch}{3em} % prevent overfull lines | |
$if(numbersections)$ | |
\setcounter{secnumdepth}{5} | |
$else$ | |
\setcounter{secnumdepth}{0} | |
$endif$ | |
$if(verbatim-in-note)$ | |
\VerbatimFootnotes % allows verbatim text in footnotes | |
$endif$ | |
$if(lang)$ | |
\ifxetex | |
\usepackage{polyglossia} | |
\setmainlanguage{$mainlang$} | |
\else | |
\usepackage[$lang$]{babel} | |
\fi | |
$endif$ | |
$if(title)$ | |
\title{$title$$if(subtitle)$\\\vspace{0.5em}{\large $subtitle$}$endif$} | |
$endif$ | |
$if(author)$ | |
\author{$for(author)$$author$$sep$ \and $endfor$} | |
$endif$ | |
\date{$date$} | |
$for(header-includes)$ | |
$header-includes$ | |
$endfor$ | |
\begin{document} | |
$if(title)$ | |
\maketitle | |
$endif$ | |
$if(abstract)$ | |
\begin{abstract} | |
$abstract$ | |
\end{abstract} | |
$endif$ | |
$for(include-before)$ | |
$include-before$ | |
$endfor$ | |
$if(toc)$ | |
{ | |
\hypersetup{linkcolor=black} | |
\setcounter{tocdepth}{$toc-depth$} | |
\tableofcontents | |
} | |
$endif$ | |
$body$ | |
$if(natbib)$ | |
$if(biblio-files)$ | |
$if(biblio-title)$ | |
$if(book-class)$ | |
\renewcommand\bibname{$biblio-title$} | |
$else$ | |
\renewcommand\refname{$biblio-title$} | |
$endif$ | |
$endif$ | |
\bibliography{$biblio-files$} | |
$endif$ | |
$endif$ | |
$if(biblatex)$ | |
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ | |
$endif$ | |
$for(include-after)$ | |
$include-after$ | |
$endfor$ | |
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
title: "RStudioを使ったPDF文書の作成" | |
author: "@uribo http://twitter.com/u_ribo" | |
date: "June 24, 2014" | |
output: | |
pdf_document: | |
toc: true | |
toc_depth: 3 | |
highlight: tango | |
fig_caption: true | |
latex_engine: lualatex | |
template: default.latex | |
--- | |
## 実行環境 | |
* OS: Mac OS X 10.9.3 | |
* R 3.1.0 Patched (2014-06-16 r65952) "Spring Dance" | |
* RStudio 0.98.932 | |
* Mac TeX 2014 | |
日本語まわりのこと以外はMacでもWindowsでもほとんど違いがないのではないでしょうか...。 | |
## RStudioでファイルをPDFに変換する | |
RStudioで作成した`.Rmd`ファイルはさくっと他形式のファイルに変換可能なことは[以前書きました](http://qiita.com/uri/items/0c3b3f918f79b3e3e6d4#2-2)。今回はどのプラットフォームでも表示が崩れることがないPDFでの出力を行います。必要なのはひと通りTeXの出力ができる環境です。 | |
メニューバーから File -> New File -> R Markdown ... からDocumentを選択し、Default Output FormatのところをPDFにチェックしてOKとしてください(あとで変更することも可能です)。 | |
すると以下のようなテンプレートファイルが作成されます。 | |
```{r, eval=FALSE} | |
--- | |
title: "Untitled" | |
author: "author" | |
date: "June 24, 2014" | |
output: | |
pdf_document: | |
toc: true | |
fontsize: 12pt | |
highlight: tango | |
--- | |
This is an R Markdown document. Markdown is a simple formatting syntax | |
for authoring HTML, PDF, and MS Word documents. For more details on | |
using R Markdown see <http://rmarkdown.rstudio.com>. | |
``` | |
ハイフンで挟まれた部分がheaderとなり、ここで全体の設定(出力形式や目次の有無、フォントサイズ、Rスクリプトのハイライトの見た目などの変更)をしています(後述 -> <a href="#2-3">LaTeX オプション</a>)。ハイフン以下の部分が出力される本文および実行するRスクリプトとなります。 | |
### 図の名前、種類と保存先 | |
保存される図の名前、種類、保存先はchunk optionにて設定が可能です。 | |
作図した図はデフォルトでは`.pdf`として保存されます。TeXはPDFファイルの埋め込みに対応しているので、綺麗な図をそのまま表示させることが可能です。図の保存先は`ファイル名_files`というフォルダに保存されます。 | |
これらを変更したい場合にはchunk optionにて、`chunk name`、`dev`と`fig.pagh`でそれぞれ指定します。 | |
`{r fig1, dev='png', fig.path='figure/'}` | |
とした場合、figureフォルダ内に`fig1.png`というファイルが生成されます。 | |
## LaTeX オプション | |
LaTeXのプリアンブルで行うようなドキュメント全体の指定はheader部分で行います。こちらについては[公式ページ](http://rmarkdown.rstudio.com/pdf_document_format.html#latex-options)の説明が詳しいです。 | |
## 日本語の問題 | |
さてさて便利な`Rmd`から`PDF`への変換機能ですが、日本語を含む文書あるいは図が上手く表示されない、ということがあります。そんなわけで**あれこれ格闘してみた結果**です。 | |
### 日本語でおkな文書 | |
「[RStudio(Windows)でSweave(.Rnw)を使って一発でpdf作りたい - My Life as a Mock Quant](http://d.hatena.ne.jp/teramonagi/20140203/1391429752)」で書かれている通り、lualatexでのPDF作成を行います。latex_engineに`lualatex`とし、`.tex`ファイルのほうで`luatexja`パッケージの読み込み指定が必要となるので、[pandoc templates](https://github.com/jgm/pandoc-templates/blob/master/default.latex)に`\usepackage{luatexja}`を加える。たぶんこれで大丈夫なはず...。どうでしょうか? | |
ref) [RStudio(Windows)でSweave(.Rnw)を使って一発でpdf作りたい - My Life as a Mock Quant](http://d.hatena.ne.jp/teramonagi/20140203/1391429752) | |
### 日本語でおkな図 | |
自分の環境だけかもしれませんが、次のようにすると問題なく表示できます。まずchunk optionで`warning=FALSE`とし(エラーメッセージの非表示)、`dev='cairo_pdf'`とします。ついで作図、となりますが重要なのは作図デバイスの呼び出し前に**par(family="")でフォントファミリーを指定**することです。`Osaka`なり`Hiragino`なり、お好みのフォントファミリーに変更してください。 | |
ref) [グラフの描き方](http://oku.edu.mie-u.ac.jp/~okumura/stat/graphs.html) | |
```{r fig1, echo=FALSE, fig.cap="にほんご", warning=FALSE, dev='cairo_pdf'} | |
par(family="Osaka") | |
plot(cars, main=c("日本語でおk"), xlab="にほんご") | |
``` | |
### Windowsでは? | |
@takeshouさんによるメモが参考になりそうです。 | |
ref) [RStudioで日本語PDF - ぼやかないつもりのメモ](http://d.hatena.ne.jp/takeshou/20140624/1403579987) | |
## I wished it! | |
本が出たみたいですね。...欲しい。 | |
* [ドキュメント・プレゼンテーション生成 / 金 明哲 編 高橋 康介 著 | 共立出版](http://www.kyoritsu-pub.co.jp/bookdetail/9784320123724) | |
```{r, echo=FALSE} | |
sessionInfo() | |
``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment