문자 주위에 정렬된 원 - tikz

문자 주위에 정렬된 원 - tikz

다음 tikz 기반 명령을 사용하여 문자 주위에 원을 만듭니다.

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
        \node[shape=circle,draw,minimum size=4mm, inner sep=0pt] (char)
        {#1};}}

잘 작동하지만 같은 줄에 여러 문자를 사용할 때마다 정렬되지 않습니다.

원이 정렬되지 않음

나는 그것이 질량 중심을 기준으로 원이 생성되는 것처럼 기준선과 관련이 있다고 생각합니다. b와 d는 a와 c보다 약간 높습니다. 어떻게 해결할 수 있나요?

업데이트

댓글에서 얻은 조언에 따라(모두 감사합니다) 원을 서로 정렬했지만(이것이 제가 원했던 것입니다) 불행히도 텍스트에는 정렬되지 않았습니다.

질병

이것을 제안하는 다른 게시물 propnode(분홍색 a)을 보고 첫 번째 인수를 사용하여 여기저기 옮겨 보았으나 아무런 효과가 없었습니다.

\pgfmathsetmacro{\nodebasesize}{1} % A node with a value of one will have this diameter
\pgfmathsetmacro{\nodeinnersep}{0.05}
\newcommand{\propnode}[5]{% position, name, options, value, label
\begin{tikzpicture}
    \pgfmathsetmacro{\minimalwidth}{sqrt(#4*\nodebasesize)}
    \node[#3,minimum width=\minimalwidth*1cm,inner sep=\nodeinnersep*1cm,circle,draw] (#2) at (#1) {#5};
    \end{tikzpicture}
}

사실은 propnode조금 너무 높고 동그라미가 있는 것은 조금 너무 낮습니다. 이것은 모든 것을 호출하는 코드입니다.

(\circled{b},\circled{a},\circled{c},\circled{d},\propnode{0,4}{n05}{fill=pink,text=black}{0.15}{a}). 

답변1

다음은 strut를 사용하는 예입니다.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
        \node[shape=circle,draw,minimum size=4mm, inner sep=0pt] (char)
        {\rule[-3pt]{0pt}{\dimexpr2ex+2pt}#1};}}


\begin{document}

\foreach \myn [count=\myc] in {a,b,c,d,e,p,q}
{%%
  \circled{\myn}\ifnum\myc<7\relax,\fi
}%%

\end{document}

여기에 이미지 설명을 입력하세요

답변2

이것은 평균화 알고리즘을 사용하고 있습니다.

\documentclass[]{article}\usepackage{amsmath,mathtools,amssymb,tikz}
\newlength\myheight
\newcommand*\ccircled[1]{\settowidth{\myheight}{#1}%
    \raisebox{-.1\myheight}{\tikz[baseline=(char.base)]{%
        \node[shape=circle,draw,minimum size=\myheight*\myheight*.4,inner sep=1pt](char){#1};}}}
\begin{document}
\ccircled{S}u\ccircled{z}u\ccircled{k}i
\end{document}

원하는 제곱 계산 수에 따라 더 부드럽게 만들 수 있습니다.

테스트

관련 정보