
У меня проблема с вертикальным выравниванием обведенного текста с TikZ. Этот базовый код вызывает проблему, которая у меня есть.
\texttt{some text here =}
\tikz[remember picture] \node[draw,ellipse,fill=none,thick] (code) {\texttt{other text}};
Проблема в том, что отображаемый текст 'some text here=' не выровнен по вертикали с отображаемым текстом 'other text'. Я читал об анкерах в документации, и они выглядели многообещающе, но я пока не смог заставить их работать. Возможно, я мог бы сделать это, сделав левую сторону узлом, но я не думаю, что это необходимо? Любые предложения были бы очень признательны!
решение1
Используйте base
узел для baseline
опции:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\texttt{some text here =}
\tikz[remember picture,baseline=(code.base)] \node[draw,ellipse,fill=none,thick] (code) {\texttt{other text}};
\end{document}
Под редакцией Клаудио Фиандрино
Вот возможная альтернатива:
\documentclass[11pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\texttt{some text here = \tikz[baseline=-0.825ex] \node[draw,ellipse,fill=none,thick] (code) {other text};}
\end{document}
Обратите внимание: если вы вставите tikz
код внутрь первого узла, texttt
вы можете пропустить команду внутри узла, поскольку она автоматически отображается в пишущей машинке.
решение2
\texttt{some text here =}
\tikz[remember picture,baseline]
\node[draw,ellipse,fill=none,thick,anchor=base] (code) {\texttt{other text}};