2017-04-21 1 views
0

私はuniversity document classを使用しています。このクラスはRのggplot2とtikzDeviceを使って生成されたプロットの凡例キーと凡例ラベルのレイアウトに何らかの影響を与えていると思います。Rのggplotとtikzdeviceによって生成された大学文書クラスとtikzpicture

この問題を再現するために、以下のRスクリプトを実行してください:

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() 

、我々はpdflatexをを使用して、このスクリプト(out.tex)の出力ファイルをコンパイルした場合、我々はこのような何かを取得する必要があります(伝説がここに完全に正常であることに注意してください):

enter image description here

それでは、「\のdocumentclassにライン "\ documentclass [10ptの] {記事}" 出力内のファイル(out.tex)を変更してみましょう[pdftex] {pittetd} "とpを使ってout.texをコンパイルするdflatex。 pittetd.clsは、out.texと同じディレクトリにある(またはシステムにインストールされている)必要があります。 "Missing number、zero as treated"のようなコンパイラエラーが表示されます。これらのエラーは無視してください。問題に関係ないので、新しいPDFファイル(out.pdf)が生成されるまでEnterキーを押し続けてください。

enter image description here

私の最高の推測では、問題はは、TikZとpittetdの間にいくつかのマクロ定義の競合であるかもしれないということです。出力は次のようなもの(凡例ラベルとキーが重複している注意してください)を探します。

誰にもこれがどうして起こっているのか、それを修正する方法を教えてください。

EDIT:ファイルout.texで

我々はpittetdドキュメントクラスを使用している場合、私はtikzpicture環境のパラメータを変更した場合、問題が解決されることを気づきました。

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

:我々は次の行を変更した場合、他の言葉で、

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

これは、重複を削除する必要があります。しかし、プロットを水平方向に伸ばしてしまうため、これは望ましくありません。このハックを使わずに(おそらくpittetd.clsファイルを変更して)この問題を解決する良い方法があるのだろうかと思います。

答えて

1

フォントサイズが12ptのために10ポイントから変化しているので、10ポイントでtikzDeviceにより評価したワード・サイズは、今従って衝突小さすぎます。サイドノートとして

、私は、メインのラテックス文書内の任意の再スケーリングなしでそれを含め、それが簡単に外部からPDFを生成するために見つけます。私はインラインtikzグラフをデバッグするのが難しいと感じています。

+0

答えを完全にするため、これはデフォルトの10ptではなく、12ptに基づいてサイズを計算する方法です: 'options(tikzDocumentDeclaration =" \\ documentclass [12pt] {article} ")'ありがとう。 – user8420488483439

関連する問題