Я хочу, чтобы слово в обычном абзаце позже указывалось выноской. MWE ниже фактически достигает этого, за исключением того, что слово смещено вверх. Как элегантно решить эту проблему, чтобы слово нормально располагалось в предложении?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}
\usetikzlibrary{shapes.callouts}
\usetikzlibrary{positioning}
\newcommand{\nodeWord}[1]{\tikz[remember picture]{\node(#1){#1};}}
\begin{document}
Here is a \nodeWord{little} sentence.
\tikz[remember picture]{\node [rectangle callout, fill=blue!30!white,overlay,callout absolute pointer={(little.south)},text centered, below left=of little] (A) {Hello};}
\end{document}
решение1
Укажите baseline
встроенного кода TikZ, чтобы он соответствовал base
якорю узла, который вы создаете, добавив опцию baseline=(#1.base)
. Вы также можете рассмотреть возможность добавления inner xsep=0pt
, чтобы не нарушать межсловный интервал.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}
\usetikzlibrary{shapes.callouts}
\usetikzlibrary{positioning}
\newcommand{\nodeWord}[1]{\tikz[remember picture,baseline=(#1.base),inner xsep=0pt]{\node(#1){#1};}}
\begin{document}
Here is a \nodeWord{little} sentence.
\tikz[remember picture]{\node [rectangle callout, fill=blue!30!white,overlay,callout absolute pointer={(little.south)},text centered, below left=of little] (A) {Hello};}
\end{document}
Возможно, лучшее решение, не влияющее на интервалы, можно найти с помощью tikzmark
, но я в этом не совсем уверен.