增加所有 tikzpicture 周圍的間距

增加所有 tikzpicture 周圍的間距

我知道我可以輕鬆增加 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}

現在我有很多tikz圖片,所以我嘗試了

\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 錯誤,圖像目前已暫停。對視覺服務的中斷表示歉意。

相關內容