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 のバグにより、現在画像の提供が停止されています。画像サービスが中断したことをお詫び申し上げます。