PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gnuplottex und subfig



mat69
24-01-2011, 19:29
Hallo,

Ich möchte zwei Grafiken mit gnuplottex erstellen und diese als subfloat in einer figure zusammen fassen.
Leider funktioniert dies nicht.
Kann mir da jemand von euch helfen?



\documentclass[a4paper,12pt,oneside,ngerman]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[pdftex]{graphicx}
\usepackage{caption,subfig}
\usepackage{gnuplottex}

\begin{document}
% Funktioniert
\begin{figure}[!ht]
\centering
\begin{gnuplot}[terminal=epslatex]
set terminal epslatex color size 9 cm, 7 cm font "phv" header "\\footnotesize"
plot sin(x)
\end{gnuplot}
\caption{One.}
\end{figure}

% Funktioniert nicht
\begin{figure}[!ht]
\centering
\subfloat[]{
\begin{gnuplot}[terminal=epslatex]
set terminal epslatex color size 9 cm, 7 cm font "phv" header "\\footnotesize"
plot sin(x)
\end{gnuplot}
}
\hfill
\subfloat[]{
\begin{gnuplot}[terminal=epslatex]
set terminal epslatex color size 9 cm, 7 cm font "phv" header "\\footnotesize"
plot cos(x)
\end{gnuplot}
}
\caption{Two.}
\end{figure}
\end{document}

PS.: Ich verwende "set terminal ..." weil ich die anderen Optionen nicht via "terminaloptions=" setzen kann.
PPS.: Ja, ich kenne multiplot, jedoch möchte ich das in Latex selbst machen.

sommerfee
24-01-2011, 19:50
Die Gnuplot-Umgebung mag es nicht, wenn sie als Argument an ein Makro übergeben wie z.B. \subfloat wird. Eine mögliche Abhilfe wäre, nur Konstukte zu verwenden, die die Übergabe an ein Makro vermeiden, wie z.B. die subfigure-Umgebung des/meines subcaption-Paketes(*):


\documentclass[a4paper,12pt,oneside,ngerman]{scrbook}
%\usepackage[utf8]{inputenc}
%\usepackage{babel}
\usepackage[pdftex]{graphicx}
\usepackage{caption,subcaption}
\usepackage{gnuplottex}

\begin{document}
% Funktioniert
\begin{figure}[!ht]
\centering
\begin{gnuplot}[terminal=epslatex]
set terminal epslatex color size 9 cm, 7 cm font "phv" header "\\footnotesize"
plot sin(x)
\end{gnuplot}
\caption{One.}
\end{figure}

\begin{figure}[!ht]
\centering
\begin{subfigure}{.4\textwidth}
\begin{gnuplot}[terminal=epslatex]
set terminal epslatex color size 9 cm, 7 cm font "phv" header "\\footnotesize"
plot sin(x)
\end{gnuplot}
\caption{}
\end{subfigure}
\hfill
\begin{subfigure}{.4\textwidth}
\begin{gnuplot}[terminal=epslatex]
set terminal epslatex color size 9 cm, 7 cm font "phv" header "\\footnotesize"
plot cos(x)
\end{gnuplot}
\caption{}
\end{subfigure}
\caption{Two.}
\end{figure}
\end{document}


Liebe Grüße,
Axel

(*) Man verzeihe mir die Eigenwerbung an dieser Stelle

mat69
24-01-2011, 22:35
Danke für die Antwort.
So funktioniert es. :)

Nur gibt es noch ein Problem.
Wie schaffe ich es einzustellen, dass der vorhandene Platz richtig ausgenützt wird? Mir ist etwa passiert, dass die rechte Grafik -- habe dann eine andere verwendet -- weiter hinaus als der Text reicht. Dies obwohl zwischen den Grafiken ausreichend Platz wäre, der dafür verwendet werden könnte.

bobmalaria
24-01-2011, 22:48
hi,

naja du gibst ja die größe in gnuplot vor. jetzt musst du wissen wie breit dein text ist und entsprechend die breite der bilder wählen. ich weiß nicht ob gnuplot im eps noch einen weissen rand um das bild bastelt. das musst du mal prüfen.

ansonsten kannst du anstatt dem im beispiel verwendeten \hfill auch ein \hspace{länge} verwenden. länge kann hierbei vieles sein 0.5cm, 10em, 20ex, usw....

gruss

mat69
24-01-2011, 23:01
Ja, gnuplot fügt standardmäßig einen Rand hinzu, den ich aber mit set [l|r|t|b]margin angepasst habe.
Derzeit verwende ich auch \hspace nur ist das ein bisschen mühsam, weshalb ich gehofft habe, dass es hier eine einfachere Lösung gibt.

bobmalaria
24-01-2011, 23:17
hi,

du könntest ein newcommand basteln in dem erst mit \widthof aus dem calc packet die breite der bilder festgestellt wird und dann \textwidth-\breitea-\breiteb verwendet wird um den restlichen abstand zu berechnen. das ist aber wieder \hfill :) du könntest natürlich die rechnung trotzdem machen und immer den gleichen abstand zusätzlich abziehen... :confused:

mat69
25-01-2011, 12:26
Ok, danke für die Tipps! :)
Ich denke ich werde dann wohl bei hspace bleiben, klingt dann doch irgendwie einfacher.