文字の周りに整列した円 - 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 よりも少し高いことに注目してください。これを修正するにはどうすればよいでしょうか?

アップデート

コメントで得たアドバイスに従って (皆さんありがとう)、円を互いに揃えることができました (それが私の望みでした)。しかし、残念ながらテキストには揃えられませんでした。

配置

私はこれ(ピンクの a)を提案している他の投稿を見てpropnode、最初の引数を使用してそれをあちこち移動しようとしましたが、効果はありませんでした。

\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

ストラットを使用した例を次に示します。

\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}

実行する二乗計算の数に応じて、よりスムーズにすることができます。

テスト

関連情報