![нарисовать круглую/прямоугольную скобку, охватывающую узлы в tikz](https://rvso.com/image/298819/%D0%BD%D0%B0%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%BA%D1%80%D1%83%D0%B3%D0%BB%D1%83%D1%8E%2F%D0%BF%D1%80%D1%8F%D0%BC%D0%BE%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D1%83%D1%8E%20%D1%81%D0%BA%D0%BE%D0%B1%D0%BA%D1%83%2C%20%D0%BE%D1%85%D0%B2%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D1%8E%D1%89%D1%83%D1%8E%20%D1%83%D0%B7%D0%BB%D1%8B%20%D0%B2%20tikz.png)
Я знаю, как нарисовать фигурную скобку с помощью следующего кода:
\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
что дает:
Примечания:
- Это просто и адаптация стиля
ncbar
изСуществует ли эквивалент команды PSTricks \ncbar в TikZ?.
Код:
\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)
в их собственные node
s, которые размещены относительно основного 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}