我知道我可以轻松增加 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
。据推测,这会导致除以零,从而导致错误。
您希望代码不是在开头而是在结尾执行tikzpicture
。backgrounds
可以通过创建一个空的来使用该库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 错误,图像服务目前暂停。对于视觉服务中断,我们深表歉意。