カラーボックス: 角が丸い長方形 (正方形) の内側の領域のみを塗りつぶす方法

カラーボックス: 角が丸い長方形 (正方形) の内側の領域のみを塗りつぶす方法

もし私が活字を持っているなら「(縦)長方形」丸い角それを に入れる場合\colorbox{<fillcolor>}{text}、内側の領域が正確に色で塗りつぶされるようにカラーボックスパラメータを設定する方法はありますか?

問題:「角が丸い」ため、作業が難しくなります。設定が\setlength{\fboxsep}{-0.57505pt}不十分な可能性があります。

ここに画像の説明を入力してください

ヒント1:私は「角が丸い(縦長)長方形」私自身はFontForgeを使っています。
テストの例として、私はU+25A2 "White Square with Rounded Corners"(正方形しか見つからなかったため)角が丸い(長方形ではなく)フォントで囲みますCambria.ttf
フォントはないテスト例にとって重要であり、置き換えることもできるフォントに が含まれている限り、 ですU+25A2

ヒント2:\colorbox確かに、TikZ、tcolorbox などには何かあります。しかし、通常の(!)でそれができるかどうかを調べようとしています。

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

完全な例

関連情報