提问于:
浏览数:
2371
![](/static/images/ext/zip.gif)带圈数字.zip
2 回答
2
用文本的上下标模式试试,不要用公式的数学模式。
``` tex
\documentclass{ctexart}
\setmainfont{Times New Roman}
\setsansfont{Arial}
\usepackage{tikz}
\usepackage{xparse}
\NewDocumentCommand{\qqr}{ s O{black} m }
{\begin{tikzpicture}[x=2.4ex,y=2.4ex,line width=0.1ex]
\IfBooleanTF {#1}
{\draw(0,0) circle (0.32)
node [inner sep=0pt] {\resizebox{1.1ex}{1.1ex}{\rmfamily#3}};}
{\filldraw[#2](0,0) circle (0.32)
node [white,inner sep=0pt] {\resizebox{1.1ex}{1.1ex}{\rmfamily #3}};}
\end{tikzpicture}}
\NewDocumentCommand{\qqs}{ s O{black} m }
{\begin{tikzpicture}[x=2.4ex,y=2.4ex,line width=0.1ex]
\IfBooleanTF {#1}
{\draw(0,0) circle (0.32)
node [inner sep=0pt] {\resizebox{1.1ex}{1.1ex}{\sffamily #3}};}
{\filldraw[#2](0,0) circle (0.32)
node [white,inner sep=0pt] {\resizebox{1.1ex}{1.1ex}{\sffamily #3}};}
\end{tikzpicture}}
\begin{document}
文字\qqr*{3}文字\textsuperscript{\qqr{3}}
文字\qqs*{3}文字\textsuperscript{\qqs{3}}
\end{document}
```
0
```tex
\makeatletter
\newcounter{superscriptusetikzcount}
\NewDocumentCommand{\superscriptusetikz}{ s O{fill=black!80,text=white} O{\thesuperscriptusetikzcount} }%
{%
\begingroup%
\pgfmathsetmacro{\superscriptsize}{add(multiply(\f@size,0.5),ln(\f@size))}%
\begin{tikzpicture}[baseline=-0.8em]%
\IfBooleanTF {#1}
{\node [circle,draw,inner sep=0.4pt,] {\fontsize{\superscriptsize pt}{1em}\selectfont #3};}
{\node [circle,inner sep=0.4pt,#2] {\fontsize{\superscriptsize pt}{1em}\selectfont #3};}
\end{tikzpicture}%
\stepcounter{superscriptusetikzcount}%
\endgroup%
}%
上标\superscriptusetikz*
{\zihao{3}上标\superscriptusetikz}
{\zihao{1}上标\superscriptusetikz[fill=green!60!black,text=red!80!black]}
\makeatother
```
![](https://pics.latexstudio.net/data/images/202003/7cfc69f6b834a7d.png)
这是从橘子老师的回答中改编的,其中的命令 `\f@size` 是从胡伟老师的《文类和宏包学习手册》里面看到的。
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。