colorbox: как заполнить только внутреннюю область прямоугольника (квадрата) со скругленными углами

colorbox: как заполнить только внутреннюю область прямоугольника (квадрата) со скругленными углами

Если у меня есть письмо типа"(вертикальный) прямоугольник сзакругленные углы"и поместите его в \colorbox{<fillcolor>}{text}, есть ли способ задать параметры colorbox так, чтобы именно внутренняя область была заполнена цветом?

Проблема:«Закругленные углы» усложняют задачу. \setlength{\fboxsep}{-0.57505pt}Вероятно, настройки недостаточно.

введите описание изображения здесь

Подсказка 1:Я создал"(вертикальный) прямоугольник с закругленными углами"я использую FontForge.
Для тестового примера я использовал U+25A2 "White Square with Rounded Corners"(потому что нашел только квадратныйс закругленными углами, а не прямоугольник) со шрифтом Cambria.ttf.
Шрифтнетважно для тестового примера итакже может быть заменен, при условии, что шрифт содержит U+25A2.

Подсказка 2:Конечно, есть что-то с TikZ, tcolorbox и т. д. Но я пытаюсь выяснить, можно ли сделать это с помощью обычного \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}

решение1

Я не знаю, как у вашей пользовательской буквы, но у символа U+25A2(▢) кажется, что его ограничивающий прямоугольник не соответствует его форме (по крайней мере, со шрифтом Cambria). У меня не Cambriaустановлен шрифт, но то же самое с 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}

▢ ограничивающая рамка

С помощью квадрата вы можете использовать высоту для коррекции горизонтальной ограничивающей рамки, например,

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

Возможно, вы могли бы сделать что-то подобное с вашей индивидуальной формой.

Полный пример с символами U+25A2и 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

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

Полный пример

Связанный контент