すべての 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

の内容は、境界ボックスが 0 × 0 のときに、every pictureの先頭で実行されますtikzpicture。おそらく、これによってエラーの原因となる 0 除算が発生します。

の最初ではなく最後にコードを実行する必要があります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 のバグにより、現在画像の提供が停止されています。画像サービスが中断したことをお詫び申し上げます。

関連情報