function plotFig(FileName,varargin)
% plotFig(FileName,varargin)
% Plottet die aktuelle figure in eine Datei. 
%
% Der Dateiname ist FileName (Default ist der Name der aufrufenden Datei). 
% Mögliche Grafikformate werden als einzelne Strings übergeben, mögliche 
% Werte sind: 'pdf','png','eps','fig','all' (Default ist 'all')
% Bei 'all' werden eine .pdf eine .fig und eine .png erzeugt.
% 
% Beispiel: "plotFig('MeinBild')" erzeugt aus der aktuellen figure eine
%           .pdf eine .png und speichert die figure.
% 
% Autor: Wiebold Wurpts
% Datum: 24.07.2008   
%        15.11.2010    Wechsel auf GS .png printer , neue Default-Einstellungen
%        13.12.2010    Kleinen Bug beseitigt


% Default: Dateiname ist Name der aufrufenden Datei
if nargin==0
    stack    = dbstack;
    if ~isempty(stack)
        FileName = stack(2).name;
    else
        FileName = 'plot';
    end
end

% Default: plot der .png .pdf und .fig
if nargin<2
    varargin = {'all'};
end

% Auflösung für Bitmaps
res = 300;

% Kontroll Flag, um zu verhindern, dass eine .pdf beim .png Aufruf
% fälschlich  gelöscht wird
pdfflag = 0;
    
for i=1:length(varargin)   
    
    switch varargin{i}  
        
        case 'pdf'
            print('-dpdf',[FileName '.pdf']);
            
            pdfflag = 1;
            
        case 'png'
            
            % print('-dpng',[FileName '.png'],'-r300');
            
            % png printer funktioniert nicht richtig, daher manueller
            % Weg über Ghostscript und .pdf
            
            % Dummy .pdf erzeugen
            if pdfflag==0
                print('-dpdf',[FileName '.pdf']);
            end
             
            % Aus .pdf eine .png erzeugen
            str = ['gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=png16m -r' num2str(res) ' -dEPSCrop -sOutputFile=' FileName '.png ' FileName '.pdf'];
            system(str);
            
            % .pdf wieder löschen
            if pdfflag==0
                system(['del ' FileName '.pdf']);
            end
            
            
        case 'eps'
            print('-depsc2',[FileName '.eps']);  
            
        case 'fig'
            saveas(gcf,[FileName '.fig']);
            
        case 'all'
            
            % .pdf
            print('-dpdf',[FileName '.pdf']);
            
            % Aus .pdf eine .png erzeugen
%             str = ['gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=png16m -r' num2str(res) ' -dEPSCrop -sOutputFile=' FileName '.png ' FileName '.pdf'];
%             system(str);
%             
            % figure speichern
            saveas(gcf,[FileName '.fig']);

            
        otherwise
            error('Diese Typ wird nicht unterstützt.');
            
    end
    
end





