\circlearound:圆心未对齐

\circlearound:圆心未对齐

我正在使用以下代码(我在 StackExchange 上找到该代码)在一些字母周围画一个圆圈:

\newcommand\circlearound[1]{%
\setbox0=\hbox{#1}%
\dimen0\wd0%
\divide\dimen0 by 2%
\begin{tikzpicture}[baseline=(a.base)]%
\useasboundingbox (-\the\dimen2,0pt) rectangle (\the\dimen0,1pt);
\node[circle,draw,minimum size=1.4em,outer sep=0pt,inner sep=0.2ex] (a) {#1};
\end{tikzpicture}
}

这对于普通字母来说很好,但对于草书字体(斜体类型)来说存在错位。因此,我想定义第二个命令\circlearoundItalic,其中我将圆心错开 0.2em。有人知道将圆心向右移动 0.2em 的 TikZ 代码吗?

谢谢你!

答案1

一般来说,可以使用execute at begin node和来调整这些内容execute at end node。更具体地说,你可以添加

execute at begin node=\hspace*{-0.02em},execute at end node=\hspace*{0.02em}

到节点选项,您可以0.02em根据需要进行更改。请注意,\tikzmarknode最新版本的tikzmark库附带了一个相当新的命令,它允许我们进一步简化事情。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\tikzset{normcirc/.style={circle,draw,inner sep=0.25em},
itcirc/.style={normcirc,font=\itshape,execute at begin
node=\hspace*{-0.02em},execute at end node=\hspace*{0.02em}}
}
\begin{document}
\tikzmarknode[normcirc]{a1}{a} 
\tikzmarknode[itcirc]{a2}{a}
\end{document}

在此处输入图片描述

相关内容