Этот вопрос следовал из вопроса здесь
Я хочу произвести изогнутую фигурную скобку, которая охватывает некоторые строки текста. Проблема состоит в том, что я должен выровнять координату x вручную, которая не является чистым решением.
В настоящее время я использую
\begin{frame}{Example}
\begin{itemize}
\item The long Issue 1
\tikz[remember picture] \node[coordinate,yshift=0.7em] (n1) {}; \\
spanning 2 lines
\item Issue 2
\tikz[remember picture] \node[coordinate, xshift=1.597cm] (n2) {};
\item Issue 3
\end{itemize}
\visible<2->{
\begin{tikzpicture}[overlay,remember picture]
\draw[thick,decorate,decoration={brace,amplitude=5pt}]
(n1) -- (n2) node[midway, right=4pt] {One and two are cool};
\end{tikzpicture}
} % end visible
\end{frame}
который приводит к желаемому результату:
Неудовлетворяющая вещь, что я должен был выяснить xshift значение 1.597 см методом проб и ошибок (более или менее)
Без xshift аргумента результат:
Я предполагаю, что существует изящный способ избежать явного значения xshift.
Лучший способ был бы он, по моему скромному мнению, чтобы должным быть вычислить максимум x значение двух узлов и использовать это, (как уже предложил Geoff)
Но уже было бы очень удобно смочь явно определить абсолютный xvalues обоих узлов при хранении их текущих значений y. Это избежало бы трудной процедуры адаптации третьего десятичного разряда сообщения, чтобы гарантировать, что фигурная скобка выглядит вертикальной.
Для этого требуется \ usetikzlibrary {calc}
. Однако может быть более чистый способ.
Удалите « xshift
» из узла n2
, а затем используйте:
\begin{tikzpicture}[overlay,remember picture]
\path (n2) -| node[coordinate] (n3) {} (n1);
\draw[thick,decorate,decoration={brace,amplitude=5pt}]
(n1) -- (n3);
\node[right=4pt] at ($(n1)!0.5!(n3)$) {One and two are cool};
\end{tikzpicture}