нарисовать круглую/прямоугольную скобку, охватывающую узлы в tikz

нарисовать круглую/прямоугольную скобку, охватывающую узлы в tikz

Я знаю, как нарисовать фигурную скобку с помощью следующего кода:

\draw[decorate,decoration={brace,amplitude=5},-] (0.8,-0.75) -- (0.8,0.75);

Но теперь я хочу нарисовать круглую скобку или прямоугольную. Может кто-нибудь сказать, как это сделать? Можно ли это сделать, изменив "brace" на какие-то другие значения?

Результат должен выглядеть так: (несколько изображений)

но не {некоторые фотографии}

решение1

Ниже я определяю стили

  • square left brace,
  • square right brace,
  • round left paren, и
  • round right paren

что дает:

введите описание изображения здесь

Примечания:

Код:

\documentclass[landscape]{article}
\usepackage{tikz}
\usetikzlibrary{calc}

%% https://tex.stackexchange.com/questions/55068/is-there-a-tikz-equivalent-to-the-pstricks-ncbar-command
\tikzset{
    ncbar angle/.initial=90,
    ncbar/.style={
        to path=(\tikztostart)
        -- ($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)
        -- ($(\tikztotarget)!($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztostart)$)
        -- (\tikztotarget)
    },
    ncbar/.default=0.5cm,
}

\tikzset{square left brace/.style={ncbar=0.5cm}}
\tikzset{square right brace/.style={ncbar=-0.5cm}}

\tikzset{round left paren/.style={ncbar=0.5cm,out=120,in=-120}}
\tikzset{round right paren/.style={ncbar=0.5cm,out=60,in=-60}}

\begin{document}

\begin{tikzpicture}
    \draw [red, thick] (0,0) to [square left brace ] (0,4);
    \draw [red, thick] (1,0) to [square right brace] (1,4);
    
    
    \draw [blue, thick] (3,0) to [round left paren ] (3,4);
    \draw [blue, thick] (4,0) to [round right paren] (4,4);
\end{tikzpicture}
\end{document}

решение2

К сожалению, в библиотеке TikZ не braceопределен эквивалент для круглых и квадратных скобок decorations.pathreplacing.

Будет ли следующая рекомендация разумной или нет, зависит от вашего варианта использования, но один из возможных способов добиться чего-то похожего на то, что вы хотите, — это использовать\vphantomобманыватьи тот факт, что (и [являютсяразделители.

Здесь я поместил \left(и \right)в их собственные nodes, которые размещены относительно основного nodeс помощью библиотеки TikZ positioning.

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}

\usepackage{graphicx}
\usepackage{mwe}

\begin{document}

\begin{tikzpicture}
    \node (picture) at (0,0) {\includegraphics[width=.5\textwidth]{image-a}};
    \node (left-paren) [left = of picture] {$\left(\vphantom{\includegraphics[width=.25\textwidth]{image-a}}\right.$};
    \node (right-paren) [right = of picture] {$\left.\vphantom{\includegraphics[width=.25\textwidth]{image-a}}\right)$};
\end{tikzpicture}

\end{document}

введите описание изображения здесь

Связанный контент