
Estoy usando el siguiente comando basado en tikz para crear un círculo alrededor de una letra.
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,minimum size=4mm, inner sep=0pt] (char)
{#1};}}
Funciona bien, pero cada vez que uso varias letras en la misma línea, no están alineadas.
Supongo que tiene algo que ver con la línea de base, como si el círculo se creara en referencia al centro de masa. Observe que b y d son un poco más altos que a y c. ¿Cómo podría solucionar eso?
ACTUALIZAR
Siguiendo el consejo que recibí de los comentarios (gracias a todos), alineé los círculos entre sí (que es lo que quería), pero desafortunadamente no con el texto:
Vi la otra publicación que proponía esto propnode
(la a rosa), y traté de cambiarla por todos lados usando el primer argumento, pero no tuvo ningún efecto.
\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}
}
De hecho, propnode
es demasiado alto y el círculo es demasiado bajo. Este es el código que llama a todo:
(\circled{b},\circled{a},\circled{c},\circled{d},\propnode{0,4}{n05}{fill=pink,text=black}{0.15}{a}).
Respuesta1
Aquí hay un ejemplo usando un puntal:
\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}
Respuesta2
Esto está usando un algoritmo de promedio:
\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}
Se puede hacerlo más fluido dependiendo de cuántos cálculos cuadrados se quiera hacer.