我知道我可以輕鬆增加 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 錯誤,圖像目前已暫停。對視覺服務的中斷表示歉意。