Ich verwende globale Standardvariablen \figwidth
für die Bildbreite und \figheight
-höhe in meinem Dokument.
Diese werden durch den folgenden Code in meinem Dokumentkopf definiert:
Latex
\newcommand{\figwidth}{0.8\textwidth} % sets \figwidth, which can be used as default width for figures
\newcommand{\figheight}{\figwidth/1.618} % sets \figheight, which can be used as default heigth for figures
In Matlab übergebe ich die oben genannten Variablen an matlab2tikz.m, wie unten gezeigt:
Matlab
x = linspace(0,5,500);
y = sin(x);
figure
plot(x,y)
title('Sine Plot')
cleanfigure;
matlab2tikz('width','\figwidth','height','\figheight');
Allerdings scheint es innerhalb von matlab2tikz eine gewisse Magie zu geben, da es dieFaktor 0,95092zu meiner vordefinierten\figwidth
Latex
\begin{tikzpicture}
\begin{axis}[%
width=0.95092\figwidth,
height=\figheight,
at={(0\figwidth,0\figheight)},
scale only axis,
separate axis lines,
every outer x axis line/.append style={black},
every x tick label/.append style={font=\color{black}},
xmin=0,
xmax=5,
every outer y axis line/.append style={black},
every y tick label/.append style={font=\color{black}},
ymin=-1,
ymax=1,
title={Sine Plot}
]
\addplot [color=blue,solid,forget plot]
table[row sep=crcr]{%
0 0\\
0.0100200400801603 0.010019872410322\\
0.0200400801603206 0.020038738821815\\
0.030060120240481 0.0300555933366527\\
//..... many more entries in table .....
4.98997995991984 -0.961718395396395\\
5 -0.958924274663138\\
};
\end{axis}
\end{tikzpicture}%
Mein aktueller Workaround besteht darin, im Matlab-Code eine 0 hinzuzufügen:
Matlab
matlab2tikz('width','0\figwidth','height','\figheight');
was ergibt:
Latex
width=0\figwidth,
d. h. das Endergebnis, wenn man meine ursprüngliche Definition von \figwidth
Reads betrachtet
width=00.8\textwidth, % = 0\figwidth
Das ist für den Moment in Ordnung, könnte aber in einigen Situationen, in denen kein Faktor in meiner ursprünglichen Definition der Breitenvariable enthalten ist, den Code beschädigen. Zum Beispiel
\newcommand{\figwidth}{\textwidth}
würde eine Ziffernbreite von Null ergeben:
width=0\textwidth, % = 0\figwidth = 0
Ich habe alle im src-Ordner des matlab2tikz-Pakets enthaltenen *.m-Dateien nach diesem Faktor durchsucht, aber im Code keine Ergebnisse gefunden.
tl:dr;Weiß jemand, was den magischen Faktor 0,95092 verursacht und wie man ihn vermeidet? Vielen Dank im Voraus für Ihre Hilfe!
Antwort1
identischer Beitragauf Githubwurde beantwortet. Die Antwort finden Sie unter Github-Link.