TikZ 箭头在斜体文本中未对齐

TikZ 箭头在斜体文本中未对齐

根据问题如何在语言示例中的单词之间画箭头?添加从一个表格单元格指向另一个表格单元格的箭头,我想在单词内画一个从一个字符到另一个字符的弯曲箭头。虽然在普通文本中看起来不错,但当文本为斜体时,箭头会稍微错位(即箭头没有考虑到文本已为斜体)。该怎么办?

\documentclass{article}
\usepackage{tikz}
\begin{document}
\noindent
abcd\tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (finisharrow){e};fgh\tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (startarrow){i};jklmnopqrstuvwxyz\\
\begin{tikzpicture}[remember picture, overlay, shorten <=.2ex, shorten >=.2ex]
    \path[->, thin](startarrow) edge[out = 90, in = 90] (finisharrow);
\end{tikzpicture}
\\ \textit{abcd\tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (finisharrow){e};fgh\tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (startarrow){i};jklmnopqrstuvwxyz}
\begin{tikzpicture}[remember picture, overlay, shorten <=.2ex, shorten >=.2ex]
    \path[->, thin](startarrow) edge[out = 90, in = 90] (finisharrow);
\end{tikzpicture}
\end{document}

在此处输入图片描述

(根据我在 pgf 手册中找到的内容,我首先尝试使用\drawwitharc(::)而不是\path,但无法连接字符。arc如果更好的话,我愿意接受使用 的建议)。

答案1

如果您绘制斜体i和的“边界框” e,您会发现问题在于north这些框的锚点(位于顶部边缘的中间)与眼睛感知的字符中间不对齐(由于倾斜):

盒子

上面的红色框是用以下方法绘制的:

\draw[red] (startarrow.south west) rectangle (startarrow.north east);
\draw[red] (finisharrow.south west) rectangle (finisharrow.north east);

看看箭头正确地从框的中间开始,但更多地关注north east盒子。对于信件然而,这样north east就太右了。

我认为一个合理的解决方案是使用“角锚“作为箭头的起点和终点。角度锚点被指定为nodename.angle,它是位于节点边缘的点,与中心成给定角度。如果我们使用angle斜体字母的倾斜度值(我估计约为 70 度),则可以得到相当好的结果:

\path[->, thin](startarrow.70) edge[out = 90, in = 90] (finisharrow.70);

结果

相关内容