乳胶图标题重叠与epslatex终端生成的gnuplot图

时间:2014-07-01 20:08:29

标签: latex gnuplot margins caption

我必须绘制4个图形,它们之间没有垂直空格,并在我的tex文档中添加标题。我认为问题是标题与x轴标签重叠,因为底部边距为零。

gnuplot文件是这样的

set term epslatex
set output 'foo.tex'

set xrange [-1:1]
set yrange [-1:1]

set multiplot layout 4,1
set ylabel '$y$'
unset xlabel
unset xtics
set tmargin 0
set bmargin 0
plot x w lines
plot x*x w lines
plot x*x*x w lines
set xlabel '$x$'
set xtics
plot x*x*x*x w lines
unset multiplot

并且tex文件是

\documentclass[a4paper,11pt]{toptesi}
\usepackage{graphicx}

\begin{document}

\begin{figure}
\input{foo}
\caption{bla bla}
\end{figure}

\end{document}

并且“bla bla”来自x标签......我试图在最后一个图形之前设置一个bmargin“某事”,但是这个问题是最后一个图形不再是前三个图形的大小了...如何修复图的大小,但允许使用tex标题的bmargin?

1 个答案:

答案 0 :(得分:0)

试试这段代码......

set term epslatex size <width> <height>
set output 'foo.tex'

set xrange [-1:1]
set yrange [-1:1]

set multiplot
# setup sizes of single plots
set size 1,.25
set ylabel '$y$'
unset xlabel
unset xtics
set tmargin 0
set bmargin 0
# set bottom left corner of current plot
set origin 0,.75
plot x w lines
set origin 0,.5
plot x*x w lines 
set origin 0,.25
plot x*x*x w lines
set xlabel '$x$'
set xtics 
# set bmargin back
set bmargin 3 #might be enought for place xlabel, try it...
set origin 0,0 
plot x*x*x*x w lines

unset multiplot
set out
set term pop

但是......底部面板比其他面板小,因此您必须增加底部面板的垂直尺寸(使用set size 1, aa>0.25并减小其他人的垂直尺寸(set size 1, b之前每个绘图命令)并满足a+3b=1。这种微调将取决于epslatex终端的大小参数。

可能会有更好的解决方案:

 ...
 set size 0,.25
 set tmargin 0
 set bmargin 1
 set origin .75,0
 plot ...
 set tmargin -1
 set bmargin 2
 set origin .5,0
 plot ...
 set tmargin -2
 set bmargin 3
 set origin .25,0
 plot ...
 set tmargin -3
 set bmargin 4
 set origin .25,0
 plot ...

现在我们可能有足够的空间用于底部xlabel,并且所有面板都具有相同的高度。 Unfotunatelly gnuplot 4.6.3将tmargin -3解释为tmargin 0。所以我们现在不能使用它...可能是在一些较新的版本中。