Colorbox: So füllen Sie nur den inneren Bereich eines Rechtecks ​​(Quadrats) mit abgerundeten Ecken

Colorbox: So füllen Sie nur den inneren Bereich eines Rechtecks ​​(Quadrats) mit abgerundeten Ecken

Wenn ich einen Brief vom Typ"(vertikales) Rechteck mitabgerundete Ecken"und es in ein einfügen \colorbox{<fillcolor>}{text}. Gibt es eine Möglichkeit, die Farbbox-Parameter so einzustellen, dass genau der innere Bereich mit Farbe gefüllt wird?

Problem:Die „abgerundeten Ecken“ erschweren die Aufgabe. Die Einstellung \setlength{\fboxsep}{-0.57505pt}reicht wahrscheinlich nicht aus.

Bildbeschreibung hier eingeben

Hinweis 1:Ich habe das„(vertikales) Rechteck mit abgerundeten Ecken“selbst mit FontForge.
Für ein Testbeispiel habe ich verwendet U+25A2 "White Square with Rounded Corners"(weil ich nur ein quadratischesmit abgerundeten Ecken, kein Rechteck) mit der Schriftart Cambria.ttf.
Die Schriftart istnichtwichtig für das Testbeispiel undkann auch ersetzt werden, solange die Schriftart enthält U+25A2.

Hinweis 2:Da geht sicher was mit TikZ, tcolorbox usw. Aber ich versuche mal rauszufinden, ob man das auch mit dem normalen \colorbox(!) machen kann.

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

Antwort1

Ich weiß nicht, wie das bei Ihrem benutzerdefinierten Buchstaben ist, aber bei dem Zeichen U+25A2(▢) scheint der Begrenzungsrahmen nicht zu seiner Form zu passen (zumindest bei der CambriaSchriftart). Ich habe die Schriftart nicht installiert, aber bei : Cambriaist es dasselbe .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}

▢ Begrenzungsrahmen

Bei einem Quadrat können Sie die Höhe verwenden, um den horizontalen Begrenzungsrahmen zu korrigieren, etwa mit

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

Vielleicht könnten Sie mit Ihrer benutzerdefinierten Form etwas Ähnliches machen.

Vollständiges Beispiel mit Zeichen U+25A2und DejaVu SansSchriftart:

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

Vollständiges Beispiel

verwandte Informationen