Я знаю, что могу легко увеличить пространство, занимаемое 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}
Теперь у меня много тикзпиков, поэтому я попробовал
\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. Приносим извинения за сбой в работе визуальных сервисов.