Ich möchte, dass ein Wort in einem normalen Absatz später durch eine Beschriftung hervorgehoben wird. Das folgende MWE erreicht dies tatsächlich, außer dass das Wort nach oben verschoben wird. Wie lässt sich dies auf elegante Weise lösen, sodass das Wort normal im Satz steht?
\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}
Antwort1
Geben Sie baseline
den Inline-TikZ-Code so an, dass er mit dem base
Anker des von Ihnen erstellten Knotens übereinstimmt, indem Sie die Option hinzufügen baseline=(#1.base)
. Sie können auch das Hinzufügen in Betracht ziehen, inner xsep=0pt
um zu verhindern, dass der Abstand zwischen den Wörtern gestört wird.
\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}
Eine bessere Lösung, die den Abstand nicht beeinträchtigt, wäre möglicherweise mit möglich tikzmark
, aber ich bin nicht ganz sicher.