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
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.
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.
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
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
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.