나는이 클래스가 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()
을 (전설이 여기에 완벽하게 정상이므로주의 해주십시오) :
을 지금에 "\ documentclass 명령의이 라인"\ documentclass 명령 [는 10pt] {기사} "출력 파일 내부 (out.tex)를 변경할 수 있습니다 [pdftex] {pittetd} "및 p를 사용하여 out.tex 컴파일 dflatex. pittetd.cls은 out.tex와 동일한 디렉토리에 있어야하거나 시스템에 설치되어 있어야합니다. "누락 된 번호, 0으로 처리됨"과 같은 컴파일러 오류가 표시됩니다. 그들은 우리의 문제와 관련이 없으므로이 오류를 그냥 무시하십시오. 새로운 PDF 파일 (out.pdf)이 생성 될 때까지 Enter 키를 계속 누릅니다.
내 추측이 문제가 TikZ와 pittetd 사이에 매크로 정의 충돌 될 수 있다는 것입니다 : 출력은 다음과 같은 (범례 레이블과 키가 중복되는 주)를 보인다.
아무도 왜 이런 일이 일어나고 어떻게 해결할 수 있는지 말해 줄 수 있습니까?
는 편집 : 우리가 pittetd 문서 클래스를 사용하는 경우 파일 out.tex에서
는, 나는 내가 tikzpicture 환경의 매개 변수를 변경하면 문제가 해결됩니다 것으로 나타났습니다; 즉, 우리가 다음 줄을 변경하는 경우 :
\begin{tikzpicture}[x=1pt,y=1pt]
사람 : 중복을 제거해야
\begin{tikzpicture}[x=1.1pt,y=1pt]
이를; 그러나 그것은 또한 바람직하지 않은 플롯을 수평으로 늘릴 것입니다. 이 해킹을 사용하지 않고 (아마도 pittetd.cls 파일을 변경하여)이 문제를 해결할 수있는 더 좋은 방법이 있는지 궁금합니다.
답을 완성하기 위해 tikzDevice가 기본값 10pt 대신 12pt를 기준으로 크기를 계산하는 방법을 설명합니다 :'options (tikzDocumentDeclaration = "\\ documentclass [12pt] {article}")'. 감사. – user8420488483439