我使用 pgfplots 绘制图形,然后使用 externalize 库输出独立 pdf,并将其包含在另一个文档中。问题是输出的独立图形宽度不同,当将它们全部包含在相同宽度中时,字体大小会有所不同。在执行我描述的工作流程时,有没有办法让所有图形的字体大小相同。
MWE 有两个 pgfplots 图形,它们都具有 tikzpicture 中指定的相同宽度,其中一个具有更大的 ytick 标签,其他一切都相同。生成的独立图形具有不同的宽度。当我将它们包含在另一个文档中时,字体会有所不同。
\documentclass[a4paper,12pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{external}
\tikzexternalize[prefix=tikz_figures/]
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
width=7.5cm,
xmin = 0, xmax = 5,
ymin = 0, ymax = 5,
xlabel={x},
ylabel={y}
]
\end{axis}
\end{tikzpicture}
\end{figure}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
width=7.5cm,
xmin = 0, xmax = 5,
ymin = 0, ymax = 5,
ytick = {0.1},
xlabel={x},
ylabel={y}
]
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
有任何想法吗?
答案1
ytick
在第二个图中,您在 0.1 处有一个,因此ylabel
考虑到额外的空间,将向右移动。您可以ylabel
通过以下方式固定 的位置:
ylabel style={at={(rel axis cs:-0.1,0.5)}}
您可以在手册中找到各种cs
(如)系统(此外,我已经使用过)ticklabel cs
rel axis cs
\documentclass[a4paper,12pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{external}
\tikzexternalize[prefix=tikz_figures/]
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
width=7.5cm,
xmin = 0, xmax = 5,
ymin = 0, ymax = 5,
xlabel={x},
ylabel={y},
ylabel style={at={(rel axis cs:-0.1,0.5)}}
]
\end{axis}
\end{tikzpicture}
\end{figure}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
width=7.5cm,
xmin = 0, xmax = 5,
ymin = 0, ymax = 5,
ytick = {0.1},
xlabel={x},
ylabel={y},
ylabel style={at={(rel axis cs:-0.1,0.5)}}
]
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}