Aumentando o espaçamento em torno de todas as imagens tikz

Aumentando o espaçamento em torno de todas as imagens tikz

Eu sei que posso facilmente aumentar o espaço que uma foto tikz ocupa

\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}

Agora eu tenho muitas fotos tikz, então tentei

\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}

que falha com dimension too large. Acho que o código é avaliado várias vezes ou o que está causando o erro?

Responder1

O conteúdo de every pictureé executado no início de tikzpicture, quando a caixa delimitadora é zero por zero. Presumivelmente, isso leva a uma divisão por zero responsável pelo erro.

Você deseja que o código seja executado não no início, mas no final de tikzpicture. A backgroundsbiblioteca pode ser usada para isso criando um background rectanglearquivo vazio. Por padrão, a borda é enquadrada por uma linha de desenho, então passe draw=nonepara torná-la invisível e use outer frame seppara definir o preenchimento.

\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}

As imagens estão atualmente suspensas devido a um bug do Okular-on-X. Pedimos desculpas pela interrupção dos serviços visuais.

informação relacionada