matlab2tikz skaliert die Breitenvariable mit dem Faktor 0,95092

matlab2tikz skaliert die Breitenvariable mit dem Faktor 0,95092

Ich verwende globale Standardvariablen \figwidthfü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 \figwidthReads 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.

verwandte Informationen