
Я хотел бы нарисовать рамку, которая охватывает несколько фигур, используя опцию fit
. Но когда некоторые фигуры обрезаются, fit
все равно принимает всю фигуру.
Вот минимальный рабочий пример.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{fit,positioning}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
\node [draw, circle, minimum size=2cm] (A) {};
\end{scope}
\begin{scope}[xshift=1cm]
\clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
\node [draw, circle, minimum size=2cm] (B) {};
\end{scope}
\node [draw=blue, line width=1mm, inner sep=1mm, rectangle, fit=(A) (B)] {};
\end{tikzpicture}
\end{document}
И результат.
Есть ли способ лучше подогнать его под мои формы?
Поскольку эти scope
среды генерируются автоматически (с append after command
опцией), я бы хотел сохранить их максимально похожими. В остальном я бы принял любое решение.
решение1
Просто впишитеB.center
\node [draw=blue, line width=1mm, inner sep=1mm, rectangle, fit=(A) (B.center)] {};
Код:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{fit,positioning}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
\node [draw, circle, minimum size=2cm] (A) {};
\end{scope}
\begin{scope}[xshift=1cm]
\clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
\node [draw, circle, minimum size=2cm] (B) {};
\end{scope}
\node [draw=blue, line width=1mm, inner sep=1mm, rectangle, fit=(A) (B.center)] {};
\end{tikzpicture}
\end{document}