基于制作 \textcircled 数字的好方法?,有没有一种简单的方法可以让圆圈的数字和所有字母看起来完全相同(即大小和位置)?
当在圆圈中插入一个时a
,节点的绘制位置会比数字节点略低一些。
\documentclass{article}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle, draw, inner sep=1pt,
minimum height=12pt] (char) {#1};}}
\begin{document}
This is \circled{a} \circled{1} balloon.
\end{document}
编辑
根据@koleygr 的回答和帖子带圆圈的字母:与无圆圈的字母大小相同,我发现这个解决方案最令人满意且用途最广泛:
\newcommand*{\circled}[2][]{\tikz[baseline=(C.base)]{
\node[inner sep=0pt] (C) {\vphantom{1g}#2};
\node[draw, circle, inner sep=3pt, yshift=1pt]
at (C.center) {\vphantom{1g}};}}
答案1
接受后编辑:
\documentclass{article}
\makeatletter
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle, draw, inner sep=1pt,
minimum height={\f@size*1.6},] (char) {\vphantom{WAH1g}#1};}}
\makeatother
\begin{document}
This is \circled{a} \circled{1} balloon.
\noindent\foreach \letter in {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,V,U,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9,0,.,/}
{%
\circled{\letter}\space%
}
\end{document}
输出:
由于基于不同的字符,因此并不完美(但从下面的答案来看更好)
检查上述文档环境中的相同代码,并查看下面圆圈中的定义:
正如您在之前(下面)的代码中看到的,小写字母和大写字母之间的大小发生变化。
旧答案:
您的定义中的A\vphantom
将有助于:
\documentclass{article}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle, draw, inner sep=1pt,
minimum height=12pt] (char) {\vphantom{1g}#1};}}
\begin{document}
This is \circled{a} \circled{1} balloon.
\end{document}
输出: