Anzeige:
Ergebnis 1 bis 7 von 7

Thema: gnuplottex und subfig

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.07.2007
    Beiträge
    26

    gnuplottex und subfig

    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?

    Code:
    \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.

  2. #2
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    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(*):
    Code:
    \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

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.07.2007
    Beiträge
    26
    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.

  4. #4
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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
    Mein Ball ist umgefallen

  5. #5
    Registrierter Benutzer
    Registriert seit
    06.07.2007
    Beiträge
    26
    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.

  6. #6
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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...
    Mein Ball ist umgefallen

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.07.2007
    Beiträge
    26
    Ok, danke für die Tipps!
    Ich denke ich werde dann wohl bei hspace bleiben, klingt dann doch irgendwie einfacher.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •