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 backgrounds
biblioteca pode ser usada para isso criando um background rectangle
arquivo vazio. Por padrão, a borda é enquadrada por uma linha de desenho, então passe draw=none
para torná-la invisível e use outer frame sep
para 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.