WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Latex Schrift bei figure Nummerierung verwenden

 

matlaber2012
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 06.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2012, 17:27     Titel: Latex Schrift bei figure Nummerierung verwenden
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein MATLAB-figure und möchte die als Interpreter latex benutzen. Für die Überschrift und die Achsenbeschriftung klappt alles sehr gut mit 'interpreter','latex'. Ich möchte aber auch die Nummerierung in der selben Schriftart haben. Wie läßt sich das einstellen?
Vielen Dank für eure Antworten
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 26.04.2012, 18:44     Titel:
  Antworten mit Zitat      
Glaube nicht dass das möglich ist,
da Ticks zu Axen gehören und die Axes hat keinen Interpreter

Du kannst zwar die Schriftart in Axen verändern, aber woher weiß was für Schriftart bei Latex Interpreter genutzt wurde?
Code:

get(gca,'FontName')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Matt Lappen
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 23.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2012, 08:37     Titel:
  Antworten mit Zitat      
Hi Matlaber,

Bin auch dennys Meinung, die Achsen haben keine Interpreter Option.
das Ändern der Schriftart ist eine Möglichkeit.
Setze am besten die Achsen-Font auf eine ähnliche Schriftart (je nachdem, was bei dir in Matlab verfügbar ist)
Ich finde die Schriftart Linux Libertine G ganz passend.

Falls es dir auch um den Interpreter und nicht nur um die Schriftart geht, kannst du auch die X-,YTickLabels ausblenden und neue Achsenbeschriftungen mit text() erstellen. Dann kannst du auch den Interpreter verwenden.

Gruß,
Matt
Code:
plot(sin(1:10))
 
xpos=get(gca,'xtick');                %Xticks
xtlabel = get(gca,'Xticklabel');    %Achsenbeschriftung
set(gca,'Xticklabel',[])                %Achsenbeschriftung entfernen
yl=get(gca,'ylim');                     % y-Position der neuen Beschriftung festlegen
ypos = yl(1) - (yl(2)-yl(1))*.03;     % y-Position der neuen Beschriftung festlegen

text(xpos,ypos*ones(size(xpos)),xtlabel,'interpreter','Latex','horizontalalignment','center')
Private Nachricht senden Benutzer-Profile anzeigen
 
mat_macs
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2013, 16:28     Titel:
  Antworten mit Zitat      
Die Fragestellung trifft sich genau mit meinem Problem! Ich möchte ebenfalls die XtickLabels mit dem LatexInterpreter versehen und habe quasi ein Workaround-Programm erstellt. In Zeile 5-9 habe ich mir probehalber die am häufigsten bei meinen Untersuchungen vorkommenden Plots eingestellt.
So sieht das bei mir auch ganz gut aus, ABER wenn man die Figuregröße ändert (z.B. durch maximieren oder anfassen an den Seiten) oder aber die Funktion aufruft, nachdem eine Figure mit anderen Plots erstellt wurde, dann sind die ersetzten Textobjekte wild verstreut.

Meine Frage wäre daher, wie man denn die Textobjekte dynamisch bzw. variabel an die axes-position bindet. Sodass man in etwa immer den gleichen Abstand zur Axes hat.

Hat jemand eine Idee?

Viele Grüße,
Max


Hier mein Code:
Code:


function lat_label()

clf;

figure; set(gcf,'Position',[2889 9 944 988]);
subplot(2,2,1,'ActivePositionProperty','Position');  plot(1:10);xlabel('test'); ylabel('test'); title('test');
subplot(2,2,2,'ActivePositionProperty','Position');  plot(1:10);xlabel('test'); ylabel('test'); title('test');
subplot(2,2,3:4,'ActivePositionProperty','Position');plot(1:10);xlabel('test'); ylabel('test'); title('test');
[~,tit] = suplabel('Testereitest','t');

 
set(gca,'ActivePositionProperty','Position')
set(gca,'Clipping','off')
hold on

objects = findobj(gcf);
[ax,~]  = find(strcmp('axes',get(objects,'Type')));

    for l = 1:length(ax)-1 % letzte Axes ist die große unsichtbare im Hintergrund
        h = objects(ax(l));
        axes(h);
        pos(l,1:4) = get(h,'position');
        xticks = get(h,'XTick'); set(h,'xticklabel',[]);
        XlabP  = get(get(h,'xlabel'),'position');
        yticks = get(h,'YTick'); set(h,'yticklabel',[]);
        YlabP  = get(get(h,'ylabel'),'position');
       
        if l ~= 1 && pos(l,length(ax)-1) > pos(l,1)
            for xxx = 1:length(xticks)
                xtlabnew(xxx) = text(xticks(xxx),pos(l,2)+0.6,num2str(xticks(xxx)),'interpreter','latex','HorizontalAlignment','Center');
            end
            for yyy = 1:length(yticks)
                yticklabnew(yyy) = text(xticks(1)-0.2,yticks(yyy),num2str(yticks(yyy)),'interpreter','latex','VerticalAlignment','middle');
            end
        else
            for xxx = 1:length(xticks)
                xtlabnew(xxx) = text(xticks(xxx),pos(l,2),num2str(xticks(xxx)),'interpreter','latex','HorizontalAlignment','Center');
            end
            for yyy = 1:length(yticks)
                yticklabnew(yyy) = text(xticks(1)-0.5,yticks(yyy),num2str(yticks(yyy)),'interpreter','latex','VerticalAlignment','middle');
            end
        end
       
        if l ~= 1 && pos(l,length(ax)-1) > pos(l,1)
            set(get(h,'xlabel'),'position',[XlabP(1) XlabP(2)-.3 XlabP(3)]);
            set(get(h,'ylabel'),'position',[YlabP(1)-.2 YlabP(2) YlabP(3)]);
        else
            set(get(h,'xlabel'),'position',[XlabP(1) XlabP(2)-.5 XlabP(3)]);
            set(get(h,'ylabel'),'position',[YlabP(1)-.4 YlabP(2) YlabP(3)]);
        end
       
     %% Replace xlabel, ylabel and title

        set(get(h,'xlabel'),'interpreter','latex');
        set(get(h,'ylabel'),'interpreter','latex');
        set(get(h,'title'), 'interpreter','latex');

    end
   
end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.