输入图时使用 pgfplots 和自定义长度来定义全局宽度

输入图时使用 pgfplots 和自定义长度来定义全局宽度

我正在尝试使用自定义宽度设置所有在其他文件中定义并导入到主文档中的图的宽度。\sz我尝试设置此长度是因为我想将其更改为一列或两列。就像在这个例子中一样main.tex

\documentclass{minimal}

\usepackage{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\newlength{\sz}
\setlength{\sz}{0.5\linewidth}
\pgfplotsset{width=\sz,compat=newest}

\begin{document}
\input{test}
\end{document}

test.tex

\documentclass{standalone}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
x tick label style={
/pgf/number format/1000 sep=},
ylabel=Population,
enlargelimits=0.05,
legend style={at={(0.5,-0.15)},
anchor=north,legend columns=-1},
ybar interval=0.7,
cycle list name=color list
]
\addplot
coordinates {(1930,50e6) (1940,33e6)
(1950,40e6) (1960,50e6) (1970,70e6)};
\addplot
coordinates {(1930,38e6) (1940,42e6)
(1950,43e6) (1960,45e6) (1970,65e6)};
\addplot
coordinates {(1930,15e6) (1940,12e6)
(1950,13e6) (1960,25e6) (1970,35e6)};
\addplot
coordinates {(1930,15e6) (1940,12e6)
(1950,13e6) (1960,25e6) (1970,35e6)};

\legend{Far,Near,Here,There}
\end{axis}
\end{tikzpicture}
\end{document}

但是,当我编译它时,的长度\sz被重置为零。我收到错误:Error: Plot width '0.0pt' is too small.有没有办法设置长度,以便其他文件中的图形能够“看到”它?

答案1

发生这种情况的原因是,您使用了minimal未定义 的 documentclass \linewidth。如果您使用适当的类(例如 )article,您的设置将有效。

相关内容