根据打击乐的回答\input 或 \include 语句的参数?环境中的height
和都可以用嵌套语句在外部(环境之外)设置:width
axis
PGFplots
axis
\pgfplotsset
\pgfplotsset{execute at begin axis={\pgfplotsset{width=5cm}}}
但是,如果我尝试将相同的概念应用于xmin
,,并且根据 Piotr 建议的答案,似乎不会覆盖环境中给出的设置。xmax
ymin
ymax
pgfplotsset
axis
考虑以下 MWE:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
{ % begin outer pgfplotsset scope
\pgfplotsset{ymax=5, ymin=1, execute at begin axis={\pgfplotsset{width=5cm}}}
\begin{tikzpicture}
\begin{axis}[width=10cm, ymin=0]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
} % end outer pgfplotsset scope
\end{document}
它生成了以下图表,其中ymin
显然 是0
,尽管我只是将其设置ymin=1
为pgfplotsset
。
我想要实现的目标
从环境外部设置xmin
、xmax
和(与我在 中应用的方式类似),即使它们也将在 中指定。对 等 的外部调用应覆盖 中设置的值。ymin
ymax
axis
width
execute at begin axis
pgsplotsset
\begin{axis}[]
xmin
\begin{axis}[]
答案1
嗯,根据他们的选择实际上做什么,我们可以简单地将其停用。
该键以(需要空格)overwrite option
的形式采用其参数,将键设置为该值,然后通过分配一个空的 来完全禁用该键。<key> with <value>
/.code
代码
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{overwrite option/.style args={#1 with #2}{#1=#2,#1/.code=}}
\begin{document}
{ % begin outer pgfplotsset scope
\pgfplotsset{ymax=5, overwrite option=ymin with 1, execute at begin axis={\pgfplotsset{width=5cm}}}% the ymin key doesn't work anymore
\begin{tikzpicture}
\begin{axis}[width=10cm, ymin=0]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
} % end outer pgfplotsset scope
% the ymin key works as usual
\end{document}
答案2
\pgfplotsset{xmin=...}
在所需范围内使用:
\documentclass[landscape]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
{ % begin pgfplotsset scope
\pgfplotsset{xmin=0, xmax=3, ymin=1, ymax=5}
\begin{tikzpicture}
\begin{axis}[width=10cm]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
} % end pgfplotsset scope
\begin{tikzpicture}
\begin{axis}[width=10cm]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
这将导致:
答案3
您正在寻找的是every axis post/.append style
关键,据我所知,它是在之前的轴样式之后执行的,因此会覆盖它们。因此解决方案非常简单:
\documentclass[border=2pt,convert={ghostscript, density={500}}]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
{ % begin outer pgfplotsset scope
\pgfplotsset{ymax=5, execute at begin axis={\pgfplotsset{width=5cm}},
every axis post/.append style={ymin=1}}
\begin{tikzpicture}
\begin{axis}[width=10cm, ymin=0]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
} % end outer pgfplotsset scope
\end{document}