Если у меня есть письмо типа"(вертикальный) прямоугольник сзакругленные углы"и поместите его в \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}