Я пытаюсь нарисовать узел посередине двух скобок. Моя идея на данный момент:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{knots}
\begin{document}
$\left\langle \left\langle {\begin{tikzpicture}[domain=-2:2, scale=0.3]\begin{knot}
\strand (-1.3,1.3) to [out=right, in=right, looseness=2.2] (-1.3,-1.3);
\strand (1.3,1.3) to [out=left, in=left, looseness=2.2] (1.3,-1.3);
\end{knot}
\draw[dashed] (0,0) circle (2cm);
\end{tikzpicture}}\right\rangle\right\rangle $
\end{document}
Сейчас попробовал поиграться с доменом от -2 до 2, но ничего не изменилось. Может, кто-нибудь подскажет, как нарисовать тикз-картинку ровно посередине двух скобок?
Заранее большое спасибо.
решение1
Вы можете использовать baseline
для настройки базовой линии изображения TiKZ (стр. 125 руководства). По умолчанию нижняя часть изображения размещается на базовой линии. При передаче только baseline
, x-axis
(где y=0
) выравнивается с базовой линией окружающего текста. При передаче baseline=value
выполняется настройка, которая выравнивает горизонтальную линию, соответствующую y=value
базовой линии, эффективно центрируя изображение относительно этой линии. Это можно использовать с соответствующим value
для эффективного центрирования изображения относительно математических разделителей.
Первоначально я использовал -.5ex
. Однако спасибо Мануэлю и egreg за предоставление правильного значения с точки зрения размеров шрифта: \dimexpr-\fontdimen22\textfont2
. Это будет использовать соответствующие размеры из текущих активных шрифтов для центрирования изображения относительно разделителей --- то есть этот метод напрямую использует ту же информацию, которая используется для набора математических формул относительно базовой линии текста.
Сравнение:
\documentclass{article}
\usepackage{tikz,amsmath,mathtools}
\usetikzlibrary{knots}
\begin{document}
\noindent abc $\left\langle \sum_{i=1}^n \sqrt{f(x^{\sqrt[3]{i^x}})} \right\rangle$
$\left\langle \left\langle{%
\begin{tikzpicture}[domain=-2:2, scale=0.3]
\begin{knot}
\strand (-1.3,1.3) to [out=right, in=right, looseness=2.2] (-1.3,-1.3);
\strand (1.3,1.3) to [out=left, in=left, looseness=2.2] (1.3,-1.3);
\end{knot}
\draw[dashed] (0,0) circle (2cm);
\end{tikzpicture}%
}\right\rangle\right\rangle$
abc
$\left\langle \left\langle{%
\begin{tikzpicture}[baseline, domain=-2:2, scale=0.3]
\begin{knot}
\strand (-1.3,1.3) to [out=right, in=right, looseness=2.2] (-1.3,-1.3);
\strand (1.3,1.3) to [out=left, in=left, looseness=2.2] (1.3,-1.3);
\end{knot}
\draw[dashed] (0,0) circle (2cm);
\end{tikzpicture}%
}\right\rangle\right\rangle$
abc
$\left\langle \left\langle{%
\begin{tikzpicture}[baseline=\dimexpr-\fontdimen22\textfont2, domain=-2:2, scale=0.3]
\begin{knot}
\strand (-1.3,1.3) to [out=right, in=right, looseness=2.2] (-1.3,-1.3);
\strand (1.3,1.3) to [out=left, in=left, looseness=2.2] (1.3,-1.3);
\end{knot}
\draw[dashed] (0,0) circle (2cm);
\end{tikzpicture}%
}\right\rangle\right\rangle$
\end{document}
решение2
Вот решение с использованием \vcenter
и ограниченного \hbox
.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{knots}
\begin{document}
Try it like this:
$\left\langle \left\langle \vcenter{\hbox to 1.6cm{\hss\begin{tikzpicture}[domain=-2:2, scale=0.3]\begin{knot}
\strand (-1.3,1.3) to [out=right, in=right, looseness=2.2] (-1.3,-1.3);
\strand (1.3,1.3) to [out=left, in=left, looseness=2.2] (1.3,-1.3);
\end{knot}
\draw[dashed] (0,0) circle (2cm);
\end{tikzpicture}\hss}}\right\rangle\right\rangle$
\end{document}