もし私が活字を持っているなら「(縦)長方形」丸い角「それを に入れる場合\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}