PGFplot 轴标签与图形分离

PGFplot 轴标签与图形分离

更新:2013 年 8 月 4 日

  • 使用当前版本的 TeXLive 2013,如果\todo[inline]在第一次运行后注释掉,下面的第二个 MWE 仍然会表现出相同的行为。

  • 此外,现在的问题还如果使用了该类,则显示standalone该问题。虽然我 2012 年的更新表明该问题确实存在不是出现类standalone问题,现在我也可以用 TeXLive 2012 重现该问题。因此,要么是我之前测试不够仔细而没有注意到问题,要么是 2012 年 10 月 11 日之后发生了其他软件包更改,导致问题再次出现在软件包中standalone

  • 由于这个问题在后续运行后自行解决,也许这个问题应该结束了。然而,当这种情况发生在真实文档中时,到底发生了什么并不明显。我怀疑对包裹todonotes需要纠正这个问题。


更新日期:2012 年 10 月 11 日

  • 使用当前版本的 TeXLive 2012,该类不再出现此问题standalone。但是使用该类时article,此问题仍然会重现。以下 MWE 已更新。
  • 正如 Joseph Wright 在评论中指出的那样,这个问题在第三次运行中自行解决——只有第二次运行的输出才会出现该问题。

在之前的一个问题中缩放 pgfplots 图表,我提到尝试缩放图表会导致轴标签开始脱离轴。我还没有得到使用已发布代码来回答这个问题的答案,但现在即使没有应用任何缩放选项,我也看到了类似的行为。

不幸的是,我目前还无法重现 MWE。这个问题只会在我的大型文档中偶尔发生,对文档中不相关的部分进行更改会导致或修复轴标签与轴分离的问题。这次,问题出现在一个占位符图表上,其源代码如下。下面这个图表本身运行良好,最多当它包含在另一个文件中时,时间可以正常工作,但是并不总是工作。外盒来自几何包装。

当我将其包含在测试用例中时,一切都正常。我将继续寻找合适的 MWE,因为我完全理解在无法重现问题的情况下调试问题的困难,但希望其他人也遇到过类似的问题并知道它们与之相关,这样我就知道在哪里寻找问题。

% This works just fine, but sometimes has problems when included in another file
\documentclass{article}
\usepackage{standalone}
\usepackage{pgfplots}
%
\begin{document}
%
\pgfkeys{/pgfplots/axis labels at tip/.style={
        xlabel style={
            at={(current axis.right of origin)}, 
            xshift=1.5ex, anchor=center
        },
        ylabel style={
            at={(current axis.above origin)}, 
            yshift=1.5ex, anchor=center
        }
    }
}
%
\begin{tikzpicture}
\begin{axis}[
        clip=false,
        minor tick num=0, %
        axis y line=center,
        axis x line=middle, 
        axis on top=true,
        axis labels at tip,
        unbounded coords=jump, %
        tick label style={font=\small}, %
        legend style={font=\footnotesize},
        xmin=-5,
        xmax=5, 
        ymin=-1.0,
        ymax=5.0, 
        xlabel=$x$,
        ylabel=$y$,
    ] 
\end{axis} 
\end{tikzpicture}
\end{document}

来自axis labels at tip之前关于扩展的问题。我认为这与这里的问题无关,但我将其包括在内,因为这就是我设置此图表的方式。


更新:2011 年 6 月 20 日

我只在生成大量页面时才看到这个问题,因此很难找出导致此问题的原因。但是,现在已经设法进一步追踪此问题并得出以下 MWE。

使用 pdflatex 运行以下命令,然后注释掉该\todo行并重新运行。在后续运行中,我得到了一个两页的文档,第一页上有文本“Basic axis:”,第二页顶部有 y 轴标签,在页面底部附近可以看到少量 y 轴尖端。以下是第一次运行的输出:

在此处输入图片描述

以下是第二次运行的输出:

在此处输入图片描述

请注意轴的顶部位于第 2 页的底部,而标签y位于右上方附近。

为了使这些图像可用,我对下面的 MWE 进行了调整:

  1. \usepackage[paperheight=10.0cm, paperwidth=12.5cm]{geometry}, 和

  2. xlabel=$\textcolor{red}{x}$, ylabel=$\textcolor{red}{y}$

代码:

\documentclass{article}
\usepackage{pgfplots}
\usepackage{todonotes}
%
\begin{document}
%
\todo[inline]{Something to do}% Comment this line after 1st run
%
Basic axis:

\begin{minipage}{0.55\linewidth}
\begin{tikzpicture}
\begin{axis}[
        axis y line=center, axis x line=middle, 
        xmin=-2.5, xmax=2.5, ymin=-2.5, ymax=2.5, 
        axis on top=true,
        xlabel=$x$, ylabel=$y$,
    ] 
\end{axis}
\end{tikzpicture}
\end{minipage}
\end{document}

因此,现在我只需在运行之前删除所有 .AUX 文件(除非我特别需要多次运行),这似乎可以解决我的问题。我不认为这是导致此类问题的唯一原因,如果我可以用其他方法重现此问题,我会在此处发布。例如,缩放 pgfplots 图上的这个问题不需要重新运行来产生类似的行为。

答案1

只需重新运行第三次即可稳定下来。(已解决评论经过@JosephWright

相关内容