matlab2tikz масштабирует переменную ширины с коэффициентом 0,95092

matlab2tikz масштабирует переменную ширины с коэффициентом 0,95092

Я использую глобальные переменные по умолчанию \figwidthдля ширины и \figheightвысоты рисунка в своем документе.

Они определены следующим кодом в заголовке моего документа:

Латекс

\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

В Matlab я передаю вышеупомянутые переменные в matlab2tikz.m, как показано ниже:

Матлаб

x = linspace(0,5,500);
y = sin(x);

figure
plot(x,y)
title('Sine Plot')

cleanfigure;
matlab2tikz('width','\figwidth','height','\figheight');

Однако, похоже, внутри matlab2tikz происходит какая-то магия, поскольку он применяеткоэффициент 0,95092к моему предопределенному\figwidth

Латекс

\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}%

Мой текущий обходной путь — добавление 0 в код Matlab:

Матлаб

matlab2tikz('width','0\figwidth','height','\figheight');

который дает:

Латекс

width=0\figwidth,

т.е. конечный результат при рассмотрении моего первоначального определения \figwidthпрочтений

width=00.8\textwidth,   % = 0\figwidth

что сейчас нормально, но может сломать код в некоторых ситуациях, которые не включают фактор в моем первоначальном определении переменной ширины. Например

\newcommand{\figwidth}{\textwidth}

даст нулевую ширину фигуры:

width=0\textwidth,   % = 0\figwidth = 0

Я просмотрел все файлы *.m, содержащиеся в папке src пакета matlab2tikz, на предмет этого фактора, но не нашел результатов в коде.

кратко:Кто-нибудь знает, что вызывает магический фактор 0,95092 и как его избежать? Заранее большое спасибо за помощь!

решение1

идентичный постна Githubбыл дан ответ. Смотрите ссылку на Github для ответа.

Связанный контент