2016-05-16 2 views
1

knitr文書で私のプロットに一貫した書体を使用したいと思います。今私はcairo_pdfpdfの間で切り替えています。いくつかのプロットで私がcairo_pdfを使用している理由は、特定の状況ではダッシュを避けることです。しかし、私のシステムでcairo_pdfが呼び出されると、Arialフォントが得られます。 pdfはHelveticaを使用します。cairo_pdfはHelveticaではなくArialを使用します

\documentclass{article} 

\begin{document} 

<<>>= 
knitr::opts_chunk$set(fig.height = 1, out.height = "1in", fig.width=1, out.width="1in") 
@ 

<<pdf, dev='pdf'>>= 
library(ggplot2) 
qplot(x = 1, y = 1, geom = "blank") + 
    xlab("RQac") 
@ 

<<cairo, dev='cairo_pdf'>>= 
qplot(x = 1, y = 1, geom = "blank") + 
    xlab("RQac") 
@ 

\end{document} 

enter image description here

理想的には、私は(だけでなくArialやHelveticaの)フォントを選択したいと思います。ただし、extrafontsパッケージをインストールすることはできません。

install.packages("extrafonts") 

Rttf2pt1のインストールのプロンプトが表示され、コンパイルが失敗します。

Warning: running command 'make --no-print-directory -f "Makefile.win"' had status 2 
ERROR: compilation failed for package 'Rttf2pt1' 
* removing 'C:/R/R-3.3.0/library/Rttf2pt1' 

すべてのチャンクでArialフォントを使用するにはどうすればよいですか?すべてのチャンクでHelveticaを使用するにはどうすればよいですか?

+0

cairo_pdf' 'のヘルプページには、 "カイロフォント" セクションを見てしなければならないと言います?X11ページのあなたは? –

+0

'cairo_pdf'ヘルプファイルでその相互参照が表示されません。 'X11'のフォントセクションは、Arialだけが使用できることを示唆しているようです(Timesまたはモノスペースフォント)。本当? – Hugh

+0

「cairo_pdf」の「使用法」セクションにある「family」項目には、「X11のヘルプの「カイロのフォント」セクション」を参照してください。それは私が書いたものではない?そのセクションのあなたの読書は、私の読書とはまったく異なっています。私はあなたがフォントの選択に制限されているということは何も見ていない。 –

答えて

2

私が持っていた暫定的な解決策は、showtextパッケージを使用することでした。欠点は、テーマを使って顔を指定する必要があることです。しかし、この欠点はデフォルトのテーマを使用することで軽減できます。 LaTeXで\usepackage{helvet}を使用しているので、このソリューションは、(非常に近い)クローンではなく、私が本文と同じファミリを使用していることを保証します。

を使用するtikzを使用することは、かなり扱いにくいものですが、もっともらしい解決策に見えます。 (ほぼすべてのチャートはknitr外に注意が必要。)

\documentclass[a4paper,10pt]{article} 

\begin{document} 

<<font_add>>= 
library(showtext) 
library(sysfonts) 
library(knitr) 
font.add("helvet", 
     regular = "C:/Program Files/MiKTeX 2.9/fonts/type1/urw/helvetic/uhvr8a.pfb", 
     bold = "C:/Program Files/MiKTeX 2.9/fonts/type1/urw/helvetic/uhvb8a.pfb", 
     italic = "C:/Program Files/MiKTeX 2.9/fonts/type1/urw/helvetic/uhvro8a.pfb") 

my_pdf <- function(file, width, height){ 
    pdf(file = file, width = width, height = height 
     # ,family = "helvet" 
    ) 
} 
@ 

<<>>= 
knitr::opts_chunk$set(fig.height = 1, out.height = "1in", fig.width=5, out.width="5in") 
@ 

\subsubsection*{No distinction between hyphens and negative symbols} 
<<pdf, dev='pdf'>>= 
library(ggplot2) 
qplot(x = 1, y = 1, geom = "blank") + 
    xlab(paste0("RQac 2012-13", "\U2212", "500")) 
@ 

\subsubsection*{Wrong family, though distinction preserved} 
<<cairo, dev='cairo_pdf'>>= 
qplot(x = 1, y = 1, geom = "blank") + 
    xlab(paste0("RQac 2012-13", "\U2212", "500")) 
@ 

\subsubsection*{Correct family and distinction, though the base family must be called} 
<<my_pdf, dev='my_pdf', fig.ext='pdf', fig.showtext=TRUE>>= 
qplot(x = 1, y = 1, geom = "blank") + 
    theme_gray(base_family = "helvet") + 
    xlab(paste0("RQac 2012-13", "\U2212", "500")) 
@ 

\end{document} 

original pdf

cairo pdf

showtext

関連する問題