2013-03-18 56 views
17

在R中,我使用expression(theta[l]),以便我的繪圖軸的標籤與LaTeX中的$\theta_l$相同。出於美觀的原因,我寧願顯示$\theta_\ell$。你可以幫我嗎?軸標籤中的數學表達式

enter image description here


編輯

之前,我做了

plot(1:10, 1:10, xlab=expression(theta[l])) 

,我在PDF導出的結果圖像。然後,使用

\begin{figure}[htbp] 
\centerline{\includegraphics[scale=.6]{test.pdf}} 
\end{figure} 

我的照片被插入LaTeX。

繼評論,這裏是我現在做的事:

require(tikzDevice) 
tikz("test.tex", standAlone=TRUE, width=5, height=5) 

plot(1:10, 1:10, xlab="$\\theta_\\ell$") 

dev.off() 
tools::texi2pdf('test.tex') 
system(paste(getOption('pdfviewer'),'test.pdf')) 

然而,當我插入乳膠resuling情節,圖的質量沒有以前好了。還有什麼我可以做的嗎?

+0

@agstudy:Windows。 Linux對我來說也很好。 – Marco 2013-03-18 15:32:49

+0

@Sven Hohenstein:謝謝你的照片:-) – Marco 2013-03-18 15:47:20

+2

Is [this](http://stackoverflow.com/questions/8190087/italic-greek-letters-latex-style-math-in-plot-titles/8190537# 8190537)你在找什麼? – plannapus 2013-03-18 15:51:23

回答

9

對於這樣一個簡單的問題,真的沒有理由使用像'tikzDevice'這樣的possibly unmaintained package。 「tikz」設備的部分問題是,它似乎沒有正確接受指定您的情節分辨率的「xpinch」和「ypinch」參數。

在繪圖中添加LaTEX符號有一個更大的問題,但對於這個本地化問題,問題是指定字體以使基本'plotmath'包顯示草書字母。

您可以通過繪圖命令分離出來,並從「標題」功能中選擇一個自定義的字體,這樣的改變你的X軸標籤的字體:

plot(1:10, 1:10, xlab="") 
windowsFonts(script=windowsFont("Script MT Bold")) 
title(xlab=expression(theta[l]), family="script") 

我們」什麼我們做的是在plot命令中爲x軸指定一個空標籤以首先創建空間。然後,我們將系統字體加載到可用的字體系列(我喜歡用於表達式的腳本MT Bold)。最後,我們可以使用'標題'功能繪製x軸標籤併爲該標籤中的任何文本指定族。

通過這樣做,我們保留了繪圖設備的所有原始功能,因此在轉換爲PDF時不應再有分辨率下降。

demo of chart

現在,如果任何人有一個很好的解決了「tikzDevice」包之外乳膠符號問題,我很想聽到它。我知道這樣做的唯一方法是翻轉模型並使用'tikz'LaTEX包在LaTEX文件中手動繪製整個圖形,或使用'pixmap'R包在我的表達式上繪製圖像情節的頂部。這兩者都不是一個完美的方法。

+0

謝謝,我將在本週研究你的答案結束:-) – Marco 2013-03-22 21:25:15

+0

我們在哪裏可以找到「windowsFonts」? – Marco 2013-03-26 05:31:04

+0

這些是您的系統上安裝的字體。您只需使用在計算機上註冊的字體名稱即可。在Windows計算機上,可以使用Character Map應用程序(系統工具)。 – Dinre 2013-03-26 11:46:09

1

這是一個很骯髒的解決方案,但它使:

plot(1,1, xlab=expression(theta)) 
title(xlab=" \u2113",line=3.2,cex.lab=.7) 

第一條曲線與THETA符號。然後添加小字號的\ ell符號並手動設置位置。

enter image description here

+0

@carelus:謝謝。當以pdf格式導出圖像時顯示爲\ ell? – Marco 2013-03-23 07:59:13

+2

剛剛檢查過,顯然它沒有:-( – 2013-03-23 19:21:04

+0

我也沒有,謝謝不管怎麼說 – Marco 2013-03-23 19:26:29

2

我覺得tikzDevice去這裏的路。您可以從R-forge安裝。

install.packages("tikzDevice", repos="http://R-Forge.R-project.org") 

的tikz/PGF理念是創建可以排版一個陰謀。您可能希望這些與您的文檔保持一致。例如,用相同的包,字體,字體大小等

您可以在通話中通過設置

選項,比如文檔聲明

options(tikzDocumentDeclaration = "\\documentclass[10pt]{article}") 

包設置這些東西tikz

tikzLatexPackages(或相似)

您還可以控制字體大小。

所有這些東西都在

?tikzDevice中詳細說明。


你也可以使用knitr一個有文化的編程文檔中創建您的地塊(.rnw)

在這種情況下,使用創建一個PDF一個tikz設備(如外部= TRUE),使用與整個文檔相同的文檔聲明和標題/軟件包。

\documentclass[12pt,a4paper]{article} 

\begin{document} 

<<setup, include = FALSE>>= 
opts_chunk$set(dev = 'tikz', external = TRUE) 
@ 


<<myplot, fig.width=5, fig.height = 5, echo=FALSE>>= 
plot(1:10, 1:10, xlab="$\\theta_\\ell$") 
@ 

\end{document} 
+0

如果您在Mac(或Windows)上安裝,您可能需要安裝適當的工具包並使用:'install.packages(「tikzDevice」,repos =「http:// R-Forge。 R-project.org「)' – 2013-03-27 18:00:43

0

我找到了解決方法here。他們解釋了一個冗長的過程,以使編碼與標準的pdf設備一起工作。否則,可通過安裝Cairo包使用CairoPDF設備。然後,使用@JuliánUrbano的解決方案,將在pdf中顯示類似xlab="\u2113"的內容。我在表達式中使用字符沒有運氣。