通常の段落内の単語を、後でコールアウトで指し示したいです。以下の 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
が、完全にはわかりません。