我正在使用以下代码(我在 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}