增加所有 tikzpictures 周围的间距

增加所有 tikzpictures 周围的间距

我知道我可以轻松增加 tikzpicture 占用的空间

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\begin{document}
    y\tikz {\fill circle (2pt); \node[fit=(current bounding box), inner sep=2pt, draw] {};}x
\end{document}

现在我有很多 tikzpictures,所以我尝试了

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\tikzset{every picture/.append code={\node[fit=(current bounding box), inner sep=2pt, draw] {};}}
\begin{document}
    y\tikz {\fill circle (2pt);}x
\end{document}

失败并显示dimension too large。我猜代码被多次评估,或者是什么导致了错误?

答案1

当边界框为零乘以零时, 的内容every picture将在 的开头执行tikzpicture。据推测,这会导致除以零,从而导致错误。

您希望代码不是在开头而是在结尾执行tikzpicturebackgrounds可以通过创建一个空的来使用该库background rectangle。默认情况下,边框是用绘制线框起来的,因此传递draw=none以使其不可见并使用outer frame sep来设置填充。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\tikzset{every picture/.append style={show background rectangle,background rectangle/.style={draw=none,outer frame sep=2pt}}}
\begin{document}
  y\tikz {\fill circle (2pt);}x
\end{document}

由于 Okular-on-X 错误,图像服务目前暂停。对于视觉服务中断,我们深表歉意。

相关内容