tikzpicture 填充

tikzpicture 填充

我不明白这个 mwe- 周围的神秘空白从何tikzpicture而来:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{arrows.meta}

\newcommand{\img}{
    \begin{tikzpicture}[outer sep=0.3333em, inner sep=0]
    \begin{axis}[
    x = 1cm,
    y = 2cm,
    axis lines=middle,
    axis line style={-Stealth,thick},
    xmin=-.625,xmax=6,ymin=-.3125,ymax=1.25,
    xtick={-1,0,1,2,3,4,5},
    ytick={0,0.5,1},
    extra x ticks={5.5},
    extra y ticks={-0.25},
    extra x tick style={xticklabel=\empty},
    extra y tick style={yticklabel=\empty},
    xtick distance=1,
    ytick distance=1,
    xlabel=$t$,
    ylabel=$f(t)$,
    minor tick num= 1,
    grid style={thin,densely dotted,black!20}]
    \end{axis}  
    \end{tikzpicture}
}

\pagestyle{empty}

\begin{document}
    \begin{center}          
        \begin{figure}
            \setlength{\fboxsep}{0pt}
            \fbox{\img}
        \end{figure}
    \end{center}
\end{document}

不仅左右两侧有大量空白,而且上下两侧也有小空白。在某些情况下,大空白会消失,但中间的小间隙fbox始终tikzpicture存在。

我需要应用程序的精确边界框,因此这个结果有些问题。当然,如果是一些复杂的贝塞尔图,我会手动绘制边界框,但在这种情况下,这应该没有必要。 全貌 微小差距

答案1

大部分水平间距来自以\img未注释的新行形式添加的空格。 内容的顶部、底部、左侧和右侧均有剩余间隙\fbox

由于……造成的周围最小间隙?

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{arrows.meta}

\newcommand{\img}{%
    \begin{tikzpicture}[outer sep=0, inner sep=0]
    \begin{axis}[
      outer sep=.3333em,
    x = 1cm,
    y = 2cm,
    axis lines=middle,
    axis line style={-Stealth,thick},
    xmin=-.625,xmax=6,ymin=-.3125,ymax=1.25,
    xtick={-1,0,1,2,3,4,5},
    ytick={0,0.5,1},
    extra x ticks={5.5},
    extra y ticks={-0.25},
    extra x tick style={xticklabel=\empty},
    extra y tick style={yticklabel=\empty},
    xtick distance=1,
    ytick distance=1,
    xlabel=$t$,
    ylabel=$f(t)$,
    minor tick num= 1,
    grid style={thin,densely dotted,black!20}]
    \end{axis}  
    \end{tikzpicture}%
}

\pagestyle{empty}

\begin{document}        
  \begin{figure}\centering
    \setlength{\fboxsep}{0pt}
    \fbox{\img}
  \end{figure}
\end{document}

我怀疑剩下的差距来自于 axis 环境是一个节点。如果我们进行\img如下更改

\newcommand{\img}{%
    \begin{tikzpicture}[outer sep=0pt, inner sep=0pt]
    \begin{axis}[
      outer sep=.3333em,
      name=mab,
    x = 1cm,
    y = 2cm,
    axis lines=middle,
    axis line style={-Stealth,thick},
    xmin=-.625,xmax=6,ymin=-.3125,ymax=1.25,
    xtick={-1,0,1,2,3,4,5},
    ytick={0,0.5,1},
    extra x ticks={5.5},
    extra y ticks={-0.25},
    extra x tick style={xticklabel=\empty},
    extra y tick style={yticklabel=\empty},
    xtick distance=1,
    ytick distance=1,
    xlabel=$t$,
    ylabel=$f(t)$,
    minor tick num= 1,
    grid style={thin,densely dotted,black!20}]
    \end{axis}  
    \draw [red] (mab.north west) |- (mab.south east) |- cycle;
    \draw [blue] (mab.outer north west) |- (mab.outer south east) |- cycle;
    \end{tikzpicture}%
}

那么我们可以看到它是位于框边界上的“外边界锚点”。

标准和外边框锚点周围的线

正如这表明\fbox north west围绕图像边界框进行绘制,但该框与节点的和south east锚点给出的框不同axis。相反,它是由outer north eastouter south west边界锚点给出的框。

相关内容