我使用tikzscale
将所有图形缩放到相同大小。这种方法效果很好,但有时缩放后的宽度会有差异。我可以手动调整缩放参数(使用pdfcrop
并查看生成的页面宽度),但如果尺寸完全一致,那就更容易了tikzscale
。
在这个例子中,第一个图的宽度与框相比似乎有点太窄,而第二个图似乎是最宽的图形。
平均能量损失
\documentclass{article}
\usepackage{filecontents}
\usepackage{tikz, tikzscale, pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{filecontents}{fig.tikz}
\begin{tikzpicture}
\begin{axis}[]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{filecontents}
\begin{filecontents}{fig2.tikz}
\begin{tikzpicture}
\draw (0,0) rectangle (1,0.2);
\end{tikzpicture}
\end{filecontents}
\begin{filecontents}{fig3.tikz}
\begin{tikzpicture}
\begin{axis}[yticklabel style={overlay}]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{filecontents}
\includegraphics[width=1.00\linewidth, axisratio=4]{fig.tikz}
\vspace{0.1cm}
\includegraphics[width=1.00\linewidth]{fig2.tikz}
\vspace{0.1cm}
\includegraphics[width=1.00\linewidth, axisratio=4]{fig3.tikz}
\end{document}
答案1
tikzscale
正确地将两个轴缩放到整个文本宽度。但是,刻度标签周围有空白,缩放时会考虑到这一点。
您可以通过设置删除刻度标签周围的空白
\pgfplotsset{
xticklabel style={
inner xsep=0pt
},
yticklabel style={
inner xsep=0pt,
xshift=-0.333em
}
}
(请注意xshift
y 刻度标签,因为它们使用了 进行inner xsep
定位)
\documentclass{article}
\usepackage{filecontents}
\usepackage{tikz, tikzscale, pgfplots}
\usetikzlibrary{calc}
\begin{document}
\pgfplotsset{
xticklabel style={
inner xsep=0pt
},
yticklabel style={
inner xsep=0pt,
xshift=-0.333em
}
}
\begin{filecontents}{fig.tikz}
\begin{tikzpicture}
\begin{axis}[]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{filecontents}
\begin{filecontents}{fig2.tikz}
\begin{tikzpicture}[remember picture]
\draw (0,0) coordinate (A) rectangle (1,0.2) coordinate (B);
\end{tikzpicture}
\end{filecontents}
\begin{filecontents}{fig3.tikz}
\begin{tikzpicture}
\begin{axis}[yticklabel style={overlay}]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{filecontents}
\includegraphics[width=1.00\linewidth, axisratio=4]{fig.tikz}
\vspace{0.1cm}
\includegraphics[width=1.00\linewidth]{fig2.tikz}
\vspace{0.1cm}
\includegraphics[width=1.00\linewidth, axisratio=4]{fig3.tikz}
\tikz[remember picture, overlay, red] \draw (A) -- +(0,6cm) -- +(0,-4cm)
(B) -- +(0,4cm) -- +(0,-6cm);
\end{document}