我不明白这个 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 east
和outer south west
边界锚点给出的框。