colorbox: cómo rellenar sólo el área interior de un rectángulo (cuadrado) con esquinas redondeadas

colorbox: cómo rellenar sólo el área interior de un rectángulo (cuadrado) con esquinas redondeadas

Si tengo una letra de tipo"rectángulo (vertical) conesquinas redondeadas"y ponerlo en un \colorbox{<fillcolor>}{text}, ¿hay alguna manera de configurar los parámetros del cuadro de colores para que exactamente el área interior esté llena de color?

Problema:Las "esquinas redondeadas" dificultan la tarea. Probablemente la configuración \setlength{\fboxsep}{-0.57505pt}no sea suficiente.

ingrese la descripción de la imagen aquí

Pista 1:Yo creé el"rectángulo (vertical) con esquinas redondeadas"Yo mismo uso FontForge.
Para un ejemplo de prueba, utilicé U+25A2 "White Square with Rounded Corners"(porque solo encontré un cuadradocon esquinas redondeadas, no un rectángulo) con la fuente Cambria.ttf.
La fuente esnoimportante para el ejemplo de prueba ytambién se puede reemplazar, siempre que la fuente contenga U+25A2.

Pista 2:Ciertamente hay algo con TikZ, tcolorbox, etc. Pero trato de descubrir si se puede hacer eso con lo normal \colorbox(!).

\documentclass[margin=5pt]{standalone}
\usepackage{xcolor}
\usepackage{fontspec}

\newfontfamily\myfont{Cambria}% a font that contains U+25A2
\newcommand\mychar{\myfont\char"25A2}%U+25A2 --->  White Square with Rounded Corners
\begin{document}
\setlength{\fboxsep}{-0.57505pt}
Test: \colorbox{yellow}{\mychar}
\end{document}

Respuesta1

No sé para su letra personalizada, pero para el carácter U+25A2(▢) parece que su cuadro delimitador no se ajusta a su forma (al menos, con la Cambriafuente). No tengo la Cambriafuente instalada, pero ocurre lo mismo con DejaVu Sans:

\documentclass[margin=5pt]{standalone}
\usepackage{xcolor}
\usepackage{fontspec}

\newfontfamily\myfont{DejaVu Sans}% a font that contains U+25A2
\newcommand\mychar{\myfont\char"25A2}%U+25A2 --->  White Square with Rounded Corners

\begin{document}

\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{0.05pt}
\fcolorbox{red}{white}{\mychar}

\end{document}

▢ cuadro delimitador

Con un cuadrado, puedes usar la altura para corregir el cuadro delimitador horizontal, con algo como

\sbox{0}{\mychar}%
\dimen0=\dimexpr \wd0 - \ht0 - \dp0\relax%
\setlength{\fboxsep}{-0.25\dimen0}%
\colorbox{yellow}{\kern -0.5\dimen0\usebox{0}\kern -0.5\dimen0}%

Quizás puedas hacer algo similar con tu forma personalizada.

Ejemplo completo, con caracteres U+25A2y DejaVu Sansfuente:

\documentclass[margin=5pt]{standalone}
\usepackage{xcolor}
\usepackage{fontspec}

\newfontfamily\myfont{DejaVu Sans}% a font that contains U+25A2
\newcommand\mychar{\myfont\char"25A2}%U+25A2 --->  White Square with Rounded Corners

\newcommand\myfilledchar{%
  \begingroup%
  \sbox{0}{\mychar}%
  \dimen0=\dimexpr \wd0 - \ht0 - \dp0\relax%
  \setlength{\fboxsep}{-0.25\dimen0}%
  \colorbox{yellow}{\kern -0.5\dimen0\usebox{0}\kern -0.5\dimen0}%
  \endgroup%
}

\begin{document}

\myfilledchar
\quad
{\Huge \myfilledchar}
\quad
{\tiny \myfilledchar}

\end{document}

Ejemplo completo

información relacionada