![tikzscale 包不适用于组图](https://linux22.com/image/452590/tikzscale%20%E5%8C%85%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E7%BB%84%E5%9B%BE.png)
我正在尝试缩放使用组图的 pgfplots,但有些东西无法正常工作。这是 MWE:
\documentclass{article}
\usepackage[%
total={6in,9in},%
body={111.5mm,185.6mm},%
head=10pt,
centering,showframe,
]{geometry}
\usepackage{showframe}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots, colorbrewer}
\usepackage{tikzscale}
\begin{document}
\includegraphics[width=1.\linewidth,axisratio=1]{group_plot.tikz}
\input{group_plot.tikz}
\end{document}
该文件group_plot.tikz
很简单:
\begin{tikzpicture}[]
\begin{groupplot}[cycle list/Dark2, group style={group name=myplot, group size= 2 by 1, horizontal sep=0.5em}, every axis plot/.append style={line width=0.4mm, line join=round},
axis lines = middle,
enlargelimits = true,
x axis line style = {thick,-stealth},
y axis line style = {thick,-stealth},
legend style={font=\footnotesize, at={(0.61,0)}, anchor=south, draw=none, yshift=-23pt, fill=white, fill opacity=0.9,
/tikz/every even column/.append style={column sep=0.2cm}},
legend columns=3,
xmin=-1,xmax=1,
ymin=-1,ymax=1.,
% every axis x label/.style={at={(current axis.east)}, yshift=3pt},
]
\nextgroupplot[
cycle list name = Dark2,
xlabel=$\xi$,
ylabel={$\xi^i$},
xtick={-1,1},
ytick={1},
every axis y label/.style={at={(current axis.north)}, xshift=8pt,yshift=-2pt},
]
% use TeX as calculator:
\addplot + [mark=none, domain=-1:1] {x};
\nextgroupplot[
cycle list name = Dark2,
xlabel=$\xi$,
ylabel={$L_i(\xi)$},
xtick={-1,1},
ytick={1},
every axis y label/.style={at={(current axis.north)}, xshift=15pt,yshift=-2pt},
]
% use TeX as calculator:
\addplot + [mark=none, domain=-1:1] {x};
\end{groupplot}
\draw[red] (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}
我得到了一个没有意义的结果是错误的:
./group_plot.tikz:36:包 pgfplots 错误:错误:绘图宽度“-6.1997pt”太小。在保持标签大小不变的情况下无法实现此操作。抱歉,标签大小仅为近似值。您需要调整宽度。
结果如下:
答案1
我不太确定这是否是您想要的解决方案。但我编译时得到了相同的消息,如下-6.1997pt
所示,我只是做了一些小改动链接的答案在评论中引用,我只会展示代码的这些部分,其余部分保持完整。
变化
变化如下:
- 在您的主文件中,
\pgfplotsset{compat=1.10}
。这不是强制性的,但结果看起来更好。
\usepackage{pgfplots}
\pgfplotsset{compat=1.10} % add
- 在您的
group_plot.tikz
添加以下行到\begin{groupplot}
\begin{groupplot}[
...
% add
width=1/2*\textwidth-2.5cm,
height=2.5cm
]
您可以编辑这些值以获得您想要的结果。
我注意到这些行不在您的组定义中,但它们在原始行中,此外,日志消息写了一些关于height
和的内容width
,所以这是我最好的猜测。
- 不是强制性的,但我将图形的尺寸从 1 缩小到
0.9 \linewidth
了\includegraphics[width=0.9\linewidth,axisratio=1]{group_plot.tikz}
。
结果
和 \pgfplotsset{compat=1.10}
。
没有 \pgfplotsset{compat=1.10}
。