2017-04-21 1 views
0

나는이 클래스가 R의 ggplot2 및 tikzDevice를 사용하여 생성 된 플롯의 범례 키 및 범례 레이블의 레이아웃에 어떻게 든 영향을 미친 것으로 생각합니다.R의 ggplot 및 tikzdevice에 의해 생성 된 대학 문서 클래스 및 tikzpicture

, 다음 R 스크립트를 실행하십시오이 문제를 재현하기 위해서 우리가 pdflatex을 사용하여이 스크립트 (out.tex)의 출력 파일을 컴파일하는 경우, 우리는 같은 것을 받아야 지금

require(dplyr) 
require(ggplot2) 
require(tikzDevice) 

pi <- filter(diamonds, (cut=="Premium" | cut=="Ideal") & color<"I") 
pi$cut <- factor(pi$cut) 
pi$color <- factor(pi$color) 

g1 <- ggplot(data=pi, aes(x=color, fill=cut, y=price)) + 
    geom_violin() + theme(legend.position = "top") 

setTikzDefaults(overwrite = TRUE) 
preamble <- options("tikzLatexPackages") 
options("tikzLatexPackages" = c(preamble$tikzLatexPackages, "\\usepackage{amsmath}")) 
tikz(file = "out.tex", width = 3, height = 2, standAlone = T) 

print(g1) 

dev.off() 

을 (전설이 여기에 완벽하게 정상이므로주의 해주십시오) :

enter image description here

을 지금에 "\ documentclass 명령의이 라인"\ documentclass 명령 [는 10pt] {기사} "출력 파일 내부 (out.tex)를 변경할 수 있습니다 [pdftex] {pittetd} "및 p를 사용하여 out.tex 컴파일 dflatex. pittetd.cls은 out.tex와 동일한 디렉토리에 있어야하거나 시스템에 설치되어 있어야합니다. "누락 된 번호, 0으로 처리됨"과 같은 컴파일러 오류가 표시됩니다. 그들은 우리의 문제와 관련이 없으므로이 오류를 그냥 무시하십시오. 새로운 PDF 파일 (out.pdf)이 생성 될 때까지 Enter 키를 계속 누릅니다.

enter image description here

내 추측이 문제가 TikZ와 pittetd 사이에 매크로 정의 충돌 될 수 있다는 것입니다 : 출력은 다음과 같은 (범례 레이블과 키가 중복되는 주)를 보인다.

아무도 왜 이런 일이 일어나고 어떻게 해결할 수 있는지 말해 줄 수 있습니까?

는 편집 : 우리가 pittetd 문서 클래스를 사용하는 경우 파일 out.tex에서

는, 나는 내가 tikzpicture 환경의 매개 변수를 변경하면 문제가 해결됩니다 것으로 나타났습니다; 즉, 우리가 다음 줄을 변경하는 경우 :

\begin{tikzpicture}[x=1pt,y=1pt] 

사람 : 중복을 제거해야

\begin{tikzpicture}[x=1.1pt,y=1pt] 

이를; 그러나 그것은 또한 바람직하지 않은 플롯을 수평으로 늘릴 것입니다. 이 해킹을 사용하지 않고 (아마도 pittetd.cls 파일을 변경하여)이 문제를 해결할 수있는 더 좋은 방법이 있는지 궁금합니다.

답변

1

글꼴 크기가 10pt에서 12pt로 변경되었으므로 10pt에서 tikzDevice가 평가 한 단어 크기가 너무 작아서 충돌이 발생합니다.

부수적으로, 필자는 외부에서 pdfs를 생성 한 다음 주 라텍스 문서에 재조정하지 않고 포함시키는 것이 더 쉽다는 것을 알았습니다. 인라인 tikz 그래프를 디버그하기가 더 어렵습니다.

+0

답을 완성하기 위해 tikzDevice가 기본값 10pt 대신 12pt를 기준으로 크기를 계산하는 방법을 설명합니다 :'options (tikzDocumentDeclaration = "\\ documentclass [12pt] {article}")'. 감사. – user8420488483439

관련 문제