
다음 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}
원하는 제곱 계산 수에 따라 더 부드럽게 만들 수 있습니다.